refactor(dict): 优化字典数据查询逻辑和接口

- 移除不必要的 ISysDictTypeService 依赖,简化 SysDictDataController
- 新增 selectDictDataByTypeRealtime 方法,支持实时查询字典数据,避免缓存问题
- 更新 SysDictDataController 中的字典数据查询逻辑,使用新方法
- 在 SysDictTypeController 中添加按字典类型编码精确查询的接口
- 更新前端组件以支持新的字典查询接口,优化字典选择器的加载逻辑
This commit is contained in:
王文昊
2026-04-28 19:12:50 +08:00
parent dde947516d
commit 5a56094e4f
11 changed files with 541 additions and 100 deletions

View File

@@ -41,6 +41,11 @@ public interface ISysDictDataService {
*/
SysDictData selectDictDataById(Long dictCode);
/**
* 按字典类型查询字典数据(直查库)。用于 HTTP `/dict/data/type/{type}`,避免 Spring Cache 在无界面操作灌数后仍返回空。
*/
List<SysDictData> selectDictDataByTypeRealtime(String dictType);
/**
* 批量删除字典数据信息
*

View File

@@ -15,6 +15,7 @@ import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CachePut;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
/**
@@ -81,6 +82,18 @@ public class SysDictDataServiceImpl implements ISysDictDataService {
return baseMapper.selectById(dictCode);
}
/**
* 按类型查字典数据(直查数据库,不走 {@link com.klp.system.service.impl.SysDictTypeServiceImpl#selectDictDataByType} 的 Spring Cache
* SQL 脚本直插或外部改表后仍需立即在「按类型」HTTP 接口中可见,避免长期使用空缓存。
*/
@Override
public List<SysDictData> selectDictDataByTypeRealtime(String dictType) {
if (StringUtils.isBlank(dictType)) {
return Collections.emptyList();
}
return baseMapper.selectDictDataByType(dictType);
}
/**
* 批量删除字典数据信息
*

View File

@@ -119,7 +119,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
@Cacheable(cacheNames = CacheNames.SYS_DICT, key = "#dictType")
@Override
public SysDictType selectDictTypeByType(String dictType) {
return baseMapper.selectById(new LambdaQueryWrapper<SysDictType>().eq(SysDictType::getDictType, dictType));
return baseMapper.selectOne(new LambdaQueryWrapper<SysDictType>().eq(SysDictType::getDictType, dictType));
}
/**