diff --git a/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/controller/system/SysDictDataController.java b/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/controller/system/SysDictDataController.java index ff3b6dcc..4ba67de4 100644 --- a/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/controller/system/SysDictDataController.java +++ b/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/controller/system/SysDictDataController.java @@ -2,6 +2,7 @@ package com.fuyuanshen.system.controller.system; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.util.ObjectUtil; +import com.fuyuanshen.common.core.constant.CacheNames; import com.fuyuanshen.common.log.annotation.Log; import com.fuyuanshen.common.web.core.BaseController; import com.fuyuanshen.common.mybatis.core.page.PageQuery; @@ -14,10 +15,12 @@ import com.fuyuanshen.system.domain.vo.SysDictDataVo; import com.fuyuanshen.system.service.ISysDictDataService; import com.fuyuanshen.system.service.ISysDictTypeService; import lombok.RequiredArgsConstructor; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import jakarta.servlet.http.HttpServletResponse; + import java.util.ArrayList; import java.util.List; @@ -73,6 +76,8 @@ public class SysDictDataController extends BaseController { */ @GetMapping(value = "/type/{dictType}") public R> dictType(@PathVariable String dictType) { + // 使用时先清除缓存再查询 + dictTypeService.clearDictTypeCache(dictType); List data = dictTypeService.selectDictDataByType(dictType); if (ObjectUtil.isNull(data)) { data = new ArrayList<>(); @@ -94,6 +99,7 @@ public class SysDictDataController extends BaseController { return R.ok(); } + /** * 修改保存字典类型 */ @@ -105,6 +111,7 @@ public class SysDictDataController extends BaseController { return R.fail("修改字典数据'" + dict.getDictValue() + "'失败,字典键值已存在"); } dictDataService.updateDictData(dict); + return R.ok(); } diff --git a/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/service/ISysDictDataService.java b/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/service/ISysDictDataService.java index 1f8fc322..d5f03758 100644 --- a/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/service/ISysDictDataService.java +++ b/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/service/ISysDictDataService.java @@ -73,4 +73,9 @@ public interface ISysDictDataService { */ boolean checkDictDataUnique(SysDictDataBo dict); + /** + * 清空字典缓存 + */ + void clearDictTypeCache(String dictType); + } diff --git a/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/service/ISysDictTypeService.java b/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/service/ISysDictTypeService.java index 004b6e58..183ceb59 100644 --- a/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/service/ISysDictTypeService.java +++ b/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/service/ISysDictTypeService.java @@ -92,4 +92,9 @@ public interface ISysDictTypeService { * @return 结果 */ boolean checkDictTypeUnique(SysDictTypeBo dictType); + + /** + * 清空字典缓存 + */ + void clearDictTypeCache(String dictType); } diff --git a/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/service/impl/SysDictDataServiceImpl.java b/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/service/impl/SysDictDataServiceImpl.java index adcf47d1..19f55440 100644 --- a/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/service/impl/SysDictDataServiceImpl.java +++ b/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/service/impl/SysDictDataServiceImpl.java @@ -18,6 +18,7 @@ import com.fuyuanshen.system.domain.vo.SysDictDataVo; import com.fuyuanshen.system.mapper.SysDictDataMapper; import com.fuyuanshen.system.service.ISysDictDataService; import lombok.RequiredArgsConstructor; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CachePut; import org.springframework.stereotype.Service; @@ -154,4 +155,12 @@ public class SysDictDataServiceImpl implements ISysDictDataService { return true; } + + // 清除指定dictType的缓存 + @CacheEvict(cacheNames = CacheNames.SYS_DICT, key = "#dictType") + public void clearDictTypeCache(String dictType) { + // 仅用于清除缓存 + } + + } diff --git a/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/service/impl/SysDictTypeServiceImpl.java b/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/service/impl/SysDictTypeServiceImpl.java index 822a2b87..692675c6 100644 --- a/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/service/impl/SysDictTypeServiceImpl.java +++ b/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/service/impl/SysDictTypeServiceImpl.java @@ -28,6 +28,7 @@ import com.fuyuanshen.system.domain.vo.SysDictTypeVo; import com.fuyuanshen.system.mapper.SysDictDataMapper; import com.fuyuanshen.system.mapper.SysDictTypeMapper; import com.fuyuanshen.system.service.ISysDictTypeService; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CachePut; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; @@ -294,4 +295,11 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService return BeanUtil.copyToList(list, DictDataDTO.class); } + + // 清除指定dictType的缓存 + @CacheEvict(cacheNames = CacheNames.SYS_DICT, key = "#dictType") + public void clearDictTypeCache(String dictType) { + // 仅用于清除缓存 + } + }