Przeglądaj źródła

feat: 京东物流回调入参调整;运单列表字段增加;

hanchaolong 3 dni temu
rodzic
commit
e8fa8d04af

+ 9 - 3
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/callback/JDPushOrderFeeCallback.java

@@ -1,7 +1,7 @@
 package com.ruoyi.logistics.callback;
 
+import com.alibaba.fastjson2.JSON;
 import com.ruoyi.common.core.web.domain.AjaxResult;
-import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.logistics.domain.BizFinancialFeeItems;
 import com.ruoyi.logistics.domain.BizWaybillCostDetails;
 import com.ruoyi.logistics.domain.BizWaybillOrder;
@@ -11,7 +11,9 @@ import com.ruoyi.logistics.service.IBizWaybillCostDetailsService;
 import com.ruoyi.logistics.service.IBizWaybillOrderService;
 import com.ruoyi.system.api.domain.SysDept;
 import com.ruoyi.system.service.ISysDeptService;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -20,6 +22,7 @@ import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 
+@Slf4j
 @RestController
 @RequestMapping("/callback/jd")
 public class JDPushOrderFeeCallback {
@@ -36,8 +39,11 @@ public class JDPushOrderFeeCallback {
     @Autowired
     private FeeItemsCacheService feeItemsCacheService;
 
-    @RequestMapping("/fee")
-    public AjaxResult fee(@RequestBody JDOrderFeeRequestDTO request) {
+    @RequestMapping(value = "/fee", consumes = MediaType.TEXT_PLAIN_VALUE)
+    public AjaxResult fee(@RequestBody String requestBody) {
+        log.info("京东物流运单费用回调,参数:{}", requestBody);
+
+        JDOrderFeeRequestDTO request = JSON.parseObject(requestBody, JDOrderFeeRequestDTO.class);
 
         // 根据运单号查询订单
         BizWaybillOrder query = new BizWaybillOrder();

+ 12 - 7
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/callback/JDPushOrderStatausCallback.java

@@ -1,5 +1,6 @@
 package com.ruoyi.logistics.callback;
 
+import com.alibaba.fastjson2.JSON;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.logistics.domain.BizWaybillOrder;
@@ -8,6 +9,7 @@ import com.ruoyi.logistics.enums.OrderStatusEnum;
 import com.ruoyi.logistics.service.IBizWaybillOrderService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -21,29 +23,32 @@ public class JDPushOrderStatausCallback {
     @Autowired
     private IBizWaybillOrderService bizWaybillOrderService;
 
-    @PostMapping("/orderStatus")
-    public AjaxResult orderStatus(@RequestBody JDOrderStatusRequestDTO request) {
-        log.info("京东物流运单状态回调,参数:{}", request.toString());
+    @PostMapping(value = "/orderStatus", consumes = MediaType.TEXT_PLAIN_VALUE)
+    public AjaxResult orderStatus(@RequestBody String requestBody) {
+        log.info("京东物流运单状态回调,参数:{}", requestBody);
+
+        JDOrderStatusRequestDTO request = JSON.parseObject(requestBody, JDOrderStatusRequestDTO.class);
 
         // 根据运单号查询订单
         BizWaybillOrder query = new BizWaybillOrder();
-        query.setWaybillNo(request.getOrderId());
-        query.setExternalWaybillNo(request.getWaybillCode());
+        query.setWaybillNo(request.getCustomerOrderNo());
+        query.setExternalWaybillNo(request.getWaybillNo());
         BizWaybillOrder bizWaybillOrder = bizWaybillOrderService.selectBizWaybillOrderByQuery(query);
         if (bizWaybillOrder == null) {
             return AjaxResult.error("订单不存在");
         }
         Boolean update = Boolean.FALSE;
-        switch (request.getState()) {
+        switch (request.getOperationCode()) {
             case "200001"://揽收
                 bizWaybillOrder.setOrderStatus(OrderStatusEnum.ORDER_STATUS_1.getCode());
                 bizWaybillOrder.setPickupTime(DateUtils.getNowDate());
                 update = Boolean.TRUE;
                 break;
-            case "200075"://运输
+            case "10054"://运输
                 bizWaybillOrder.setOrderStatus(OrderStatusEnum.ORDER_STATUS_3.getCode());
                 update = Boolean.TRUE;
                 break;
+            case "200056"://派送
             case "11000"://派送
                 bizWaybillOrder.setOrderStatus(OrderStatusEnum.ORDER_STATUS_4.getCode());
                 bizWaybillOrder.setDeliveryTime(DateUtils.getNowDate());

+ 15 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizBannerController.java

@@ -102,4 +102,19 @@ public class BizBannerController extends BaseController
     {
         return toAjax(bizBannerService.deleteBizBannerByBannerIds(bannerIds));
     }
+
+
+    /**
+     * 首页-轮播图列表
+     */
+    @RequiresPermissions("system:banner:list")
+    @GetMapping("/listByType")
+    public AjaxResult listByType()
+    {
+        BizBanner bizBanner = new BizBanner();
+        bizBanner.setSysType("0");
+        bizBanner.setIsActive("0");
+        List<BizBanner> list = bizBannerService.selectBizBannerList(bizBanner);
+        return success(list);
+    }
 }

+ 34 - 37
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/dto/JDOrderStatusRequestDTO.java

@@ -3,48 +3,45 @@ package com.ruoyi.logistics.dto;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.Map;
 
 @Data
 public class JDOrderStatusRequestDTO {
 
-    // 节点名称
-    private String operationTitle;
-    // 一级分类编码
-    private Integer category;
-    // 一级分类名称
-    private String categoryName;
-    // 签收类型
-    private String signTypeName;
-    // 节点编码
-    private String state;
-    // 路由详细地址
-    private String routeAddress;
-    // 路由 省
-    private String routeProvinceName;
-    // 路由 市
-    private String routeCityName;
-    // 路由 区
-    private String routeDistrictName;
-    // 路由 县
-    private String routeStreetName;
-    // 小哥名称
-    private String operatorName;
-    // 小哥电话
-    private String operatorPhone;
+    // 京东物流订单号
+    private String orderNo;
+    // 三方平台订单号
+    private String customerOrderNo;
     // 京东物流运单号
-    private String waybillCode;
-    // 商家订单号
-    private String orderId;
+    private String waybillNo;
+    // 话术
+    private String remark;
+    // 操作人名称
+    private String operatorName;
     // 操作时间
-    private Date operationTime;
-    // 节点描述
-    private String operationRemark;
-    // 机构编码
-    private String operateSiteId;
-    // 机构编码名称
+    private String operationTime;
+    // 操作节点阶段
+    private String operationType;
+    // 操作节点状态
+    private String operationCode;
+    // 操作站点
     private String operateSite;
-    // 京东换单新运单号
-    private String newWaybillCode;
-    // 取消原因
-    private String cancelReason;
+    // 操作站点id
+    private String operateSiteId;
+    // 路区地址信息
+    private OperateLocation operateLocation;
+    // 扩展参数
+    private Map<String, String> extend;
+
+    @Data
+    public class OperateLocation {
+        // 路由 省
+        private String routeProvinceName;
+        // 路由 市
+        private String routeCityName;
+        // 路由 区
+        private String routeDistrictName;
+        // 路由 县
+        private String routeStreetName;
+    }
 }

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

@@ -175,6 +175,12 @@ public class JDLogisticsService  implements LogisticsService {
             cargoInfo.setVolume(bizWaybillOrder.getGoodsVolume());
             cargoes.add(cargoInfo);
 
+            //扩展信息
+            Map<String, String> extendProps = new HashMap<>();
+            extendProps.put("autoSubscribe", "1");
+            extendProps.put("universalFeePush", "1");
+
+            requestDTO.setExtendProps(extendProps);
             requestDTO.setCargoes(cargoes);
             requestDTO.setProductsReq(productInfo);
             requestDTO.setReceiverContact(receiverContact);

Plik diff jest za duży
+ 17 - 1
jd-logistics-modules/jd-logistics-system/src/main/resources/mapper/logistics/BizWaybillOrderMapper.xml