Переглянути джерело

fix: 物流回调问题修复

xdd 2 місяців тому
батько
коміт
a63d54bcbe

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
fs-api/src/main/java/com/fs/app/controller/CommonController.java


+ 1 - 1
fs-service-system/src/main/java/com/fs/express/FsStoreDeliversService.java

@@ -55,7 +55,7 @@ public interface FsStoreDeliversService {
      */
     void syncDeliverInfo(Long orderId);
 
-    FsStoreDelivers findByOrderCodeAndDeliverId(String orderCode, String deliverId);
+    FsStoreDelivers findByOrderCodeAndDeliverId(String deliverId);
 
     void editDeliveryId(FsStoreDelivers deliveryDTO);
 

+ 2 - 2
fs-service-system/src/main/java/com/fs/express/impl/FsStoreDeliversServiceImpl.java

@@ -151,8 +151,8 @@ public class FsStoreDeliversServiceImpl implements FsStoreDeliversService {
     }
 
     @Override
-    public FsStoreDelivers findByOrderCodeAndDeliverId(String orderCode, String deliverId) {
-        return fsStoreDeliversMapper.findByOrderCodeAndDeliverId(orderCode,deliverId);
+    public FsStoreDelivers findByOrderCodeAndDeliverId(String deliverId) {
+        return fsStoreDeliversMapper.findByDeliverId(deliverId);
     }
 
     @Override

+ 9 - 1
fs-service-system/src/main/java/com/fs/store/mapper/FsStoreDeliversMapper.java

@@ -101,5 +101,13 @@ public interface FsStoreDeliversMapper {
      * @return FsStoreDelivers
      */
     @Select("SELECT * FROM fs_store_delivers WHERE order_code = #{orderCode} and deliver_id=#{deliverId}")
-    FsStoreDelivers findByOrderCodeAndDeliverId(String orderCode, String deliverId);
+    FsStoreDelivers findByOrderCodeAndDeliverId(@Param("orderCode") String orderCode, @Param("deliverId") String deliverId);
+    /**
+     * 查询订单号和快递号查询物流信息
+     * @param deliverId 物流Id
+     * @return FsStoreDelivers
+     */
+    @Select("SELECT * FROM fs_store_delivers WHERE deliver_id=#{deliverId} limit 1")
+    FsStoreDelivers findByDeliverId(@Param("deliverId") String deliverId);
+
 }

+ 9 - 8
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreOrderServiceImpl.java

@@ -2848,7 +2848,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             List<FsStoreDelivers> delivers = new ArrayList<>();
             for (ExpressInfoDTO express : expressInfoDTOList) {
                 FsStoreDelivers deliver = fsStoreDeliversService
-                        .findByOrderCodeAndDeliverId(express.getOrderCode(), express.getLogisticCode());
+                        .findByOrderCodeAndDeliverId(express.getLogisticCode());
                 if(ObjectUtil.isNotNull(express) && express.isSuccess()){
                     if(ObjectUtil.isNotNull(deliver)){
                         deliver.setStatus(Integer.valueOf(express.getState()));
@@ -2872,15 +2872,16 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                 }
             }
             // 更新物流状态
-            fsStoreDeliversMapper.updateBatch(delivers);
-            List<Long> collect = delivers.stream().map(FsStoreDelivers::getOrderId)
-                    .filter(ObjectUtil::isNotNull)
-                    .collect(Collectors.toList());
+            if(CollectionUtils.isNotEmpty(delivers)){
+                fsStoreDeliversMapper.updateBatch(delivers);
+                List<Long> collect = delivers.stream().map(FsStoreDelivers::getOrderId)
+                        .filter(ObjectUtil::isNotNull)
+                        .collect(Collectors.toList());
 
-            for (Long orderId : collect) {
-                fsStoreDeliversService.finishOrder(orderId);
+                for (Long orderId : collect) {
+                    fsStoreDeliversService.finishOrder(orderId);
+                }
             }
-
         }
         return ExpressResultDTO.success(sysConfig.getKdnId().trim());
     }

Деякі файли не було показано, через те що забагато файлів було змінено