Просмотр исходного кода

处理结算页到订单详情页的映射

hulh 8 лет назад
Родитель
Сommit
6d207983f1

+ 10 - 7
src/main/java/com/uas/platform/b2c/logistics/service/impl/AddressServiceImpl.java

@@ -48,12 +48,16 @@ public class AddressServiceImpl implements AddressService {
 				addresses = addressDao.findByEnuuAndTypeAndUsetypeOrderByNumAsc(address.getEnuu(), type, (short)2);
 			}
 			if (!CollectionUtils.isEmpty(addresses) && addresses.size() > 0) {
-				int num = 0;
-				if (modifyNum == 1) {
-					num = 1;
-				}
-				for (Address add : addresses){
-					add.setNum(++num);
+				if (addresses.size() == 1){
+					addresses.get(0).setNum(1);
+				}else {
+					int num = 0;
+					if (modifyNum == 1) {
+						num = 1;
+					}
+					for (Address add : addresses){
+						add.setNum(++num);
+					}
 				}
 			}
 			addressDao.save(addresses);
@@ -71,7 +75,6 @@ public class AddressServiceImpl implements AddressService {
 	@Override
 	public void setTop(Long addid, boolean setTop) {
 		Address address = addressDao.findOne(addid); //查询操作的Address
-//		System.out.println("setTop=" + setTop);
 		Long useruu = address.getUseruu();
 		int type = address.getType();
 		List<Address> addresses = null;

+ 1 - 1
src/main/java/com/uas/platform/b2c/logistics/service/impl/DistributionRuleServiceImpl.java

@@ -278,7 +278,7 @@ public class DistributionRuleServiceImpl implements DistributionRuleService{
 			Double fare = getFareOfRule(rule, price);
 			info.setFare(fare);
 		}
-		return null;
+		return ruleList;
 	}
 
 	/**

+ 4 - 2
src/main/java/com/uas/platform/b2c/trade/order/service/impl/PurchaseServiceImpl.java

@@ -389,8 +389,6 @@ public class PurchaseServiceImpl implements PurchaseService {
 		JSONObject object = FastjsonUtils.fromJson(orderFromCust.getOrderRemark(), JSONObject.class);
 		purchase.setPurchaseRemark(object.getString(orderFromCust.getStoreid()));//绑定评论
 		purchase.setSendType(orderFromCust.getDeliverytype());
-		purchase.setFare(orderFromCust.getFare());
-		purchase.setJsonRule(orderFromCust.getJsonRule());
 		if (orderFromCust.getJsonTakeSelf() != null){
 			purchase.setJsonTakeSelf(orderFromCust.getJsonTakeSelf());
 		}
@@ -417,6 +415,7 @@ public class PurchaseServiceImpl implements PurchaseService {
 			purchase.setInvoicetype(Type.Bill_Deduct.value());
 			purchase.setInvoiceAddress(FastjsonUtils.toJson(billOne.get(0)));
 			purchase.setInvoicetitle(billOne.get(0).getHead());
+			purchase.setFare(0d);//默认为0
 		}else {
 			if(orderFromCust.getBuyerentername() == null) {
 				Enterprise enterprise = enterpriseDao.findByUu(orderFromCust.getBuyerenuu());
@@ -434,6 +433,9 @@ public class PurchaseServiceImpl implements PurchaseService {
 			purchase.setInvoicetype(orderFromCust.getInvoicetype());
 			purchase.setInvoiceAddress(orderFromCust.getInvoiceAddress());
 			purchase.setInvoicetitle(orderFromCust.getInvoicetitle());
+			//如果是自营的,则保存配送规则和运费信息
+			purchase.setFare(orderFromCust.getFare());
+			purchase.setJsonRule(orderFromCust.getJsonRule());
 		}
 		List<User> users = userDao.findUserByUserUU(purchase.getBuyeruu());
 		User user = null;

+ 34 - 1
src/main/webapp/resources/js/usercenter/controllers/forstore/order_pay_ctrl.js

@@ -328,7 +328,7 @@ define(['app/app'], function(app) {
 					$scope.fareList[rule.uuid] = rule.fare;
 				}
 			}, function (error) {
-
+				// toaster.pop("error", error.data);
 			})
 		};
 
@@ -379,6 +379,29 @@ define(['app/app'], function(app) {
 			}
 		};
 
+		//验证配送规则
+		var checkRule = function () {
+			var value = true;
+			angular.forEach($scope.ruleMap, function (v) {
+				if (v.length == 0){
+					value = false;
+				}
+			});
+			return value;
+		};
+		//验证是否选择上门自提,却没有选择自提点
+		var checkTakeSelf = function () {
+			var value = true;
+			angular.forEach($scope.deliveryList, function (v, k) {
+				if (v.method == 1303){
+					if ($scope.takeSelfList[k] == null){
+						value = false;
+					}
+				}
+			});
+			return value;
+		};
+
 		//确认付款
 		$scope.confirmPay = function() {
 			if($scope.order.status == 502 || $scope.order.status == 503) {
@@ -397,6 +420,16 @@ define(['app/app'], function(app) {
 				}
 				return ;
 			}
+			var validRule = checkRule();
+			if (!validRule){
+				toaster.pop("info", "当前地址部分卖家无法配送,请重新选择地址或与卖家协商处理");
+				return ;
+			}
+			var validTakeSelf = checkTakeSelf();
+			if (!validTakeSelf){
+				toaster.pop("info", "当前无选择自提点信息ddd");
+				return ;
+			}
 			var orderInfos = [], orderInfo;
 			orderInfo = generateOrderInfo();
 			if(orderInfo == null) {

+ 2 - 0
src/main/webapp/resources/js/vendor/controllers/forstore/purchase_detail.js

@@ -218,6 +218,8 @@ define(['app/app'], function(app) {
 			angular.forEach($scope.purchase.purchaseDetails, function (detail) {
 				$scope.purchase.currentTotal += detail.currentTaxUnitPrice * detail.number;
 			});
+			//加上运费
+			$scope.purchase.currentTotal = NumberService.add($scope.purchase.currentTotal, $scope.purchase.fare);
 			$scope.purchase.currentTotal = Number(NumberService.toCeil($scope.purchase.currentTotal, 2));
 		};
 

+ 2 - 3
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_takeSelf_ctrl.js

@@ -63,7 +63,7 @@ define([ 'app/app' ], function(app) {
         $scope.editTakeSelf = function (addressTakeSelf) {
             $modal.open({
                 templateUrl : 'static/view/vendor/modal/edit_address_takeSelf.html',
-                controller : 'editAddrCtrl',
+                controller : 'editTakeSelfCtrl',
                 size : 'lg',
                 resolve : {
                     addressTakeSelf : function () {
@@ -90,7 +90,7 @@ define([ 'app/app' ], function(app) {
         };
 
         //地址编辑模态框
-        app.register.controller('editAddrCtrl', ['$scope', '$rootScope', 'isModify', '$modalInstance', 'addressTakeSelf', 'nameList', '$http', function ($scope, $rootScope, isModify, $modalInstance, addressTakeSelf, nameList, $http) {
+        app.register.controller('editTakeSelfCtrl', ['$scope', '$rootScope', 'isModify', '$modalInstance', 'addressTakeSelf', 'nameList', '$http', function ($scope, $rootScope, isModify, $modalInstance, addressTakeSelf, nameList, $http) {
             $scope.isModify = isModify;
             $scope.nameList = nameList;
             if (!addressTakeSelf){
@@ -171,7 +171,6 @@ define([ 'app/app' ], function(app) {
 
             $scope.saveAddressTakeSelf = function () {
                 var address = $scope.takeSelf;
-                console.log(address);
                 if (!address){
                     toaster.pop('error', '请补充未填写的信息');
                     return ;

+ 9 - 2
src/main/webapp/resources/view/usercenter/forstore/order_pay.html

@@ -262,6 +262,9 @@
 	.oder-remark,.oder_xq_list dl .line60{
 		background: #f1f6ff;
 	}
+	.oder_xq_list dl .line60.none-border{
+		border-bottom: none;
+	}
 	.pay_price div{
 		margin-right: 0;
 	}
@@ -642,7 +645,7 @@
 								<em ng-if="order.status!=501" style="margin-left: 0px" ng-bind="remarkList[details[0].storeid] || '无'"></em>
 							</span>
 						</dd>
-						<dd class="line60">
+						<dd class="line60" ng-class="{'none-border': deliveryList ? deliveryList[details[0].storeid].method==1303 : order.deliverytype=1303}">
 							<span class="style01" style="width: 60%; padding-left: 40px;" ng-class="{'line35': order.status!=501}">配送方式:
 								<select ng-if="order.status == 501" class="select" ng-model="deliveryList[details[0].storeid]" style="opacity: 1;"
 										ng-options="rule as deliveryMethod[rule.method] for rule in ruleMap[details[0].storeid]"
@@ -654,7 +657,11 @@
 									<em class="color333" ng-if="!deliveryList" ng-bind="deliveryMethod[order.deliverytype]"></em>
 									<em class="color333" ng-if="deliveryList" ng-bind="deliveryMethod[deliveryList[details[0].storeid].method]"></em>
 								</em>
-								<i ng-if="order.status == 501" ng-bind="deliveryList[details[0].storeid].ruleName">满1000元包邮,未满足的订单收取运费20元</i>
+								<i ng-if="order.status == 501">
+									<i style="margin-left: 0px;" ng-bind="deliveryList[details[0].storeid].ruleName"></i>
+									<i style="margin-left: 0px;" ng-if="!payment.address">请选择收货地址</i>
+									<i style="margin-left: 0px;" ng-if="payment.address && ruleMap[details[0].storeid].length == 0">当前地址不支持配送,请与卖家协商处理</i>
+								</i>
 								<i ng-if="order.status != 501">
 									<i style="margin-left: 0px;" ng-if="deliveryList" ng-bind="deliveryList[details[0].storeid].ruleName"></i>
 									<i style="margin-left: 0px;" ng-if="!deliveryList" ng-bind="rule.ruleName"></i>

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

@@ -423,7 +423,7 @@
 							<em  ng-show="!isChange" ng-bind="detail.taxUnitPrice | formateNumber : 6 | currencySysmbol : detail.currencyName" style="color: #333;"></em>
 							<em ng-show="isChange" class="price-style">
 								<em  ng-bind="'' | currencySysmbol : detail.currencyName"></em>
-								<input ng-model="detail.currentTaxUnitPrice" type="number" ng-change="updateTotal()"/>
+								<input ng-model="detail.currentTaxUnitPrice" type="number" ng-change="updateTotal(detail)"/>
 							</em>
 						</span>
 							<span style="width: 10%;" ng-bind="detail.number">100</span>
@@ -477,7 +477,7 @@
 						<!--<span ng-show="!canShowInfo" class="wd01">系统无法提供</span>-->
 						<!--<span><em ng-bind="freight | number : 2 | currencySysmbol : purchase.currency">¥20.00</em></span>-->
 					</dd>
-					<dd class="line60" ng-if="purchase.sendType == 1303">
+					<dd class="line60" ng-if="purchase.sendType == 1303 && takeSelf">
 						<span class="user-address" style="padding-left: 40px;">
 							<i class="fl"><strong style="font-weight: inherit; margin-right: 30px;" ng-bind="takeSelf.takename">自提点A</strong>营业时间:<i ng-bind="takeSelf.businesstime">周一至周五 8:30-18:00</i></i><br/>
 							<i class="fl">地址:<i ng-bind="takeSelf.area"></i>  <i ng-bind="takeSelf.detailAddress"></i></i>

+ 2 - 2
src/main/webapp/resources/view/vendor/forstore/vendor_distributor.html

@@ -71,7 +71,7 @@
 	.distributor-content {
 		width: 100%;
 		margin: 0 auto;
-		height: 489px;
+		min-height: 489px;
 		background: #fff;
 		padding-top: 25px;
 	}
@@ -105,6 +105,7 @@
 	.send-list{
 		margin-left: 20px;
 		margin-right: 20px;
+		padding-bottom: 20px;
 	}
 	.send-item{
 		display: inline-block;
@@ -115,7 +116,6 @@
 		background: #f0f6ff;
 		margin-bottom: 2px;
 		padding-top: 10px;
-		float: left;
 	}
 	.send-item:hover {
 		cursor: pointer;