diff --git a/pom.xml b/pom.xml index c8dd1f8a5..525b634b5 100644 --- a/pom.xml +++ b/pom.xml @@ -432,11 +432,12 @@ 1.6.2 compile - + + org.springdoc springdoc-openapi-starter-webmvc-ui diff --git a/ruoyi-admin/src/main/java/org/dromara/app/AppDictController.java b/ruoyi-admin/src/main/java/org/dromara/app/AppDictController.java index 0d6b6af02..e516b0840 100644 --- a/ruoyi-admin/src/main/java/org/dromara/app/AppDictController.java +++ b/ruoyi-admin/src/main/java/org/dromara/app/AppDictController.java @@ -36,7 +36,7 @@ public class AppDictController { */ @GetMapping(value = "/type/{dictType}") public R> dictType(@PathVariable String dictType) { - List data = dictTypeService.selectDictDataByType(dictType); + List data = dictTypeService.selectDictDataByTypeWithDefaultTenantID(dictType); if (ObjectUtil.isNull(data)) { data = new ArrayList<>(); } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java index 519034cf2..34845d8fc 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java @@ -35,6 +35,11 @@ public interface CacheNames { */ String SYS_DICT_TYPE = "sys_dict_type"; + /** + * 数据字典类型 + */ + String SYS_DICT_TYPE_WITH_DEFAULT_TENANTID= "sys_dict_type_with_default_tenantid"; + /** * 租户 */ diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDictDataMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDictDataMapper.java index 7298db3d0..0fdee681f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDictDataMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDictDataMapper.java @@ -1,6 +1,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.system.domain.SysDictData; import org.dromara.system.domain.vo.SysDictDataVo; @@ -26,4 +27,18 @@ public interface SysDictDataMapper extends BaseMapperPlus selectDictDataByTypeWithDefaultTenantID(String dictType) { + return selectVoList( + new LambdaQueryWrapper() + .eq(SysDictData::getDictType, dictType) + .eq(SysDictData::getTenantId, TenantConstants.DEFAULT_TENANT_ID) + .orderByAsc(SysDictData::getDictSort)); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictTypeService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictTypeService.java index 3b32d6cbb..046f8a4bd 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictTypeService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictTypeService.java @@ -41,6 +41,14 @@ public interface ISysDictTypeService { */ List selectDictDataByType(String dictType); + /** + * 根据字典类型查询字典数据(只包含默认租户的数据) + * + * @param dictType 字典类型 + * @return 字典数据集合信息 + */ + List selectDictDataByTypeWithDefaultTenantID(String dictType); + /** * 根据字典类型ID查询信息 * diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java index c417b42ca..f31cfd08d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java @@ -104,6 +104,23 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService return null; } + /** + * 根据字典类型查询字典数据(只包含默认租户的数据) + * + * @param dictType 字典类型 + * @return 字典数据集合信息 + */ + @Cacheable(cacheNames = CacheNames.SYS_DICT_TYPE_WITH_DEFAULT_TENANTID, key = "#dictType") + @Override + public List selectDictDataByTypeWithDefaultTenantID(String dictType) { + List dictDatas = dictDataMapper.selectDictDataByTypeWithDefaultTenantID(dictType); + if (CollUtil.isNotEmpty(dictDatas)) { + return dictDatas; + } + return null; + } + + /** * 根据字典类型ID查询信息 * @@ -142,6 +159,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService } CacheUtils.evict(CacheNames.SYS_DICT, dictType.getDictType()); CacheUtils.evict(CacheNames.SYS_DICT_TYPE, dictType.getDictType()); + CacheUtils.evict(CacheNames.SYS_DICT_TYPE_WITH_DEFAULT_TENANTID, dictType.getDictType()); } baseMapper.deleteByIds(Arrays.asList(dictIds)); } @@ -153,6 +171,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService public void resetDictCache() { CacheUtils.clear(CacheNames.SYS_DICT); CacheUtils.clear(CacheNames.SYS_DICT_TYPE); + CacheUtils.clear(CacheNames.SYS_DICT_TYPE_WITH_DEFAULT_TENANTID); } /** @@ -192,6 +211,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService if (row > 0) { CacheUtils.evict(CacheNames.SYS_DICT, oldDict.getDictType()); CacheUtils.evict(CacheNames.SYS_DICT_TYPE, oldDict.getDictType()); + CacheUtils.evict(CacheNames.SYS_DICT_TYPE_WITH_DEFAULT_TENANTID, oldDict.getDictType()); return dictDataMapper.selectDictDataByType(dict.getDictType()); } throw new ServiceException("操作失败");