Explorar o código

新增修改物流可再添加快递信息的功能

hulh %!s(int64=8) %!d(string=hai) anos
pai
achega
79b9689135

+ 9 - 0
src/main/java/com/uas/platform/b2c/logistics/controller/LogisticsOldController.java

@@ -132,4 +132,13 @@ public class LogisticsOldController {
 		logger.log("快递信息管理", "快递公司排序", "更新物流信息 id为" + id + " 的物流信息");
 		return logisticsOldService.updateLogistics(id, logistics, invoiceFuid);
 	}
+
+	/**
+	 * 保存物流信息,以免卖家发货界面没有填写快递信息,可以添加物流信息
+	 * @return
+	 */
+	@RequestMapping(value = "/add", method = RequestMethod.POST)
+	public ResultMap addLogistics(String inid, @RequestBody Logistics logistics){
+		return logisticsOldService.addLogistics(inid, logistics);
+	}
 }

+ 9 - 0
src/main/java/com/uas/platform/b2c/logistics/service/LogisticsOldService.java

@@ -60,6 +60,15 @@ public interface LogisticsOldService {
 	 */
 	ResultMap updateLogistics(Long id, Logistics logistics, String invoicFuid);
 
+	/**
+	 * 新增快递信息
+	 *
+	 * @param inid
+	 * @param logistics
+	 * @return
+	 */
+	ResultMap addLogistics(String inid, Logistics logistics);
+
 	/**
 	 * 传入物流公司和物流单号 生成Logistics
 	 *

+ 64 - 0
src/main/java/com/uas/platform/b2c/logistics/service/impl/LogisticsOldServiceImpl.java

@@ -1,5 +1,6 @@
 package com.uas.platform.b2c.logistics.service.impl;
 
+import com.uas.platform.b2c.core.config.SysConf;
 import com.uas.platform.b2c.logistics.model.Logistics;
 import com.uas.platform.b2c.logistics.model.LogisticsCompanyCode;
 import com.uas.platform.b2c.core.support.SystemSession;
@@ -11,6 +12,10 @@ import com.uas.platform.b2c.trade.deprecated.model.ConstantTrade;
 import com.uas.platform.b2c.logistics.model.InvoiceFPurchase;
 import com.uas.platform.b2c.trade.deprecated.model.ResponseLogistics;
 import com.uas.platform.b2c.logistics.service.LogisticsOldService;
+import com.uas.platform.b2c.trade.order.dao.OrderDao;
+import com.uas.platform.b2c.trade.order.dao.PurchaseDao;
+import com.uas.platform.b2c.trade.order.model.Order;
+import com.uas.platform.b2c.trade.order.model.Purchase;
 import com.uas.platform.b2c.trade.support.CodeType;
 import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.exception.IllegalOperatorException;
@@ -32,6 +37,15 @@ public class LogisticsOldServiceImpl implements LogisticsOldService {
 	@Autowired
 	private InvoiceFPurchaseDao invoiceFPurchaseDao;
 
+	@Autowired
+	private PurchaseDao purchaseDao;
+
+	@Autowired
+	private OrderDao orderDao;
+
+	@Autowired
+	private SysConf sysConf;
+
 	/*
 	 * @Override public List<LogisticsCompanyCode> getAllCodes() { return
 	 * logisticsCompanyCodeDao.findAll(); } public List<String> getAllName(){
@@ -88,6 +102,56 @@ public class LogisticsOldServiceImpl implements LogisticsOldService {
 		return logisticsDao.findOne(id);
 	}
 
+	/**
+	 * 新增物流信息
+	 * @param inid
+	 * @param logistics
+	 * @return
+	 */
+	@Override
+	public ResultMap addLogistics(String inid, Logistics logistics) {
+		if(StringUtils.isEmpty(inid)) {
+			return new ResultMap(CodeType.NO_INFO, "您需要更新的出货单号为空,请重新操作");
+		}
+		InvoiceFPurchase fPurchase = invoiceFPurchaseDao.findByInvoiceid(inid);
+		if(fPurchase == null) {
+			return new ResultMap(CodeType.NOT_EXiST, "找不到对应的出货单号为空,请重新操作");
+		}
+		if(SystemSession.getUser().getEnterprise().getUu().longValue() != fPurchase.getSellerenuu().longValue()) {
+			return new ResultMap(CodeType.NOT_PERMIT, "当前登录的公司不能操作此订单");
+		}
+		if(StringUtils.isEmpty(logistics.getCompanyName())) {
+			return new ResultMap(CodeType.NO_INFO, "物流公司信息为空,请重新操作");
+		}
+		if(StringUtils.isEmpty(logistics.getNumber())) {
+			return new ResultMap(CodeType.NO_INFO, "物流单号信息为空,请重新操作");
+		}
+		if (logistics != null){
+			LogisticsCompanyCode logisticsCompanyCode = logisticsCompanyCodeDao.findByName(logistics.getCompanyName());
+			if (logisticsCompanyCode != null) {
+				logistics.setCompanyId(logisticsCompanyCode.getId());
+				logistics.setCompanyCode(logisticsCompanyCode.getCode());
+			}
+			Logistics logistics1 = logisticsDao.save(logistics);
+			fPurchase.setLogistics(logistics1);
+		}
+		Purchase purchase = purchaseDao.findOne(fPurchase.getPuid());
+		if (fPurchase.getLogistics() != null){
+			purchase.setLgtId(fPurchase.getLogistics().getId());
+			purchaseDao.save(purchase);
+		}
+		if(!purchase.getStoreid().equals(sysConf.getStoreid())) {
+			Order order = orderDao.findByOrderid(purchase.getOrderid());
+			if (order == null) {
+				return new ResultMap(CodeType.NOT_PERMIT, "您订单的信息有误,请重新提交");
+			}
+			if (fPurchase.getLogistics() != null) {
+				order.setLgtId(fPurchase.getLogistics().getId());
+			}
+			orderDao.save(order);
+		}
+		return ResultMap.success(null);
+	}
 
 	/**
 	 * 更新物流信息

+ 5 - 1
src/main/webapp/resources/js/common/query/logistics.js

@@ -46,7 +46,11 @@ define([ 'ngResource' ], function() {
 			 updateLogistics : {
 				 url : 'trade/logistics/:id',
 				 method : 'POST'
-			 }
+			 },
+			addLogistics : {
+				url : 'trade/logistics/add',
+				method : 'POST'
+			}
 		});
 	}]);
 });

+ 57 - 16
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_order_ctrl.js

@@ -189,7 +189,6 @@ define(['app/app'], function (app) {
             Distributor.findAllSelected({},function (data) {
                 if (data){
                     $scope.data_list = data;
-                    console.log($scope.data_list)
                 }
             })
         };
@@ -226,11 +225,15 @@ define(['app/app'], function (app) {
                 }
             });
             if (purchase.showLogistics){
-                Logistics.findLogisticsById({lgtid:purchase.lgtId}, {}, function (data) {
-                    if (data){
-                        $scope.logistics = data;
-                    }
-                })
+                if (!purchase.lgtId){
+                    $scope.logistics = {};
+                }else {
+                    Logistics.findLogisticsById({lgtid:purchase.lgtId}, {}, function (data) {
+                        if (data){
+                            $scope.logistics = data;
+                        }
+                    })
+                }
             }
         };
 
@@ -238,29 +241,67 @@ define(['app/app'], function (app) {
             purchase.showLogistics = false;
         };
 
+        /**
+         * 确认修改物流信息
+         * @param purchase
+         */
         $scope.ensureModifyLogistics = function (purchase) {
             if (purchase.sendType == 1301){
                 if (!$scope.logistics.companyName) {
                     toaster.pop("error", "请选择物流公司");
-                    return;
+                    return ;
                 }
                 if ($scope.logistics.companyName == '请选择物流公司'){
                     toaster.pop('error', '注意', '请选择物流公司');
-                    return false;
+                    return ;
                 }
                 if (!$scope.logistics.number) {
                     toaster.pop("error", "请填写物流单号");
-                    return;
+                    return ;
                 }
-            }
-            Logistics.updateLogistics({id : purchase.lgtId, invoiceFuid : purchase.inid}, $scope.logistics, function (data) {
-                if (data){
-                    if(data.success){
-                        toaster.pop("success", "修改物流信息成功");
-                        purchase.showLogistics = false;
+                var patt = new RegExp("^[A-Za-z0-9]+$");
+                if (!patt.test($scope.logistics.number)){
+                    toaster.pop("error", "注意", '请输入正确的物流单号');
+                    return ;
+                }
+            }else {
+                if ($scope.logistics.companyName && $scope.logistics.companyName != '请选择物流公司'){
+                    if (!$scope.logistics.number){
+                        toaster.pop("error", "注意", '请完善快递信息');
+                        return ;
                     }
                 }
-            })
+                if ($scope.logistics.number){
+                    var patt = new RegExp("^[A-Za-z0-9]+$");
+                    if (!patt.test($scope.logistics.number)){
+                        toaster.pop("error", "注意", '请输入正确的物流单号');
+                        return ;
+                    }
+                    if (!$scope.logistics.companyName || $scope.logistics.companyName == '请选择物流公司'){
+                        toaster.pop("error", "注意", '请完善快递信息');
+                        return ;
+                    }
+                }
+            }
+            if (!purchase.lgtId){ //没有物流信息则添加物流信息
+                if ($scope.logistics.companyName && $scope.logistics.number){
+                    Logistics.addLogistics({inid : purchase.inid}, $scope.logistics, function (data) {
+                        if (data.success){
+                            toaster.pop("success", "保存物流信息成功");
+                            purchase.showLogistics = false;
+                        }
+                    })
+                }
+            }else { //更新物流信息
+                Logistics.updateLogistics({id : purchase.lgtId, invoiceFuid : purchase.inid}, $scope.logistics, function (data) {
+                    if (data){
+                        if(data.success){
+                            toaster.pop("success", "修改物流信息成功");
+                            purchase.showLogistics = false;
+                        }
+                    }
+                })
+            }
         };
 
         $scope.changeOrderState = function (state) {

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

@@ -461,7 +461,7 @@
 					</dd>
 					<dd class="line60">
 						<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;font-size: 12px" ng-bind="rule.ruleName">(满1000元包邮,未满足的订单收取运费20元)</i>
+							<i style="color: #999;" ng-if="rule" ng-bind="'(' + rule.ruleName + ')'">(满1000元包邮,未满足的订单收取运费20元)</i>
 						</span>
 						<span class="total-price">
 								<p><strong>运费:</strong><em ng-bind="purchase.fare | formateNumber : 2 | currencySysmbol : purchase.currency.substring(0,3)" style="font-weight: bold"></em></p>

+ 1 - 1
src/main/webapp/resources/view/vendor/forstore/vendor_order.html

@@ -926,7 +926,7 @@
                                 <a class="order-operation" href="javascript:void(0)" ng-if="(purchase.status == 502 || purchase.status == 406)&&(purchase.uasPurcid == null)" ng-click="toBeShiped(purchase)">点击发货</a>
 								<a ng-if="purchase.uasPurcid" style="text-decoration: none;color: #323232;">来源UAS</a>
                                 <!--<a class="order-operation" href="javascript:void(0)" ng-if="purchase.status == 404 && purchase.lgtId&&!purchase.uasPurcid" ng-click="toBeShiped(purchase)" style="position: relative;">修改物流</a>-->
-								<a class="order-operation" href="javascript:void(0)" ng-if="purchase.status == 404 && purchase.lgtId&&!purchase.uasPurcid" ng-click="modifyLogistic(purchase)" style="position: relative;">修改物流</a>
+								<a class="order-operation" href="javascript:void(0)" ng-if="purchase.status == 404&&!purchase.uasPurcid" ng-click="modifyLogistic(purchase)" style="position: relative;">修改物流</a>
                                 <div class="seller-ship-tip" ng-if="purchase.status == 404 && purchase.lgtId &&!purchase.uasPurcid" style="position: relative;">
                                     <img src="static/img/common/notice-tip.png" ng-mouseover="purchase.noticeTip = true" ng-mouseleave="purchase.noticeTip = false"/>
                                     <div class="ship-notify" ng-if="purchase.noticeTip">