Forráskód Böngészése

feat: 物流信息查询

xdd 2 hónapja
szülő
commit
1f61f5fbb3

+ 14 - 0
fs-service-system/src/main/java/com/fs/express/cache/FsStoreDeliversCacheService.java

@@ -0,0 +1,14 @@
+package com.fs.express.cache;
+
+import com.fs.store.domain.FsStoreDelivers;
+
+import java.util.List;
+
+public interface FsStoreDeliversCacheService {
+    /**
+     * 根据orderId查询
+     * @param orderId 订单id
+     * @return List<FsStoreDelivers>
+     */
+    Integer findExpressStatusByOrderId(Long orderId);
+}

+ 39 - 0
fs-service-system/src/main/java/com/fs/express/cache/impl/FsStoreDeliversCacheServiceImpl.java

@@ -0,0 +1,39 @@
+package com.fs.express.cache.impl;
+
+import com.fs.express.FsStoreDeliversService;
+import com.fs.express.cache.FsStoreDeliversCacheService;
+import com.fs.store.domain.FsStoreDelivers;
+import com.fs.store.domain.FsUser;
+import com.github.benmanes.caffeine.cache.Cache;
+import com.github.benmanes.caffeine.cache.Caffeine;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+@Service
+public class FsStoreDeliversCacheServiceImpl implements FsStoreDeliversCacheService {
+    @Autowired
+    private FsStoreDeliversService fsStoreDeliversService;
+    private static final Cache<Long, Integer> EXPRESS_STATUS_CACHE = Caffeine.newBuilder()
+            .maximumSize(1000)
+            .expireAfterWrite(3, TimeUnit.MINUTES)
+            .build();
+
+    @Override
+    public Integer findExpressStatusByOrderId(Long orderId) {
+        EXPRESS_STATUS_CACHE.get(orderId, key -> {
+            List<FsStoreDelivers> byOrderId = fsStoreDeliversService.findByOrderId(orderId);
+            if(CollectionUtils.isNotEmpty(byOrderId)){
+                FsStoreDelivers delivers = byOrderId.get(0);
+                return delivers.getStatus();
+            }
+            return 0;
+        });
+
+        return 0;
+    }
+}

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

@@ -47,6 +47,7 @@ import com.fs.erp.domain.*;
 import com.fs.erp.dto.*;
 import com.fs.erp.service.IErpOrderService;
 import com.fs.express.FsStoreDeliversService;
+import com.fs.express.cache.FsStoreDeliversCacheService;
 import com.fs.huifuPay.domain.HuiFuCreateOrder;
 import com.fs.huifuPay.domain.HuiFuRefundResult;
 import com.fs.huifuPay.domain.HuifuCreateOrderResult;
@@ -234,6 +235,9 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 
     @Autowired
     private IFsStorePaymentService fsStorePaymentService;
+
+    @Autowired
+    private FsStoreDeliversCacheService fsStoreDeliversCacheService;
     /**
      * 查询订单
      *
@@ -435,6 +439,11 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                     vo.setItems(items);
                 }
             }
+            // 查询订单物流状态
+            Integer expressStatusByOrderId = fsStoreDeliversCacheService.findExpressStatusByOrderId(vo.getId());
+            if (expressStatusByOrderId != null) {
+                vo.setDeliveryStatus(expressStatusByOrderId);
+            }
         }
         return list;
     }