|
|
@@ -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);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|