Browse Source

收到物流事件,对订单的物流进行更新

zhangwl 1 month ago
parent
commit
e5d0c89fcf

+ 41 - 0
src/main/java/zs/payment/entity/mysql/ImsEweiShopExpress.java

@@ -0,0 +1,41 @@
+package zs.payment.entity.mysql;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+/**
+ * 物流信息
+ */
+@Setter
+@Getter
+@NoArgsConstructor
+@TableName("ims_ewei_shop_express")
+public class ImsEweiShopExpress {
+
+    @TableId(type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+
+    //物流公司的中文名称
+    @TableField("name")
+    private String name;
+
+    //物流公司的简称,必要
+    @TableField("express")
+    private String express;
+
+    //状态 1-正常
+    @TableField("status")
+    private Integer status;
+
+    @TableField("displayorder")
+    private Integer displayorder;
+//没用到
+    @TableField("code")
+    private String code;
+}

+ 1 - 1
src/main/java/zs/payment/entity/mysql/ImsEweiShopOrder.java

@@ -111,7 +111,7 @@ public class ImsEweiShopOrder {
     private String express;  // 快递
 
     @TableField("sendtime")
-    private Integer sendtime;  // 发送时间
+    private Integer sendtime;  // 发送时间【物流的发货时间】 秒级-11位
 
     @TableField("fetchtime")
     private Integer fetchtime;  // 自提时间

+ 9 - 0
src/main/java/zs/payment/mapper/primary/ImsEweiShopExpressMapper.java

@@ -0,0 +1,9 @@
+package zs.payment.mapper.primary;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import zs.payment.entity.mysql.ImsEweiShopExpress;
+
+@Mapper
+public interface ImsEweiShopExpressMapper extends BaseMapper<ImsEweiShopExpress> {
+}

+ 9 - 0
src/main/java/zs/payment/service/imseweishopexpress/ImsEweiShopExpressService.java

@@ -0,0 +1,9 @@
+package zs.payment.service.imseweishopexpress;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import zs.payment.entity.mysql.ImsEweiShopExpress;
+
+public interface ImsEweiShopExpressService extends IService<ImsEweiShopExpress> {
+
+    String getExpressByName(String name);
+}

+ 22 - 0
src/main/java/zs/payment/service/imseweishopexpress/impl/ImsEweiShopExpressServiceImpl.java

@@ -0,0 +1,22 @@
+package zs.payment.service.imseweishopexpress.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import zs.payment.entity.mysql.ImsEweiShopExpress;
+import zs.payment.mapper.primary.ImsEweiShopExpressMapper;
+import zs.payment.service.imseweishopexpress.ImsEweiShopExpressService;
+
+@Slf4j
+@Service
+public class ImsEweiShopExpressServiceImpl extends ServiceImpl<ImsEweiShopExpressMapper, ImsEweiShopExpress>implements ImsEweiShopExpressService {
+
+    @Override
+    public String getExpressByName(String name) {
+        ImsEweiShopExpress express = getOne(new LambdaQueryWrapper<ImsEweiShopExpress>()
+                .eq(ImsEweiShopExpress::getName, name)
+                .last("limit 1"));
+        return express != null ? express.getExpress() : null;
+    }
+}

+ 5 - 1
src/main/java/zs/payment/service/imseweishoporder/impl/ImsEweiShopOrderServiceImpl.java

@@ -7,6 +7,7 @@ import zs.payment.dto.OrderExpressUpdateDTO;
 import zs.payment.entity.mysql.ImsEweiShopOrder;
 import zs.payment.mapper.primary.ImsEweiShopOrderMapper;
 import zs.payment.service.imseweishoporder.ImsEweiShopOrderService;
+import zs.payment.utils.TimeUtils;
 
 
 @Slf4j
@@ -18,6 +19,9 @@ public class ImsEweiShopOrderServiceImpl extends ServiceImpl<ImsEweiShopOrderMap
         return lambdaUpdate().eq(ImsEweiShopOrder::getOrdersn, dto.getOrdersn())
             .set(ImsEweiShopOrder::getExpress, dto.getCompanyCode())
             .set(ImsEweiShopOrder::getExpresscom, dto.getCompanyName())
-            .set(ImsEweiShopOrder::getExpresssn, dto.getExpressNo()).update();
+            .set(ImsEweiShopOrder::getExpresssn, dto.getExpressNo())
+            .set(ImsEweiShopOrder::getStatus,2)
+            .set(ImsEweiShopOrder::getSendtime, TimeUtils.getLongFromCurrentTime()/100)
+            .update();
     }
 }

+ 9 - 10
src/main/java/zs/payment/service/supply/paysupply/impl/PaySupplyServiceImpl.java

@@ -19,6 +19,7 @@ import zs.payment.req.aftersales.AfterSalesOrderReq;
 import zs.payment.req.aftersales.AfterSalesOrderTypeReq;
 import zs.payment.resp.Result;
 
+import zs.payment.service.imseweishopexpress.ImsEweiShopExpressService;
 import zs.payment.service.imseweishoporder.ImsEweiShopOrderService;
 import zs.payment.service.order.OrdersService;
 import zs.payment.service.supply.order.OrderSupplyService;
@@ -51,6 +52,9 @@ public class PaySupplyServiceImpl implements PaySupplyService {
     @Autowired
     private ImsEweiShopOrderService imsEweiShopOrderService;
 
+    @Autowired
+    private ImsEweiShopExpressService imsEweiShopExpressService;
+
 
     @Override
     public Result orderPayOnly(OrderPayReq req) {
@@ -182,7 +186,6 @@ public class PaySupplyServiceImpl implements PaySupplyService {
 
         String resp = HttpUtil.restTemplatePost(prefixUrl + "/supplyapi/app/order/Logistic", params, headers);
 
-
         JSONObject respJson = JSONObject.parseObject(resp);
         if (respJson.getIntValue("code") != 0) {
             return Result.fail(respJson.getString("msg"));
@@ -190,24 +193,20 @@ public class PaySupplyServiceImpl implements PaySupplyService {
         //获取物流信息
         JSONArray array = respJson.getJSONArray("data");
         //获取物流中的物流编号+物流编码
-
         // 物流编号
         String expressNo = array.getJSONObject(0).getString("express_no");
         // 物流编码
-        String companyCode = array.getJSONObject(0).getString("company_code");
-        // 公司
+//        String companyCode = array.getJSONObject(0).getString("company_code");
+        // 公司 :申通
         String companyName = array.getJSONObject(0).getString("company_name");
-
+        //根据公司查询自研系统内的物流编码
+        String express= imsEweiShopExpressService.getExpressByName(companyName);
         OrderExpressUpdateDTO dto = new OrderExpressUpdateDTO();
         dto.setOrdersn(orderSn);
         dto.setExpressNo(expressNo);
-        dto.setCompanyCode(companyCode);
+        dto.setCompanyCode(express);
         dto.setCompanyName(companyName);
-
         Boolean b = imsEweiShopOrderService.updateExpressByOrdersn(dto);
-
-
-
         return Result.success(b);
     }
 }