Browse Source

feat: 仓库新增缓存

xdd 6 days ago
parent
commit
7c029714c7

+ 6 - 2
fs-admin/src/main/java/com/fs/store/controller/FsStoreOrderController.java

@@ -22,6 +22,7 @@ import com.fs.erp.utils.ErpContextHolder;
 import com.fs.express.FsStoreDeliversService;
 import com.fs.express.dto.DeliveryDTO;
 import com.fs.store.cache.IFsStoreProductCacheService;
+import com.fs.store.cache.IFsWarehouseCacheService;
 import com.fs.store.domain.*;
 import com.fs.store.dto.*;
 import com.fs.store.enums.ShipperCodeEnum;
@@ -86,6 +87,9 @@ public class FsStoreOrderController extends BaseController {
 
     @Autowired
     private FsStoreOrderMapper fsStoreOrderMapper;
+
+    @Autowired
+    private IFsWarehouseCacheService fsWarehouseCacheService;
     /**
      * 查询订单列表
      */
@@ -422,7 +426,7 @@ public class FsStoreOrderController extends BaseController {
 
         // 根据仓库code找erp
         if(com.fs.common.utils.StringUtils.isNotBlank(order.getStoreHouseCode())){
-            String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
+            String erp = fsWarehouseCacheService.selectErpByCode(order.getStoreHouseCode());
             ErpContextHolder.setErpType(erp);
         }
 
@@ -521,7 +525,7 @@ public class FsStoreOrderController extends BaseController {
 
         // 根据仓库code找erp
         if(com.fs.common.utils.StringUtils.isNotBlank(order.getStoreHouseCode())){
-            String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
+            String erp = fsWarehouseCacheService.selectErpByCode(order.getStoreHouseCode());
             ErpContextHolder.setErpType(erp);
         }
 

+ 6 - 2
fs-admin/src/main/java/com/fs/task/StoreTask.java

@@ -17,6 +17,7 @@ import com.fs.erp.service.FsJstCodPushService;
 import com.fs.erp.service.IErpGoodsService;
 import com.fs.erp.service.IErpOrderService;
 import com.fs.erp.utils.ErpContextHolder;
+import com.fs.store.cache.IFsWarehouseCacheService;
 import com.fs.store.config.StoreConfig;
 import com.fs.store.domain.*;
 import com.fs.store.dto.StoreProductGroupDTO;
@@ -128,7 +129,8 @@ public class StoreTask {
 
     @Autowired
     private FsJstCodPushService fsJstCodPushService;
-
+    @Autowired
+    private IFsWarehouseCacheService fsWarehouseCacheService;
     /**
      * 推送jst售后单
      */
@@ -144,6 +146,8 @@ public class StoreTask {
     public void jstCodPush(){
         fsJstCodPushService.jstCodPush();
     }
+
+
     /**
      * 发货任务
      */
@@ -159,7 +163,7 @@ public class StoreTask {
             try{
                 // 根据仓库code找erp
                 if(com.fs.common.utils.StringUtils.isNotBlank(order.getStoreHouseCode())){
-                    String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
+                    String erp = fsWarehouseCacheService.selectErpByCode(order.getStoreHouseCode());
                     ErpContextHolder.setErpType(erp);
                 }
                 ErpOrderQueryResponse response = erpOrderService.getOrder(request);

+ 3 - 0
fs-service-system/src/main/java/com/fs/store/cache/IFsWarehouseCacheService.java

@@ -1,7 +1,10 @@
 package com.fs.store.cache;
 
 import com.fs.store.domain.FsWarehouses;
+import org.apache.ibatis.annotations.Param;
 
 public interface IFsWarehouseCacheService {
     FsWarehouses selectFsWarehousesById(Long id);
+    String selectErpByCode(@Param("warehouseCode") String warehouseCode);
+
 }

+ 18 - 0
fs-service-system/src/main/java/com/fs/store/cache/impl/FsWarehouseCacheServiceImpl.java

@@ -4,6 +4,7 @@ import com.fs.store.cache.IFsStoreProductCacheService;
 import com.fs.store.cache.IFsWarehouseCacheService;
 import com.fs.store.domain.FsStoreProduct;
 import com.fs.store.domain.FsWarehouses;
+import com.fs.store.mapper.FsWarehousesMapper;
 import com.fs.store.service.IFsWarehousesService;
 import com.github.benmanes.caffeine.cache.Cache;
 import com.github.benmanes.caffeine.cache.Caffeine;
@@ -18,6 +19,7 @@ import java.util.concurrent.TimeUnit;
 @RequiredArgsConstructor
 public class FsWarehouseCacheServiceImpl implements IFsWarehouseCacheService {
     private final IFsWarehousesService fsWarehousesService;
+    private final FsWarehousesMapper fsWarehousesMapper;
     /**
      * 使用Caffeine本地缓存
      * maximumSize: 最大缓存条数
@@ -27,10 +29,26 @@ public class FsWarehouseCacheServiceImpl implements IFsWarehouseCacheService {
             .maximumSize(1000)
             .expireAfterWrite(1, TimeUnit.MINUTES)
             .build();
+    /**
+     * 使用Caffeine本地缓存
+     * maximumSize: 最大缓存条数
+     * expireAfterWrite: 写入后多久过期(分钟)
+     */
+    private static final Cache<String, String> CACHE_ERP_CODE = Caffeine.newBuilder()
+            .maximumSize(1000)
+            .expireAfterWrite(3, TimeUnit.MINUTES)
+            .build();
 
 
     @Override
     public FsWarehouses selectFsWarehousesById(Long id) {
         return CACHE.get(id, e -> fsWarehousesService.selectFsWarehousesById(id));
     }
+
+    @Override
+    public String selectErpByCode(String warehouseCode) {
+        return CACHE_ERP_CODE.get(warehouseCode,e->
+            fsWarehousesMapper.selectErpByCode(warehouseCode)
+        );
+    }
 }

+ 14 - 11
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreAfterSalesServiceImpl.java

@@ -33,6 +33,7 @@ import com.fs.huifuPay.domain.HuiFuRefundResult;
 import com.fs.huifuPay.dto.*;
 import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentScanpayRefundRequest;
 import com.fs.huifuPay.service.HuiFuService;
+import com.fs.store.cache.IFsWarehouseCacheService;
 import com.fs.store.mapper.FsStoreDeliversMapper;
 import com.fs.store.mapper.FsWarehousesMapper;
 import com.fs.system.config.SnowflakeUtils;
@@ -80,7 +81,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
     Logger logger= LoggerFactory.getLogger(getClass());
 
     @Autowired
-    IFsStorePaymentService paymentService;
+    private IFsStorePaymentService paymentService;
     @Autowired
     private ICompanyService companyService;
     @Autowired
@@ -100,20 +101,20 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
     @Autowired
     private IFsStoreProductService productService;
     @Autowired
-    IErpOrderService erpOrderService;
+    private IErpOrderService erpOrderService;
     @Autowired
     private ISysConfigService configService;
     @Autowired
     private HuiFuService huiFuService;
 
     @Autowired
-    IFsUserService userService;
+    private IFsUserService userService;
 
     @Autowired
-    PayService ybPayService;
+    private PayService ybPayService;
 
     @Autowired
-    TzBankService tzBankService;
+    private TzBankService tzBankService;
     @Autowired
     private IFsStoreOrderService fsStoreOrderService;
     @Autowired
@@ -126,6 +127,8 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
     @Autowired
     private FsStoreAfterSalesMapper afterSalesMapper;
 
+    @Autowired
+    private IFsWarehouseCacheService fsWarehouseCacheService;
     /**
      * 查询售后记录
      *
@@ -333,7 +336,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
 
         // 根据仓库code找erp
         if(StringUtils.isNotBlank(order.getStoreHouseCode())){
-            String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
+            String erp = fsWarehouseCacheService.selectErpByCode(order.getStoreHouseCode());
 
             if(StringUtils.equals(erp,ErpTypeConstant.JST_ERP)){
                 FsJstAftersalePush fsJstAftersalePush = new FsJstAftersalePush();
@@ -384,7 +387,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
         // erp撤销售后单
         // 如果当前订单是属于jst erp
         if(StringUtils.isNotBlank(order.getStoreHouseCode())){
-            String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
+            String erp = fsWarehouseCacheService.selectErpByCode(order.getStoreHouseCode());
             if(StringUtils.equals(erp, ErpTypeConstant.JST_ERP)){
                 FsJstAftersalePush fsJstAftersalePush = new FsJstAftersalePush();
                 fsJstAftersalePush.setOrderId(order.getOrderCode());
@@ -473,7 +476,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
 
         // 如果当前订单是属于jst erp
         if(order != null && StringUtils.isNotBlank(order.getStoreHouseCode())){
-            String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
+            String erp = fsWarehouseCacheService.selectErpByCode(order.getStoreHouseCode());
             if(StringUtils.equals(erp, ErpTypeConstant.JST_ERP)){
                 FsJstAftersalePush fsJstAftersalePush = new FsJstAftersalePush();
                 fsJstAftersalePush.setOrderId(order.getOrderCode());
@@ -620,7 +623,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
 
         // 财务审核通过,同步到jst erp
         if(StringUtils.isNotBlank(order.getStoreHouseCode())){
-            String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
+            String erp = fsWarehouseCacheService.selectErpByCode(order.getStoreHouseCode());
             if(StringUtils.equals(erp, ErpTypeConstant.JST_ERP)){
                 FsJstAftersalePush fsJstAftersalePush = new FsJstAftersalePush();
                 fsJstAftersalePush.setOrderId(order.getOrderCode());
@@ -798,7 +801,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
         // 如果已发货走发货售后逻辑,否则直接取消
         if(byOrderCode!=null){
             if(StringUtils.isNotBlank(order.getStoreHouseCode())) {
-                String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
+                String erp = fsWarehouseCacheService.selectErpByCode(order.getStoreHouseCode());
                 if (StringUtils.equals(erp, ErpTypeConstant.JST_ERP)) {
 
                     FsJstAftersalePush fsJstAftersalePush = new FsJstAftersalePush();
@@ -1087,7 +1090,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
 
         // 根据仓库code找erp
         if(StringUtils.isNotBlank(order.getStoreHouseCode())){
-            String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
+            String erp = fsWarehouseCacheService.selectErpByCode(order.getStoreHouseCode());
             ErpContextHolder.setErpType(erp);
         }
 

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

@@ -63,6 +63,7 @@ import com.fs.pay.pay.dto.RefundDTO;
 import com.fs.pay.pay.dto.WxJspayDTO;
 import com.fs.pay.pay.service.PayService;
 import com.fs.store.cache.IFsUserCacheService;
+import com.fs.store.cache.IFsWarehouseCacheService;
 import com.fs.store.cache.impl.IFsStoreProductCacheServiceImpl;
 import com.fs.store.config.StoreConfig;
 import com.fs.store.config.StoreIntegralConfig;
@@ -272,6 +273,9 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
     @Autowired
     private FsUserMapper fsUserMapper;
 
+    @Autowired
+    private IFsWarehouseCacheService fsWarehouseCacheService;
+
     @Value("${snowflake.worker-id:1}")
     private long workerId;
 
@@ -1226,7 +1230,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         request.setCode(order.getExtendOrderId());
         // 根据仓库code找erp
         if(com.fs.common.utils.StringUtils.isNotBlank(order.getStoreHouseCode())){
-            String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
+            String erp = fsWarehouseCacheService.selectErpByCode(order.getStoreHouseCode());
             ErpContextHolder.setErpType(erp);
         }
 
@@ -2237,7 +2241,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                 order.setStoreHouseCode(warehouseCode);
 
                 // 根据仓库code找erp
-                String erp = fsWarehousesMapper.selectErpByCode(warehouseCode);
+                String erp = fsWarehouseCacheService.selectErpByCode(warehouseCode);
                 ErpContextHolder.setErpType(erp);
 
             }
@@ -2264,7 +2268,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             erpOrder.setWarehouse_code(warehouseCode);
 
             // 根据仓库code找erp
-            String erp = fsWarehousesMapper.selectErpByCode(warehouseCode);
+            String erp = fsWarehouseCacheService.selectErpByCode(warehouseCode);
             ErpContextHolder.setErpType(erp);
         }
 
@@ -2406,7 +2410,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 
             // 根据仓库code找erp
             if(StringUtils.isNotBlank(order.getStoreHouseCode())){
-                String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
+                String erp = fsWarehouseCacheService.selectErpByCode(order.getStoreHouseCode());
                 ErpContextHolder.setErpType(erp);
             }
             BaseResponse response=erpOrderService.refundUpdate(request);
@@ -2473,7 +2477,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         request.setCode(order.getExtendOrderId());
         // 根据仓库code找erp
         if(com.fs.common.utils.StringUtils.isNotBlank(order.getStoreHouseCode())){
-            String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
+            String erp = fsWarehouseCacheService.selectErpByCode(order.getStoreHouseCode());
             ErpContextHolder.setErpType(erp);
         }
         ErpOrderQueryResponse response = erpOrderService.getOrder(request);