diff --git a/kernel-s-dict/dict-api/src/main/java/cn/stylefeng/roses/kernel/dict/api/format/DictFormatProcess.java b/kernel-s-dict/dict-api/src/main/java/cn/stylefeng/roses/kernel/dict/api/format/DictFormatProcess.java
index ddb26d260..de2645c28 100644
--- a/kernel-s-dict/dict-api/src/main/java/cn/stylefeng/roses/kernel/dict/api/format/DictFormatProcess.java
+++ b/kernel-s-dict/dict-api/src/main/java/cn/stylefeng/roses/kernel/dict/api/format/DictFormatProcess.java
@@ -7,6 +7,8 @@ import cn.stylefeng.roses.kernel.rule.format.BaseSimpleFieldFormatProcess;
/**
* JSON响应对组织字典id的转化
+ *
+ * 走缓存加速字典名称的获取
*
* @author fengshuonan
* @since 2023/5/4 21:20
diff --git a/kernel-s-dict/dict-business/src/main/java/cn/stylefeng/roses/kernel/dict/modular/service/impl/DictServiceImpl.java b/kernel-s-dict/dict-business/src/main/java/cn/stylefeng/roses/kernel/dict/modular/service/impl/DictServiceImpl.java
index 5d37c1603..42a5ab3de 100644
--- a/kernel-s-dict/dict-business/src/main/java/cn/stylefeng/roses/kernel/dict/modular/service/impl/DictServiceImpl.java
+++ b/kernel-s-dict/dict-business/src/main/java/cn/stylefeng/roses/kernel/dict/modular/service/impl/DictServiceImpl.java
@@ -28,6 +28,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
+import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
import cn.stylefeng.roses.kernel.dict.api.exception.DictException;
import cn.stylefeng.roses.kernel.dict.api.exception.enums.DictExceptionEnum;
import cn.stylefeng.roses.kernel.dict.api.pojo.DictDetail;
@@ -78,6 +79,9 @@ public class DictServiceImpl extends ServiceImpl implements
@Resource
private DictTypeService dictTypeService;
+ @Resource(name = "dictInfoCache")
+ private CacheOperatorApi dictInfoCache;
+
@Override
public List getTreeDictList(DictRequest dictRequest) {
@@ -290,15 +294,28 @@ public class DictServiceImpl extends ServiceImpl implements
return new DictDetail();
}
+ // 先从缓存获取字典详情
+ DictDetail dictDetail = dictInfoCache.get(dictId.toString());
+ if (dictDetail != null) {
+ return dictDetail;
+ }
+
LambdaQueryWrapper sysDictLambdaQueryWrapper = new LambdaQueryWrapper<>();
sysDictLambdaQueryWrapper.eq(SysDict::getDictId, dictId);
sysDictLambdaQueryWrapper.select(SysDict::getDictName, SysDict::getDictCode, SysDict::getDictId, SysDict::getDictSort);
SysDict sysDict = this.getOne(sysDictLambdaQueryWrapper, false);
-
if (sysDict == null) {
+
+ // 加入结果到缓存
+ dictInfoCache.put(dictId.toString(), new DictDetail());
return new DictDetail();
} else {
- return new DictDetail(sysDict.getDictId(), sysDict.getDictCode(), sysDict.getDictName(), sysDict.getDictSort());
+
+ // 加入结果到缓存中
+ DictDetail dictDetailTemp = new DictDetail(sysDict.getDictId(), sysDict.getDictCode(), sysDict.getDictName(), sysDict.getDictSort());
+ dictInfoCache.put(dictId.toString(), dictDetailTemp);
+
+ return dictDetailTemp;
}
}
@@ -308,16 +325,13 @@ public class DictServiceImpl extends ServiceImpl implements
return "";
}
- LambdaQueryWrapper sysDictLambdaQueryWrapper = new LambdaQueryWrapper<>();
- sysDictLambdaQueryWrapper.eq(SysDict::getDictId, dictId);
- sysDictLambdaQueryWrapper.select(SysDict::getDictName);
- SysDict sysDict = this.getOne(sysDictLambdaQueryWrapper, false);
-
- if (sysDict == null) {
+ // 走统一方法,可以从缓存查询
+ DictDetail dictDetail = this.getDictByDictId(dictId);
+ if (dictDetail == null) {
return "";
- } else {
- return sysDict.getDictName();
}
+
+ return dictDetail.getDictName();
}
@Override