Explorar el Código

Merge branch 'dev-mysql' into yuj-materialCopyToErp-0514

yujia hace 7 años
padre
commit
7854ebca8a

+ 1 - 1
src/main/java/com/uas/platform/b2c/common/account/controller/SecurityController.java

@@ -386,7 +386,7 @@ public class SecurityController {
 					return "successCallback({success:'0'})";
 				}*/
 				user.setIp(AgentUtils.getIp(request));
-				request.getSession().setAttribute("user", user);
+				request.getSession().setAttribute("  user", user);
 				SystemSession.setUser(user);
 				log(request, user);
 			}

+ 37 - 0
src/main/java/com/uas/platform/b2c/external/erp/product/service/impl/ProductServiceImpl.java

@@ -0,0 +1,37 @@
+package com.uas.platform.b2c.external.erp.product.service.impl;
+
+
+import com.uas.api.b2c_erp.baisc.model.Product;
+import com.uas.api.b2c_erp.baisc.service.ProductService;
+import com.uas.platform.b2c.prod.commodity.dao.ProductDao;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * ERP物料服务
+ *
+ * Created by hejq on 2018-05-14.
+ */
+public class ProductServiceImpl implements ProductService {
+
+    @Autowired
+    private ProductDao productDao;
+
+
+    /**
+     * 通过型号查询信息(测试方法)
+     *
+     * @param cmpCode 原厂型号
+     * @return
+     */
+    @Override
+    public List<Product> findByCmpCode(String cmpCode) {
+        List<Product> productList = new ArrayList<>();
+        List<com.uas.platform.b2c.prod.commodity.model.Product> products = productDao.findByCmpCode(cmpCode);
+        BeanUtils.copyProperties(products, productList, Product.class);
+        return productList;
+    }
+}

+ 3 - 3
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductServiceImpl.java

@@ -279,10 +279,10 @@ public class ProductServiceImpl implements ProductService {
             }
         }
         userUU = SystemSession.getUser().getUserUU();
-        List<ProductPerson> ppList = productPersonDao.findByUserUU(userUU);
+        List<Long> productIds = productPersonDao.findIdByEnuuAndUserUU(enuu, userUU);
         for (V_ProductPrivate v_productPrivate : productList) {
-            for (ProductPerson productPerson : ppList) {
-                if (v_productPrivate.getId().equals(productPerson.getProductId())) {
+            for (Long productId : productIds) {
+                if (v_productPrivate.getId().equals(productId)) {
                     v_productPrivate.setAddProductPerson(true);
                 }
             }

+ 38 - 0
src/main/java/com/uas/platform/b2c/trade/seek/service/impl/SeekPurchaseBomServiceImpl.java

@@ -7,7 +7,9 @@ import com.uas.platform.b2c.core.utils.StringUtilB2C;
 import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
 import com.uas.platform.b2c.prod.commodity.model.Goods;
 import com.uas.platform.b2c.prod.product.brand.dao.BrandDao;
+import com.uas.platform.b2c.prod.product.brand.modal.Brand;
 import com.uas.platform.b2c.prod.product.component.dao.ComponentDao;
+import com.uas.platform.b2c.prod.product.component.modal.Component;
 import com.uas.platform.b2c.trade.seek.dao.*;
 import com.uas.platform.b2c.trade.seek.model.*;
 import com.uas.platform.b2c.trade.seek.service.SeekPurchaseBomService;
@@ -534,6 +536,9 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService {
                 inquiryItem.setProduceDate(batch.getProduceDate());
                 inquiryItem.setDate(new Date());
                 inquiryItem.setEndDate(batch.getDeadline());
+                if (StringUtils.isEmpty(batch.getKind())) {
+                    batch.setKind(matchKind(batch.getBrand(), batch.getCode()));
+                }
                 inquiryItem.setProdTitle(batch.getKind());
                 inquiryItem.setSpec(batch.getSpec());
                 if (StringUtils.isEmpty(endDate)) {
@@ -589,6 +594,39 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService {
         return ResultMap.success(result);
     }
 
+    /**
+     * 根据型号和品牌类目匹配
+     * @param brand
+     * @param code
+     * @return
+     */
+    private String matchKind(String brand, String code) {
+        // 匹配类目
+        String kind = "";
+        Long brandId = null;
+        List<Brand> brands = brandDao.findByUpperNameEn(brand);
+        if (CollectionUtils.isEmpty(brands)) {
+            brands = brandDao.findByUpperNameCn(brand);
+            if (CollectionUtils.isEmpty(brands)) {
+                kind = "其他";
+            } else {
+                brandId = brands.get(0).getId();
+            }
+        } else {
+            brandId = brands.get(0).getId();
+        }
+        if (brandId != null) {
+            List<Component> components = componentDao
+                    .findByCodeAndBrandid(code, brandId);
+            if (!CollectionUtils.isEmpty(components)) {
+                kind = components.get(0).getKind().getNameCn();
+            } else {
+                kind = "其他";
+            }
+        }
+        return kind;
+    }
+
     @Override
     public Page<SeekPurchaseBomList> getSeekPurchaseBomListPage(final PageInfo pageInfo, User user, String minReleaseDate, String maxReleaseDate, String name) {
         if (user.getEnterprise() != null) {

+ 4 - 3
src/main/java/com/uas/platform/b2c/trade/vendor/service/impl/VendorIntroductionServiceImpl.java

@@ -33,6 +33,7 @@ public class VendorIntroductionServiceImpl implements VendorIntroductionService
 	 * @param size    每页大小
 	 * @param keyword 关键词
 	 * @return 供应商资源page
+     * @version 2018年5月15日 11:53:06 增加限制,要求营业执照号长度大于12才显示
 	 */
 	@Override
 	public Page<VendorIntroduction> getVendorIntroduction(int page, int size, String keyword) {
@@ -124,7 +125,7 @@ public class VendorIntroductionServiceImpl implements VendorIntroductionService
 		// 获取企业sql
 		enterpriseSql.append("select en.en_uu enUU, en.en_name enName, en.en_shortname enShortname, en.en_address enAddress, en.en_tel enTel, " +
 				"en.en_email enEmail, en.en_corporation enCorporation, en.en_businesscode enBusinesscode, en.en_industry enIndustry, en.en_Businessscope enBusinessScope " +
-				",st.st_enuu,st.st_status from sec$enterprises en left join store$info st on st.st_enuu = en.en_uu where en_name not like '%测试%'  and en_name not like '%test%' and en_uu <> ")
+				",st.st_enuu,st.st_status from sec$enterprises en left join store$info st on st.st_enuu = en.en_uu where en_name not like '%测试%' and en_name not like '%test%' and length(en_businesscode) > 12 and en_uu <> ")
 			.append(enUU);
 		if (!StringUtils.isEmpty(keyword)) {
 			enterpriseSql.append(" and (en_name like '%").append(keyword).append("%' or en_address like '%").append(keyword).append("%' or en_industry like '%").append(keyword)
@@ -160,7 +161,7 @@ public class VendorIntroductionServiceImpl implements VendorIntroductionService
 			enCountSql.append("select count(1) from (").append(keywordSql);
 		} else {
 			enCountSql.append("select count(1) from (select en_uu,count(1) from sec$enterprises where en_name not like '%测试%' " +
-					" and en_name not like '%test%'and en_uu <> ").append(enUU);
+					" and en_name not like '%test%' and length(en_businesscode) > 12 and en_uu <> ").append(enUU);
 		}
 		enCountSql.append(" group by en_uu )a");
         System.out.println("en_count:" + enCountSql.toString());
@@ -175,7 +176,7 @@ public class VendorIntroductionServiceImpl implements VendorIntroductionService
 	 */
 	private String getKeywordSql(Long enUU, String keyword) {
 		return "select en_uu,count(1) as counts from sec$enterprises where en_name not like '%测试%' " +
-				"and lower(en_name) not like '%test%' and (en_name like '%"
+				"and lower(en_name) not like '%test%' and length(en_businesscode) > 12 and (en_name like '%"
 				+ keyword + "%' or en_address like '%" + keyword + "%' or en_industry like '%" + keyword
 				+ "%') and en_uu <> " + enUU;
 	}

+ 3 - 0
src/main/webapp/WEB-INF/spring/hessian.xml

@@ -227,4 +227,7 @@
 	<bean  name="productreplace" class="com.uas.api.crypto.hessian.PermittedServiceExporter">
 
 	</bean>
+
+	<!-- ERP物料接口 -->
+	<bean id="api.productService" class="com.uas.platform.b2c.external.erp.product.service.impl.ProductServiceImpl" />
 </beans>

+ 89 - 0
src/main/webapp/resources/css/common.css

@@ -1044,4 +1044,93 @@ select {
 .seek-purchase .seek-purchase-content >table >tbody >tr.default-row .operate-seek .row-wrap >span {
 	color: #4290f7;
 	cursor: pointer;
+}
+
+/*买卖家订单详情及结算页手续费样式*/
+.oder_xq_list dl span.total-price{
+	float: right;
+	width: auto !important;
+	position: relative;
+	bottom: 22px;
+	z-index: 10;
+	/*margin-right: 20px;*/
+}
+.oder_xq_list dl span.total-price p{
+	line-height: 25px;
+	font-size: 14px;
+	text-align: right;
+}
+.oder_xq_list dl span.total-price p:last-child,
+.oder_xq_list dl span.total-price p:last-child em,
+.oder_xq_list dl span.total-price p:last-child strong{
+	color: #e64040;
+	font-weight: bold;
+}
+.oder_xq_list dl span.total-price p em{
+	color: #333;
+	width: 150px;
+	text-align: left;
+}
+.oder_xq_list dl span.total-price strong{
+	font-weight: normal;
+	width: 200px;
+	display: inline-block;
+	float: left;
+	color: #666;
+	padding-right: 15px;
+}
+.oder_xq_list dl span.total-price strong .price-down {
+	display: inline-block;
+	width: 32px;
+	height: 16px;
+	line-height: 16px;
+	text-align: center;
+	color: #fff;
+	background: #36ab67;
+	border-radius: 2px;
+	float: none;
+	font-size: 12px;
+	margin-right: 6px;
+	cursor: pointer;
+}
+.oder_xq_list dl span.total-price .price-down-tag {
+	text-decoration: line-through;
+	margin: 0;
+	font-size: 12px;
+}
+.oder_xq_list dl span.total-price .remind-tag {
+	position: absolute;
+	background: #fff;
+	padding: 12px;
+	border: 1px solid #d3e2fc;
+	top: 54px;
+}
+.oder_xq_list dl span.total-price .remind-tag .remind-tag-content {
+	text-align: left;
+	line-height: 21px;
+}
+.oder_xq_list dl span.total-price .remind-tag .remind-tag-content.red-text {
+	color: #ef2324;
+}
+.oder_xq_list dl span.total-price .remind-tag.intro {
+	left: -46px;
+}
+.oder_xq_list dl span.total-price .remind-tag.intro .remind-tag-content{
+	max-width: 214px;
+}
+.oder_xq_list dl span.total-price .remind-tag.activity {
+	left: 0;
+}
+.oder_xq_list dl span.total-price .remind-tag.activity .remind-tag-content{
+	max-width: 173px;
+}
+.oder_xq_list dl span.total-price strong .fa {
+	font-size: 19px;
+	color: #cdddfc;
+	margin-right: 5px;
+	vertical-align: middle;
+	cursor: pointer;
+}
+.oder_xq_list dl span.total-price em{
+	float: left;
 }

+ 1 - 1
src/main/webapp/resources/css/user/user.css

@@ -3413,7 +3413,6 @@ body {
 .sure_oder .oder_xq_list dl dd.pay_price {
     width: 100%;
     min-height: 240px;
-    padding-top: 20px;
     border-bottom: none;
 }
 
@@ -3434,6 +3433,7 @@ body {
 .pay_price div h4 em {
     color: #dd2727;
     font-size: 36px;
+    font-weight: bold;
 }
 
 .pay_price p {

BIN
src/main/webapp/resources/img/user/bulb.png


+ 34 - 16
src/main/webapp/resources/js/common/controllers/commonCtrls.js

@@ -1752,23 +1752,41 @@ define([ 'app/app' ], function(app) {
 		};
 	}]);
 
-	/**
-	 * 左侧导航栏控制器
-	 */
-	app.controller('leftNavCtrl', ["$scope", "toaster", '$modal', '$rootScope', function($scope, toaster, $modal, $rootScope){
-		//安全设置提醒框
+    // 手续费控制器
+    app.controller('poundageCtrl', ["$scope", "NumberService", function($scope, NumberService){
+        // 手续费介绍提示框
+        $scope.showRemindTagIntro = false;
 
-		$scope.openHomeCenterModel = function() {
-			var modalInstance = $modal.open({
-				animation: true,
-				templateUrl: $rootScope.rootPath + '/static/view/usercenter/modal/homeCenter_modal.html',
-				controller:'homeModalCtrl'
-			});
-			modalInstance.result.then(function(){
-			}, function(){
-			});
-		};
-		$scope.promptUpdate = function() {
+        // 手续费减免提示框
+        $scope.showRemindTagActivity = false;
+
+        $scope.getMul = function (val1, val2) {
+            return NumberService.mul(Number(val1), Number(val2)) < 0.01 ? 0.01 : NumberService.mul(Number(val1), Number(val2));
+        }
+
+        $scope.getAdd = function (val1, val2) {
+            return NumberService.add(Number(val1), Number(val2));
+        }
+    }]);
+
+  /**
+   * 左侧导航栏控制器
+   */
+	app.controller('leftNavCtrl', ["$scope", "toaster", function($scope, toaster){
+        //安全设置提醒框
+
+        $scope.openHomeCenterModel = function() {
+            var modalInstance = $modal.open({
+                animation: true,
+                templateUrl: $rootScope.rootPath + '/static/view/usercenter/modal/homeCenter_modal.html',
+                controller:'homeModalCtrl'
+            });
+            modalInstance.result.then(function(){
+            }, function(){
+            });
+        };
+
+	    $scope.promptUpdate = function() {
             if (!$scope.userInfo.pwdEnable || !$scope.userInfo.haveUserQuestion||!$scope.userInfo.emailValidCode || $scope.userInfo.emailValidCode != 2) {
                 $scope.openHomeCenterModel();
             }

+ 2 - 0
src/main/webapp/resources/js/usercenter/controllers/forstore/order_pay_ctrl.js

@@ -908,6 +908,7 @@ define(['app/app'], function(app) {
 		$scope.calculateTotal = function () {
 			$scope.order.totalprice = 0;
 			$scope.storePrice = {};
+            $scope.poundageList = {};//手续费列表
 			angular.forEach($scope.order.orderDetails, function(detail) {
 				detail.ensurePrice = Number(NumberService.mul(detail.taxUnitprice, detail.number));
 				if(!$scope.storePrice[detail.storeName]) {
@@ -950,6 +951,7 @@ define(['app/app'], function(app) {
 				toaster.pop('info', '提示 ' + '您已取消编辑发票信息');
 			});
 		};
+
 	}]);
 
 	//地址编辑模态框

+ 0 - 12
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_materialCtrl.js

@@ -1,18 +1,6 @@
 define([ 'app/app', 'jquery-uploadify' ], function(app) {
 	'use strict';
 	app.register.controller('vendor_materialCtrl', ['$scope', '$rootScope', 'Material', 'toaster', 'ComponentActive', 'Enterprise', '$q', 'NumberService', '$location', '$stateParams', 'Search', '$modal', 'ComponentActiveAPI', 'BrandSubmit', 'BrandActiveAPI', 'DistributionRule', 'prodRepositoryService', 'AuthenticationService', 'StoreInfo', 'ProductServiceQuery', 'StoreCms', 'ByteCountService', 'Goods', 'UASBatchPutOnPropertyServices', '$filter', function ($scope, $rootScope, Material, toaster, ComponentActive, Enterprise, $q, NumberService, $location, $stateParams, Search, $modal, ComponentActiveAPI, BrandSubmit, BrandActiveAPI, DistributionRule, prodRepositoryService, AuthenticationService, StoreInfo, ProductServiceQuery, StoreCms, ByteCountService, Goods, UASBatchPutOnPropertyServices, $filter) {
-    app.directive('onFinishRender', function ($timeout) {
-      return {
-        restrict: 'A',
-        link: function (scope) {
-          if (scope.$last === true) {
-            $timeout(function () {
-              scope.$emit('ngRepeatFinished');
-            });
-          }
-        }
-      }
-    })
 		$rootScope.active = 'vendor_material';
 		document.title = '卖家产品库-优软商城';
 		$scope.tab = 'material';

+ 149 - 143
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_order_ctrl.js

@@ -61,7 +61,155 @@ define(['app/app'], function (app) {
             }else if (result.data.type == 'CONSIGNMENT' || result.data.status == 'PREPARE'){
                 $scope.isCONSIGNMENT = true;
                 $scope.storeType = 'mall';
-            }}, function (error) {
+            }
+            if (!$scope.isYrscStore && !$scope.isCONSIGNMENT) {
+                $scope.storeType = 'other';
+                window.sessionStorage.setItem('storeType', $scope.storeType);
+                $scope.orderTableParams = new ngTableParams($scope.tableParams, {
+                    total: 0,
+                    getData: function ($defer, params) {
+                        $scope.loading = true;
+                        $scope.paginationParams = params;
+                        var param = BaseService.parseParams(params.url());
+                        param.keyword = $scope.keyword ? $scope.keyword : null;
+                        if ($scope.childStatus!==''){
+                            param.status = $scope.childStatus;
+                        }else{
+                            param.status = getState();
+                        }
+                        param.page = $scope.param.page;
+                        // param.startMils = $scope.startMils;
+                        // param.endMils = $scope.endMils;
+                        param.exceptionType = window.sessionStorage.getItem('exceptionType');
+                        param.storeType = $scope.storeType;
+
+                        param.startMils = $scope.startDate ? $scope.startDate.getTime() : null;
+                        param.endMils = $scope.endDate ? $scope.endDate.getTime() : null;
+                        if (param.startMils != null && param.endMils != null){
+                            if (param.startMils > param.endMils){
+                                alert("开始时间不得超过结束时间!");
+                                return;
+                            }
+                        }
+
+                        Purchase.getByStatusAndInternal(param, function (page) {
+                            if (page) {
+                                if (!$scope.startDate && !$scope.endDate && !$scope.keyword) {
+                                    if ($scope.childStatus == '') {
+                                        if (page.content) {
+                                            angular.forEach(page, function (value, key) {
+                                                if (key == 'all' || key == 'tobeconfirmed' || key == 'comfirmed' || key == 'inbound'
+                                                    || key == 'tobepaid' || key == 'completed' || key == 'unavailable' || key == 'toBeReviewed') {
+                                                    if (!$scope.counts) {
+                                                        $scope.counts = {};
+                                                    }
+                                                    $scope.counts[key] = value;
+                                                }
+                                                $scope.counts[$scope.status] = page.totalElements;
+                                            });
+                                        } else {
+                                            $scope.counts = {};
+                                        }
+                                    }
+                                }
+
+                                $scope.purchases = page.content;
+                                angular.forEach($scope.purchases, function (data) {
+                                    if (data.installmentId && data.installment.status == 504) {
+                                        angular.forEach(data.installment.installmentDetails, function (list) {
+                                            if (list.detno == data.installment.currentNo) {
+                                                if (list.status == 504) {
+                                                    data.installmentDetailPaid = true;
+                                                }
+                                            }
+                                        })
+                                    }
+                                    // 循环判断一期都没有付款并且延期的
+                                    if (data.installmentId && data.installment.status == 503) {
+                                        angular.forEach(data.installment.installmentDetails, function (detailslist) {
+                                            var nowTime = new Date();
+                                            if (detailslist.status == 503 && nowTime.getTime() > detailslist.deadline){
+                                                data.Overtime = true;
+                                            }
+                                        })
+                                    }
+                                    // 循环判断已付款未收款卖家可取消的
+
+                                });
+                                $scope.requestOver = 0;
+                                angular.forEach($scope.purchases, function (order) {
+                                    Rate.getRateVendor({orderId:order.orderid},{},function (data) {
+                                        if (data.data){
+                                            order.isEachRate = true;
+                                        }
+                                    });
+                                    Rate.getRateBuyer({orderId:order.orderid},{},function (data) {
+                                        if(data.data){
+                                            if (data.data.vendorRateTime){
+                                                order.isFirstRate = true; // 是否完成初评
+                                            }
+                                            if (data.data.vendorAfterRateTime){
+                                                order.isAfterRate = true; // 是否完成追评
+                                            }
+                                        }
+                                        $scope.requestOver += 1;
+                                    });
+                                    angular.forEach(JSON.parse(order.statushistory),function (data) {
+                                        if (data.status == 520){
+                                            order.complete = data.time;
+                                        }
+                                    });
+                                });
+                                getExMsgState(); // 获取异常消息状态
+                                getReturnByPurchaseIds(); // 获取退货单信息
+
+                                $scope.orderLength = page.numberOfElements;
+                                $scope.pageParams.content = page.content;
+                                $scope.pageParams.number = page.number;
+                                // 分页部分有关内容
+                                $scope.param.currentPage = page.number;
+                                $scope.AllOrderInfo = page;
+                                $scope.acculatePages(page.number, page.totalPages);
+
+                                $scope.pageParams.totalElements = page.totalElements;
+                                $scope.pageParams.totalPages = page.totalPages;
+                                params.total(page.totalElements);
+                                $defer.resolve(page.content);
+                                $scope.orderLength = page.content.length;
+
+                                angular.forEach(page.content, function (order) {
+                                    var purchaseDetails = angular.copy(order.purchaseDetails);
+                                    // 获取型号数量
+                                    var components = {};
+                                    angular.forEach(purchaseDetails, function (purchaseDetail) {
+                                        components[purchaseDetail.uuid]++;
+                                    });
+                                    order.codeNum = Object.getOwnPropertyNames(components).length;
+                                    // TODO huxz 获取付款到账时间[已付款时间]
+                                    // 获取订单发货时间
+                                    getTimeByStatus(order, order.statushistory, 406, 'inbound');
+                                    // 获取订单收货时间
+                                    getTimeByStatus(order, order.statushistory, 405, 'receivedGoods');
+                                    // 当订单状态码为失效状态时
+                                    var statusCode = order.status;
+                                    if (statusCode == 602 || statusCode == 603 || statusCode == 604 || statusCode == 315 || statusCode == 605 || statusCode == 606) {
+                                        getTimeByStatus(order, order.statushistory, statusCode, 'unavailable');
+                                        order.unavailableReason = unavailableReasons[statusCode];
+                                    }
+                                });
+                            }
+                        }, function (reponse) {
+                            if ("系统错误".indexOf(reponse.data) > -1) {
+                                toaster.pop('error', '不好意思,系统出错,请联系客服。');
+                            } else {
+                                toaster.pop('info', reponse.data);
+                            }
+                        });
+                    }
+                });
+                $scope.orderTableParams.reload();
+            }
+        }, function (error) {
         });
 
         var unavailableReasons = {
@@ -514,149 +662,7 @@ define(['app/app'], function (app) {
         $scope.reload = function () {
             $scope.orderTableParams.reload();
         };
-        $scope.orderTableParams = new ngTableParams($scope.tableParams, {
-            total: 0,
-            getData: function ($defer, params) {
-                $scope.loading = true;
-                $scope.paginationParams = params;
-                var param = BaseService.parseParams(params.url());
-                param.keyword = $scope.keyword ? $scope.keyword : null;
-                if ($scope.childStatus!==''){
-                    param.status = $scope.childStatus;
-                }else{
-                    param.status = getState();
-                }
-                param.page = $scope.param.page;
-                // param.startMils = $scope.startMils;
-                // param.endMils = $scope.endMils;
-                param.exceptionType = window.sessionStorage.getItem('exceptionType');
-                param.storeType = $scope.storeType;
-
-                param.startMils = $scope.startDate ? $scope.startDate.getTime() : null;
-                param.endMils = $scope.endDate ? $scope.endDate.getTime() : null;
-                if (param.startMils != null && param.endMils != null){
-                    if (param.startMils > param.endMils){
-                        alert("开始时间不得超过结束时间!");
-                        return;
-                    }
-                }
-
-                Purchase.getByStatusAndInternal(param, function (page) {
-                    if (page) {
-                        if (!$scope.startDate && !$scope.endDate && !$scope.keyword) {
-                            if ($scope.childStatus == '') {
-                                if (page.content) {
-                                    angular.forEach(page, function (value, key) {
-                                        if (key == 'all' || key == 'tobeconfirmed' || key == 'comfirmed' || key == 'inbound'
-                                            || key == 'tobepaid' || key == 'completed' || key == 'unavailable' || key == 'toBeReviewed') {
-                                            if (!$scope.counts) {
-                                                $scope.counts = {};
-                                            }
-                                            $scope.counts[key] = value;
-                                        }
-                                        $scope.counts[$scope.status] = page.totalElements;
-                                    });
-                                } else {
-                                    $scope.counts = {};
-                                }
-                            }
-                        }
 
-                        $scope.purchases = page.content;
-                        angular.forEach($scope.purchases, function (data) {
-                            if (data.installmentId && data.installment.status == 504) {
-                                angular.forEach(data.installment.installmentDetails, function (list) {
-                                    if (list.detno == data.installment.currentNo) {
-                                        if (list.status == 504) {
-                                            data.installmentDetailPaid = true;
-                                        }
-                                    }
-                                })
-                            }
-                            // 循环判断一期都没有付款并且延期的
-                            if (data.installmentId && data.installment.status == 503) {
-                                angular.forEach(data.installment.installmentDetails, function (detailslist) {
-                                    var nowTime = new Date();
-                                    if (detailslist.status == 503 && nowTime.getTime() > detailslist.deadline){
-                                        data.Overtime = true;
-                                    }
-                                })
-                            }
-                            // 循环判断已付款未收款卖家可取消的
-
-                        });
-                        $scope.requestOver = 0;
-                        angular.forEach($scope.purchases, function (order) {
-                            Rate.getRateVendor({orderId:order.orderid},{},function (data) {
-                               if (data.data){
-                                   order.isEachRate = true;
-                               }
-                            });
-                            Rate.getRateBuyer({orderId:order.orderid},{},function (data) {
-                                if(data.data){
-                                    if (data.data.vendorRateTime){
-                                        order.isFirstRate = true; // 是否完成初评
-                                    }
-                                    if (data.data.vendorAfterRateTime){
-                                        order.isAfterRate = true; // 是否完成追评
-                                    }
-                                }
-                                $scope.requestOver += 1;
-                            });
-                            angular.forEach(JSON.parse(order.statushistory),function (data) {
-                                if (data.status == 520){
-                                    order.complete = data.time;
-                                }
-                            });
-                        });
-                        getExMsgState(); // 获取异常消息状态
-                        getReturnByPurchaseIds(); // 获取退货单信息
-
-                        $scope.orderLength = page.numberOfElements;
-                        $scope.pageParams.content = page.content;
-                        $scope.pageParams.number = page.number;
-                        // 分页部分有关内容
-                        $scope.param.currentPage = page.number;
-                        $scope.AllOrderInfo = page;
-                        $scope.acculatePages(page.number, page.totalPages);
-
-                        $scope.pageParams.totalElements = page.totalElements;
-                        $scope.pageParams.totalPages = page.totalPages;
-                        params.total(page.totalElements);
-                        $defer.resolve(page.content);
-                        $scope.orderLength = page.content.length;
-
-                        angular.forEach(page.content, function (order) {
-                            var purchaseDetails = angular.copy(order.purchaseDetails);
-                            // 获取型号数量
-                            var components = {};
-                            angular.forEach(purchaseDetails, function (purchaseDetail) {
-                                components[purchaseDetail.uuid]++;
-                            });
-                            order.codeNum = Object.getOwnPropertyNames(components).length;
-                            // TODO huxz 获取付款到账时间[已付款时间]
-                            // 获取订单发货时间
-                            getTimeByStatus(order, order.statushistory, 406, 'inbound');
-                            // 获取订单收货时间
-                            getTimeByStatus(order, order.statushistory, 405, 'receivedGoods');
-                            // 当订单状态码为失效状态时
-                            var statusCode = order.status;
-                            if (statusCode == 602 || statusCode == 603 || statusCode == 604 || statusCode == 315 || statusCode == 605 || statusCode == 606) {
-                                getTimeByStatus(order, order.statushistory, statusCode, 'unavailable');
-                                order.unavailableReason = unavailableReasons[statusCode];
-                            }
-                        });
-                    }
-                }, function (reponse) {
-                    if ("系统错误".indexOf(reponse.data) > -1) {
-                        toaster.pop('error', '不好意思,系统出错,请联系客服。');
-                    } else {
-                        toaster.pop('info', reponse.data);
-                    }
-                });
-            }
-        });
-        $scope.orderTableParams.reload();
         // 确认收款
         // 分期明细
         $scope.numArray = {

+ 18 - 31
src/main/webapp/resources/view/usercenter/forstore/order_detail.html

@@ -120,34 +120,6 @@
 		color: #333 !important;
 		margin-left: 40px;
 	}
-	.oder_xq_list dl span.total-price{
-		float: right;
-		width: auto !important;
-		position: relative;
-		bottom: 10px;
-		margin-right: 20px;
-	}
-	.oder_xq_list dl span.total-price p{
-		line-height: 25px;
-		font-size: 14px;
-		text-align: right;
-		font-weight: bold;
-		display: flex;
-	}
-	.oder_xq_list dl span.total-price p:first-child em{
-		color: #333;
-	}
-	.oder_xq_list dl span.total-price p:last-child{
-		color: #e64040;
-	}
-	.oder_xq_list dl span.total-price p em{
-		color: #e64040;
-	}
-	.oder_xq_list dl span.total-price strong {
-		width: 70px;
-		display: inline-block;
-		float: left;
-	}
 	.open-more{
 		text-align: center;
 		background: #f6f9ff;
@@ -512,10 +484,25 @@
 						<span class="wd02" style="width: 60%; text-align: left; margin-left: 40px; line-height: 30px;">配送方式:<i ng-bind="deliveryMethod[order.deliverytype]"></i>
 							<i style="color: #999;" ng-if="rule" ng-bind="'(' + rule.ruleName + ')'">(满1000元包邮,未满足的订单收取运费20元)</i>
 						</span>
-						<span class="total-price">
+						<span class="total-price" ng-controller="poundageCtrl">
 								<p><strong>运费:</strong>
-									<em ng-if="rule && rule.fareType != 3" ng-bind="order.fare | formateNumber : 2 | currencySysmbol : order.currency.substring(0,3)" style="font-weight: bold"></em>
-									<em ng-if="rule && rule.fareType == 3"  style="font-weight: bold;color:#e64040">到付</em>
+									<em ng-if="rule && rule.fareType != 3" ng-bind="order.fare | formateNumber : 2 | currencySysmbol : order.currency.substring(0,3)"></em>
+									<em ng-if="rule && rule.fareType == 3" >到付</em>
+								</p>
+								<p>
+									<strong>
+										<i class="fa fa-exclamation-circle" ng-mouseenter="showRemindTagIntro = true" ng-mouseleave="showRemindTagIntro = false"></i>
+										<span class="price-down" ng-mouseenter="showRemindTagActivity = true" ng-mouseleave="showRemindTagActivity = false">减免</span>
+										手续费:
+									</strong>
+									<em>{{order.currency == 'RMB' ? '¥ ':'$'}}0.00(<i class="price-down-tag" ng-bind="getMul(order.ensurePrice, 0.00453) | formateNumber : 2 | currencySysmbol : order.currency">$1.11</i>)</em>
+									<div class="remind-tag intro" ng-show="showRemindTagIntro">
+										<div class="remind-tag-content">手续费:是指第三方支付机构在交易过程中,按照一定的百分比进行收取的费用。</div>
+										<div class="remind-tag-content red-text">手续费金额=订单金额 * 0.45%</div>
+									</div>
+									<div class="remind-tag activity" ng-show="showRemindTagActivity">
+										<div class="remind-tag-content">活动期间,减免手续费,已由商城支付给第三方机构。</div>
+									</div>
 								</p>
 								<p><strong>店铺合计:</strong>
 									<em ng-bind="order.ensurePrice | formateNumber : 2 | currencySysmbol : order.currency" style="font-weight: bold"></em>

+ 48 - 36
src/main/webapp/resources/view/usercenter/forstore/order_pay.html

@@ -171,28 +171,6 @@
 	.sure_oder .select{
 		padding-left: 15px;
 	}
-	.sure_oder .oder_xq_list dl span.total-price{
-		float: right;
-		width: auto;
-		position: relative;
-		bottom: 10px;
-		margin-right: 20px;
-	}
-	.sure_oder .oder_xq_list dl span.total-price p{
-		line-height: 25px;
-		font-size: 14px;
-		text-align: right;
-		font-weight: bold;
-	}
-	.sure_oder .oder_xq_list dl span.total-price p:first-child em{
-		color: #333;
-	}
-	.sure_oder .oder_xq_list dl span.total-price p:last-child{
-		color: #e64040;
-	}
-	.sure_oder .oder_xq_list dl span.total-price p em{
-		color: #e64040;
-	}
 	.pay_price a:hover{
 		color: #fff !important;
 		opacity: .9;
@@ -259,21 +237,25 @@
 	.pay_price div{
 		max-width: 490px;
 		width: auto;
-		min-height: 106px;
-		padding: 10px 10px 5px;
+		min-height: 133px;
+		padding: 29px 10px;
 	}
 	.pay_price h4,.pay_price p{
 		text-align: right;
 	}
 	.sure_oder .oder_xq_list dl dd.pay_price{
 		display: inline-block;
-		min-height: 170px;
+		min-height: 237px;
 	}
 	.pay_price div p{
 		float: left;
 		height: auto;
 		line-height: 25px;
 	}
+	.pay_price .bulb-remind {
+		padding-right: 80px;
+		font-size: 14px;
+	}
 	.oder-remark{
 		height: 30px;
 		border-bottom: none !important;
@@ -295,14 +277,6 @@
 		margin-top: 10px;
 		margin-left: 4px;
 	}
-	.sure_oder .oder_xq_list dl span.total-price strong{
-		width: 70px;
-		display: inline-block;
-		float: left;
-	}
-	.sure_oder .oder_xq_list dl span.total-price em{
-		float: left;
-	}
 	.oder_xq_list dl .oder_l{
 		background: #f6f9ff;
 		border-bottom: #fff 1px solid;
@@ -317,6 +291,7 @@
 		border-bottom: none;
 	}
 	.pay_price div{
+		min-height: unset;
 		margin-right: 0;
 	}
 	.pay_price div h6{
@@ -611,6 +586,23 @@
 	.oder_xq_list dl span a.unstand:hover b{
 		color: #323232!important;
 	}
+	.pay_price div {
+		width: 100%;
+		max-width: unset;
+		border: none;
+		background: #faf8f8;
+		text-align: right;
+	}
+	.pay_price div h6 {
+		font-size: 14px;
+		text-align: right;
+		line-height: 24px;
+		display: inline-block;
+		margin-left: 20px;
+	}
+	.pay_price div h6 strong {
+		font-weight: normal;
+	}
 </style>
 <!--右侧主体部分-->
 <div class="user_right fr" id="pay-cart">
@@ -845,7 +837,7 @@
 								</i>
 								<!--<button ng-click="getRule(order.storeid)">获取配送规则</button>-->
 							</span>
-							<span class="total-price">
+							<span class="total-price" ng-controller="poundageCtrl">
 								<p><strong>运费:</strong>
 									<em ng-if="order.status==501 && deliveryList[details[0].storeid].fareType == 3" style="font-weight: bold;color:#e64040">到付</em>
 									<em ng-if="order.status==501 && deliveryList[details[0].storeid].fareType == 4" ng-bind="deliveryList[details[0].storeid].fare | formateNumber : 2 | currencySysmbol : order.currency.substring(0,3) " style="font-weight: bold;color:#e64040"></em>
@@ -859,10 +851,29 @@
 										<em ng-if="deliveryList && deliveryList[details[0].storeid].fareType == 4" style="font-weight: bold;color:#e64040">包邮</em>
 									</em>
 								</p>
+								<p>
+									<strong>
+										<i class="fa fa-exclamation-circle" ng-mouseenter="showRemindTagIntro = true" ng-mouseleave="showRemindTagIntro = false"></i>
+										<span class="price-down" ng-mouseenter="showRemindTagActivity = true" ng-mouseleave="showRemindTagActivity = false">减免</span>
+										手续费:
+									</strong>
+									<em ng-if="order.status == 501">{{order.currency == 'RMB' ? '¥ ':'$'}}0.00(<i class="price-down-tag" ng-bind="getMul(getAdd(storePrice[key], fareList[details[0].storeid]), 0.00453) | formateNumber : 2 | currencySysmbol : order.currency.substring(0,3)">$1.11</i>)</em>
+									<em ng-if="order.status != 501">
+										<em ng-if="storeArray.length == 1">{{order.currency == 'RMB' ? '¥ ':'$'}}0.00(<i class="price-down-tag" ng-bind="getMul(order.ensurePrice, 0.00453) | formateNumber : 2 | currencySysmbol : order.currency.substring(0,3)">$1.11</i>)</em>
+										<em ng-if="storeArray.length != 1">{{order.currency == 'RMB' ? '¥ ':'$'}}0.00(<i class="price-down-tag" ng-bind="getMul(getAdd(storePrice[key], deliveryList[details[0].storeid].fare), 0.00453) | formateNumber : 2 | currencySysmbol : order.currency.substring(0,3)">$1.11</i>)</em>
+									</em>
+									<div class="remind-tag intro" ng-show="showRemindTagIntro">
+										<div class="remind-tag-content">手续费:是指第三方支付机构在交易过程中,按照一定的百分比进行收取的费用。</div>
+										<div class="remind-tag-content red-text">手续费金额=订单金额 * 0.45%</div>
+									</div>
+									<div class="remind-tag activity" ng-show="showRemindTagActivity">
+										<div class="remind-tag-content">活动期间,减免手续费,已由商城支付给第三方机构。</div>
+									</div>
+								</p>
 								<p><strong>店铺合计:</strong>
-									<em ng-if="order.status==501" ng-bind="storePrice[key] + fareList[details[0].storeid] | formateNumber :2 | currencySysmbol : order.currency.substring(0,3)" style="font-weight: bold"></em>
+									<em ng-if="order.status==501" ng-bind="getAdd(storePrice[key], fareList[details[0].storeid]) | formateNumber :2 | currencySysmbol : order.currency.substring(0,3)"></em>
 
-									<em ng-if="order.status!=501" style="font-weight: bold">
+									<em ng-if="order.status!=501">
 										<em ng-if="storeArray.length == 1" ng-bind="order.ensurePrice | formateNumber :2 | currencySysmbol : order.currency.substring(0,3)"></em>
 										<em ng-if="storeArray.length != 1" ng-bind="storePrice[key] + deliveryList[details[0].storeid].fare | formateNumber :2 | currencySysmbol : order.currency.substring(0,3)"></em>
 									</em>
@@ -947,6 +958,7 @@
 								</select>
 							</span>
 							<a ng-click="confirmPay()">提交订单</a></p>
+						<p class="bulb-remind"><img src="static/img/user/bulb.png" alt="">若价格变动,请在订单提交后联系卖家改价</p>
 					</dd>
 				</dl>
 			</div>

+ 19 - 31
src/main/webapp/resources/view/vendor/forstore/purchase_detail.html

@@ -159,34 +159,6 @@
 		color: #333 !important;
 		margin-left: 40px;
 	}
-	.oder_xq_list dl span.total-price{
-		float: right;
-		width: auto !important;
-		position: relative;
-		bottom: 10px;
-		margin-right: 20px;
-	}
-	.oder_xq_list dl span.total-price p{
-		line-height: 25px;
-		font-size: 14px;
-		text-align: right;
-		font-weight: bold;
-		display: flex;
-	}
-	.oder_xq_list dl span.total-price p:first-child em{
-		color: #333;
-	}
-	.oder_xq_list dl span.total-price p:last-child{
-		color: #e64040;
-	}
-	.oder_xq_list dl span.total-price p em{
-		color: #e64040;
-	}
-	.oder_xq_list dl span.total-price strong {
-		width: 70px;
-		display: inline-block;
-		float: left;
-	}
 	.oder_xq_list dl span.user-address{
 		width: 100% !important;
 		line-height: 30px;
@@ -569,10 +541,26 @@
 						<span class="wd02" style="width: 60%; text-align: left; margin-left: 40px; line-height: 30px;">配送方式:<i ng-bind="deliveryMethod[purchase.sendType]"></i>
 							<i style="color: #999;" ng-if="rule" ng-bind="'(' + rule.ruleName + ')'">(满1000元包邮,未满足的订单收取运费20元)</i>
 						</span>
-						<span class="total-price">
+						<span class="total-price" ng-controller="poundageCtrl">
 								<p><strong>运费:</strong>
-									<em ng-if="!rule || rule.fareType != 3" ng-bind="purchase.fare | formateNumber : 2 | currencySysmbol : purchase.currency.substring(0,3)" style="font-weight: bold"></em>
-									<em ng-if="rule && rule.fareType == 3" style="font-weight: bold;color:#e64040">到付</em>
+									<em ng-if="!rule || rule.fareType != 3" ng-bind="purchase.fare | formateNumber : 2 | currencySysmbol : purchase.currency.substring(0,3)"></em>
+									<em ng-if="rule && rule.fareType == 3">到付</em>
+								</p>
+								<p>
+									<strong>
+										<i class="fa fa-exclamation-circle" ng-mouseenter="showRemindTagIntro = true" ng-mouseleave="showRemindTagIntro = false"></i>
+										<span class="price-down" ng-mouseenter="showRemindTagActivity = true" ng-mouseleave="showRemindTagActivity = false">减免</span>
+										手续费:
+									</strong>
+									<em ng-if="!isChange">{{purchase.currency == 'RMB' ? '¥ ':'$'}}0.00(<i ng-if="!isChange" ng-bind="getMul(purchase.ensurePrice, 0.00453) | formateNumber : 2 | currencySysmbol : purchase.currency" class="price-down-tag">$1.11</i><i ng-bind="getMul(purchase.currentTotal, 0.00453) | formateNumber : 2 | currencySysmbol : purchase.currency" ng-if="isChange" class="price-down-tag">$1.11</i>)</em>
+									<em ng-if="isChange">{{purchase.currency == 'RMB' ? '¥ ':'$'}}0.00(<i ng-if="!isChange" ng-bind="getMul(purchase.ensurePrice, 0.00453) | formateNumber : 2 | currencySysmbol : purchase.currency" class="price-down-tag">$1.11</i><i ng-bind="getMul(purchase.currentTotal, 0.00453) | formateNumber : 2 | currencySysmbol : purchase.currency" ng-if="isChange" class="price-down-tag">$1.11</i>)</em>
+									<div class="remind-tag intro" ng-show="showRemindTagIntro">
+										<div class="remind-tag-content">手续费:是指第三方支付机构在交易过程中,按照一定的百分比进行收取的费用。</div>
+										<div class="remind-tag-content red-text">手续费金额=订单金额 * 0.45%</div>
+									</div>
+									<div class="remind-tag activity" ng-show="showRemindTagActivity">
+										<div class="remind-tag-content">活动期间,减免手续费,已由商城支付给第三方机构。</div>
+									</div>
 								</p>
 								<p><strong>店铺合计:</strong>
 									<em ng-if="!isChange" ng-bind="purchase.ensurePrice | formateNumber : 2 | currencySysmbol : purchase.currency" style="font-weight: bold"></em>

+ 7 - 3
src/main/webapp/resources/view/vendor/forstore/vendor_onSale.html

@@ -733,6 +733,10 @@
     }
     .edit-form td div span.marginL27{
         margin-left: 27px;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+        width: 92px;
     }
     .edit-form td div span.marginL10{
         margin-left: 30px;
@@ -1033,17 +1037,17 @@
                         </td>
                         <td>
                             <div ng-repeat="price in commodity.prices" >
-                                <span ng-bind="price.start + '+'" class="marginL40"></span>
+                                <span title="{{price.start + '+'}}" ng-bind="price.start + '+'" class="marginL40"></span>
                             </div>
                         </td>
                         <td ng-if="onsale.currency == 'USD'">
                             <div  ng-repeat="price in commodity.prices" ng-if="price.uSDPrice" >
-                                <span ng-bind="price.uSDPrice | formateNumber : 6 | currencySysmbol : commodity.currencyName" class="marginL27"></span>
+                                <span title="{{price.uSDPrice | formateNumber : 6 | currencySysmbol : commodity.currencyName}}" ng-bind="price.uSDPrice | formateNumber : 6 | currencySysmbol : commodity.currencyName" class="marginL27"></span>
                             </div>
                         </td>
                         <td ng-if="onsale.currency == 'RMB'">
                             <div ng-repeat="price in commodity.prices" ng-if="price.rMBPrice">
-                                <span ng-bind="price.rMBPrice | formateNumber : 6 | currencySysmbol : commodity.currencyName" class="marginL27"></span>
+                                <span title="{{price.rMBPrice | formateNumber : 6 | currencySysmbol : commodity.currencyName}}" ng-bind="price.rMBPrice | formateNumber : 6 | currencySysmbol : commodity.currencyName" class="marginL27"></span>
                             </div>
                         </td>
                         <td>