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("操作失败");