mirror of
https://github.com/continew-org/continew-admin.git
synced 2025-10-26 06:57:08 +08:00
feat(system): 添加字典和菜单缓存清除接口,并优化字典的缓存逻辑
- 在 DictController 中添加清除字典缓存接口 - 在 MenuController 中添加清除菜单缓存接口 - 更新数据库变更脚本,添加相关权限 - 优化字典的缓存逻辑
This commit is contained in:
@@ -16,7 +16,9 @@
|
||||
|
||||
package top.continew.admin.system.mapper;
|
||||
|
||||
import com.alicp.jetcache.anno.Cached;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import top.continew.admin.common.constant.CacheConstants;
|
||||
import top.continew.admin.system.model.entity.DictItemDO;
|
||||
import top.continew.starter.data.mp.base.BaseMapper;
|
||||
import top.continew.starter.extension.crud.model.resp.LabelValueResp;
|
||||
@@ -37,5 +39,6 @@ public interface DictItemMapper extends BaseMapper<DictItemDO> {
|
||||
* @param dictCode 字典编码
|
||||
* @return 字典项列表
|
||||
*/
|
||||
@Cached(key = "#dictCode", name = CacheConstants.DICT_KEY_PREFIX)
|
||||
List<LabelValueResp> listByDictCode(@Param("dictCode") String dictCode);
|
||||
}
|
||||
@@ -19,9 +19,9 @@ package top.continew.admin.system.service.impl;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ClassUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alicp.jetcache.anno.Cached;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import top.continew.admin.common.constant.CacheConstants;
|
||||
import top.continew.admin.system.mapper.DictItemMapper;
|
||||
@@ -48,6 +48,7 @@ import java.util.stream.Collectors;
|
||||
* @author Charles7c
|
||||
* @since 2023/9/11 21:29
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class DictItemServiceImpl extends BaseServiceImpl<DictItemMapper, DictItemDO, DictItemResp, DictItemResp, DictItemQuery, DictItemReq> implements DictItemService {
|
||||
@@ -70,7 +71,6 @@ public class DictItemServiceImpl extends BaseServiceImpl<DictItemMapper, DictIte
|
||||
}
|
||||
|
||||
@Override
|
||||
@Cached(key = "#dictCode", name = CacheConstants.DICT_KEY_PREFIX)
|
||||
public List<LabelValueResp> listByDictCode(String dictCode) {
|
||||
return Optional.ofNullable(ENUM_DICT_CACHE.get(dictCode.toLowerCase()))
|
||||
.orElseGet(() -> baseMapper.listByDictCode(dictCode));
|
||||
@@ -129,5 +129,6 @@ public class DictItemServiceImpl extends BaseServiceImpl<DictItemMapper, DictIte
|
||||
ENUM_DICT_CACHE.putAll(classSet.stream()
|
||||
.collect(Collectors.toMap(cls -> StrUtil.toUnderlineCase(cls.getSimpleName())
|
||||
.toLowerCase(), this::toEnumDict)));
|
||||
log.debug("枚举字典已缓存到内存:{}", ENUM_DICT_CACHE.keySet());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user