feat(system): 添加全局字典缓存支持

- 在 GlobalConstants 中新增全局字典 Redis 键
- 更新 SysDictTypeServiceImpl 使用全局字典缓存键
- 在 SysDictDataMapper 中忽略租户上下文以支持默认租户查询
This commit is contained in:
huk 2025-09-27 11:26:16 +08:00
parent 4d6065d4da
commit 462ccbb250
3 changed files with 14 additions and 6 deletions

View File

@ -12,6 +12,11 @@ public interface GlobalConstants {
*/
String GLOBAL_REDIS_KEY = "global:";
/**
* 全局字典 redis key
*/
String GLOBAL_DICT_KEY = GLOBAL_REDIS_KEY + "sys_dict";
/**
* 验证码 redis key
*/

View File

@ -3,6 +3,7 @@ package org.dromara.system.mapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.dromara.common.core.constant.TenantConstants;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.common.tenant.helper.TenantHelper;
import org.dromara.system.domain.SysDictData;
import org.dromara.system.domain.vo.SysDictDataVo;
@ -35,10 +36,11 @@ public interface SysDictDataMapper extends BaseMapperPlus<SysDictData, SysDictDa
* @return 符合条件的字典数据列表
*/
default List<SysDictDataVo> selectDictDataByTypeWithDefaultTenantID(String dictType) {
return selectVoList(
new LambdaQueryWrapper<SysDictData>()
.eq(SysDictData::getDictType, dictType)
.eq(SysDictData::getTenantId, TenantConstants.DEFAULT_TENANT_ID)
.orderByAsc(SysDictData::getDictSort));
return
TenantHelper.ignore(() -> selectVoList(
new LambdaQueryWrapper<SysDictData>()
.eq(SysDictData::getDictType, dictType)
.eq(SysDictData::getTenantId, TenantConstants.DEFAULT_TENANT_ID)
.orderByAsc(SysDictData::getDictSort)));
}
}

View File

@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.CacheNames;
import org.dromara.common.core.constant.GlobalConstants;
import org.dromara.common.core.domain.dto.DictDataDTO;
import org.dromara.common.core.domain.dto.DictTypeDTO;
import org.dromara.common.core.exception.ServiceException;
@ -110,7 +111,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
* @param dictType 字典类型
* @return 字典数据集合信息
*/
@Cacheable(cacheNames = CacheNames.SYS_DICT_TYPE_WITH_DEFAULT_TENANTID, key = "#dictType")
@Cacheable(cacheNames = GlobalConstants.GLOBAL_DICT_KEY, key = "#dictType")
@Override
public List<SysDictDataVo> selectDictDataByTypeWithDefaultTenantID(String dictType) {
List<SysDictDataVo> dictDatas = dictDataMapper.selectDictDataByTypeWithDefaultTenantID(dictType);