yuhongqi 1 deň pred
rodič
commit
8a65aa6966

+ 55 - 3
fs-service-system/src/main/java/com/fs/store/service/impl/FsShippingTemplatesServiceImpl.java

@@ -21,12 +21,15 @@ import com.fs.store.mapper.FsShippingTemplatesRegionMapper;
 import com.fs.store.param.FsShippingTemplatesAddEditParam;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 import com.fs.store.mapper.FsShippingTemplatesMapper;
 import com.fs.store.domain.FsShippingTemplates;
 import com.fs.store.service.IFsShippingTemplatesService;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
+import lombok.extern.slf4j.Slf4j;
+import java.util.Set;
 
 /**
  * 运费模板Service业务层处理
@@ -34,6 +37,7 @@ import org.springframework.transaction.annotation.Transactional;
  * @author fs
  * @date 2022-03-15
  */
+@Slf4j
 @Service
 public class FsShippingTemplatesServiceImpl implements IFsShippingTemplatesService
 {
@@ -46,6 +50,9 @@ public class FsShippingTemplatesServiceImpl implements IFsShippingTemplatesServi
     @Autowired
     private FsShippingTemplatesRegionMapper fsShippingTemplatesRegionMapper;
 
+    @Autowired
+    private StringRedisTemplate stringRedisTemplate;
+
 
 
     /**
@@ -95,7 +102,12 @@ public class FsShippingTemplatesServiceImpl implements IFsShippingTemplatesServi
     public int updateFsShippingTemplates(FsShippingTemplates fsShippingTemplates)
     {
         fsShippingTemplates.setUpdateTime(DateUtils.getNowDate());
-        return fsShippingTemplatesMapper.updateFsShippingTemplates(fsShippingTemplates);
+        int result = fsShippingTemplatesMapper.updateFsShippingTemplates(fsShippingTemplates);
+        // 清理相关缓存
+        if (fsShippingTemplates.getId() != null) {
+            clearShippingTemplateCache(fsShippingTemplates.getId());
+        }
+        return result;
     }
 
     /**
@@ -107,7 +119,14 @@ public class FsShippingTemplatesServiceImpl implements IFsShippingTemplatesServi
     @Override
     public int deleteFsShippingTemplatesByIds(Long[] ids)
     {
-        return fsShippingTemplatesMapper.deleteFsShippingTemplatesByIds(ids);
+        int result = fsShippingTemplatesMapper.deleteFsShippingTemplatesByIds(ids);
+        // 清理相关缓存
+        if (ids != null && ids.length > 0) {
+            for (Long id : ids) {
+                clearShippingTemplateCache(id);
+            }
+        }
+        return result;
     }
 
     /**
@@ -119,7 +138,12 @@ public class FsShippingTemplatesServiceImpl implements IFsShippingTemplatesServi
     @Override
     public int deleteFsShippingTemplatesById(Long ids)
     {
-        return fsShippingTemplatesMapper.deleteFsShippingTemplatesById(ids);
+        int result = fsShippingTemplatesMapper.deleteFsShippingTemplatesById(ids);
+        // 清理相关缓存
+        if (ids != null) {
+            clearShippingTemplateCache(ids);
+        }
+        return result;
     }
 
     @Override
@@ -134,6 +158,7 @@ public class FsShippingTemplatesServiceImpl implements IFsShippingTemplatesServi
         shippingTemplates.setAppointInfo(JSON.toJSONString(fsShippingTemplates.getAppointInfo()));
         if(fsShippingTemplates.getId() != null && fsShippingTemplates.getId()  > 0){
             shippingTemplates.setId(fsShippingTemplates.getId());
+            // updateFsShippingTemplates 方法内部已经会清理缓存
             this.updateFsShippingTemplates(shippingTemplates);
         }else{
             shippingTemplates.setCreateTime(DateUtils.getNowDate());
@@ -240,4 +265,31 @@ public class FsShippingTemplatesServiceImpl implements IFsShippingTemplatesServi
             fsShippingTemplatesFreeMapper.saveBatch(shippingTemplatesFreeList);
         }
     }
+
+    /**
+     * 清理运费模板相关的缓存
+     * 缓存key格式:shipping:template:{templateId}:city:{cityIds}
+     * 
+     * @param templateId 运费模板ID
+     */
+    private void clearShippingTemplateCache(Long templateId) {
+        try {
+            if (templateId == null) {
+                return;
+            }
+            // 构建缓存key前缀:shipping:template:{templateId}:city:*
+            String cacheKeyPattern = String.format("shipping:template:%s:city:*", templateId);
+            // 查找所有匹配的缓存key
+            Set<String> keys = stringRedisTemplate.keys(cacheKeyPattern);
+            if (keys != null && !keys.isEmpty()) {
+                // 批量删除匹配的缓存
+                stringRedisTemplate.delete(keys);
+                log.info("清理运费模板缓存成功,templateId: {}, 删除缓存数量: {}", templateId, keys.size());
+            } else {
+                log.debug("未找到需要清理的运费模板缓存,templateId: {}", templateId);
+            }
+        } catch (Exception e) {
+            log.error("清理运费模板缓存失败,templateId: {}", templateId, e);
+        }
+    }
 }