From e23afb299b6f26ccdee031a88af5f544fac7f63b Mon Sep 17 00:00:00 2001 From: haolj Date: Wed, 27 Aug 2025 17:10:17 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=E4=BF=AE=E6=94=B9App=E4=B8=AD=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E5=AD=97=E5=85=B8=E7=B1=BB=E5=9E=8B=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=AD=97=E5=85=B8=E6=95=B0=E6=8D=AE=E5=88=97=E8=A1=A8(?= =?UTF-8?q?=E5=8F=AA=E5=8C=85=E5=90=AB=E9=BB=98=E8=AE=A4=E7=A7=9F=E6=88=B7?= =?UTF-8?q?=E7=9A=84=E6=95=B0=E6=8D=AE)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 +++-- .../org/dromara/app/AppDictController.java | 2 +- .../common/core/constant/CacheNames.java | 5 +++++ .../system/mapper/SysDictDataMapper.java | 15 ++++++++++++++ .../system/service/ISysDictTypeService.java | 8 ++++++++ .../service/impl/SysDictTypeServiceImpl.java | 20 +++++++++++++++++++ 6 files changed, 52 insertions(+), 3 deletions(-) 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("操作失败");