Kaynağa Gözat

顺丰预下单 下单 取消接口

zxfqwert 1 hafta önce
ebeveyn
işleme
406895fa4c

+ 1 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizWaybillOrderController.java

@@ -82,6 +82,7 @@ public class BizWaybillOrderController extends BaseController
     @PostMapping
     public AjaxResult add(@RequestBody BizWaybillOrder bizWaybillOrder) throws UnsupportedEncodingException {
 
+
         return toAjax(bizWaybillOrderService.insertBizWaybillOrder(bizWaybillOrder));
     }
 

+ 14 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/BizWaybillOrderServiceImpl.java

@@ -2,8 +2,12 @@ package com.ruoyi.logistics.service.impl;
 
 import java.io.UnsupportedEncodingException;
 import java.util.List;
+
+import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.datascope.annotation.DataScope;
+import com.ruoyi.common.redis.service.RedisIdGenerator;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.logistics.service.LogisticsOrderService;
 import com.ruoyi.system.api.model.LoginUser;
@@ -28,6 +32,9 @@ public class BizWaybillOrderServiceImpl implements IBizWaybillOrderService
     @Autowired
     LogisticsOrderService logisticsOrderService;
 
+    @Autowired
+    private RedisIdGenerator redisIdGenerator;
+
     /**
      * 查询运单管理
      * 
@@ -63,6 +70,13 @@ public class BizWaybillOrderServiceImpl implements IBizWaybillOrderService
     public int insertBizWaybillOrder(BizWaybillOrder bizWaybillOrder) throws UnsupportedEncodingException {
 
         LoginUser loginUser = SecurityUtils.getLoginUser();
+        String orderId = redisIdGenerator.generateUniqueId("RJSD");
+        bizWaybillOrder.setWaybillNo(orderId);
+        //前置校验
+       JSONObject jsonObject= logisticsOrderService.precheckOrder(bizWaybillOrder);
+        if(!jsonObject.getBooleanValue("success")){
+            throw new ServiceException("下单前置校验未通过! 原因:"+jsonObject.getString("msg"));
+        }
         logisticsOrderService.createOrder(bizWaybillOrder);
 
         bizWaybillOrder.setCreateTime(DateUtils.getNowDate());

+ 6 - 7
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/SFLogisticsService.java

@@ -9,10 +9,13 @@ import com.ruoyi.logistics.domain.BizWaybillOrder;
 import com.ruoyi.logistics.domain.LogisticsOrder;
 import com.ruoyi.logistics.service.LogisticsService;
 import com.ruoyi.logistics.util.SFExpressHttpUtil;
+import com.ruoyi.system.controller.SysUserController;
 import com.sf.csim.express.service.CallExpressServiceTools;
 import com.sf.csim.express.service.HttpClientUtil;
 import com.sf.csim.express.service.IServiceCodeStandard;
 import com.sf.csim.express.service.code.ExpressServiceCodeEnum;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -28,11 +31,11 @@ import java.util.*;
  */
 @Service
 public class SFLogisticsService implements LogisticsService {
+    private static final Logger log = LoggerFactory.getLogger(SFLogisticsService.class);
 
     @Autowired
     private SFExpressConfig sfExpressConfig;
-    @Autowired
-    private RedisIdGenerator redisIdGenerator;
+
 
     /**
      * 顺丰物流预下单接口
@@ -48,8 +51,7 @@ public class SFLogisticsService implements LogisticsService {
         JSONObject msgData = new JSONObject();
         //预下单接口已拿到订单id 下单需要用到这个id
 
-        String orderId = redisIdGenerator.generateUniqueId("RJSD");
-        msgData.put("orderId", orderId);
+        msgData.put("orderId", bizWaybillOrder.getWaybillNo());
         msgData.put("cargoName", bizWaybillOrder.getGoodsName());
         msgData.put("monthlyCard", sfExpressConfig.getMonthlyCord());
         msgData.put("totalWeight", bizWaybillOrder.getGoodsWeight());
@@ -83,14 +85,11 @@ public class SFLogisticsService implements LogisticsService {
         JSONObject jsonObject = JSON.parseObject(result).getJSONObject("apiResultData");
         JSONObject resultInfo = new JSONObject();
         if (jsonObject != null && jsonObject.containsKey("success") && jsonObject.getBooleanValue("success")) {
-            bizWaybillOrder.setWaybillNo(orderId);
             resultInfo.put("success", true);
-            resultInfo.put("data", bizWaybillOrder);
             resultInfo.put("msg", "预下单校验成功!");
             return resultInfo;
         } else {
             resultInfo.put("success", false);
-            resultInfo.put("data", null);
             resultInfo.put("msg", "预下单校验失败!失败原因:"+jsonObject.get("errorMsg"));
             return resultInfo;
         }