【7.6.0】【dict】整理dictApi相关的接口的实现逻辑

pull/57/head
fengshuonan 2023-06-27 17:59:26 +08:00
parent 8391a3edbf
commit 45e9bf7b18
2 changed files with 40 additions and 11 deletions

View File

@ -82,7 +82,7 @@ public class DictRequest extends BaseRequest {
*/ */
@NotBlank(message = "字典类型id不能为空", groups = {add.class, edit.class, treeList.class}) @NotBlank(message = "字典类型id不能为空", groups = {add.class, edit.class, treeList.class})
@ChineseDescription("字典类型id") @ChineseDescription("字典类型id")
private String dictTypeId; private Long dictTypeId;
/** /**
* *

View File

@ -38,7 +38,6 @@ import cn.stylefeng.roses.kernel.dict.modular.service.DictTypeService;
import cn.stylefeng.roses.kernel.pinyin.api.PinYinApi; import cn.stylefeng.roses.kernel.pinyin.api.PinYinApi;
import cn.stylefeng.roses.kernel.rule.constants.SymbolConstant; import cn.stylefeng.roses.kernel.rule.constants.SymbolConstant;
import cn.stylefeng.roses.kernel.rule.constants.TreeConstants; import cn.stylefeng.roses.kernel.rule.constants.TreeConstants;
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict; import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict;
import cn.stylefeng.roses.kernel.rule.tree.factory.DefaultTreeBuildFactory; import cn.stylefeng.roses.kernel.rule.tree.factory.DefaultTreeBuildFactory;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -128,9 +127,10 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, SysDict> implements
SysDict sysDict = this.querySysDict(dictRequest); SysDict sysDict = this.querySysDict(dictRequest);
BeanUtil.copyProperties(dictRequest, sysDict); BeanUtil.copyProperties(dictRequest, sysDict);
// 不能修改字典类型和编码 // 不能修改字典类型、编码和字典的上下级关系(上下级关系和顺序,通过更新字典树接口更方便)
sysDict.setDictTypeId(null); sysDict.setDictTypeId(null);
sysDict.setDictCode(null); sysDict.setDictCode(null);
sysDict.setDictParentId(null);
// 填充拼音 // 填充拼音
sysDict.setDictNamePinyin(pinYinApi.parseEveryPinyinFirstLetter(sysDict.getDictName())); sysDict.setDictNamePinyin(pinYinApi.parseEveryPinyinFirstLetter(sysDict.getDictName()));
@ -167,11 +167,15 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, SysDict> implements
@Override @Override
public String getDictName(String dictTypeCode, String dictCode) { public String getDictName(String dictTypeCode, String dictCode) {
LambdaQueryWrapper<SysDict> sysDictLambdaQueryWrapper = new LambdaQueryWrapper<>();
sysDictLambdaQueryWrapper.eq(SysDict::getDictTypeId, dictTypeCode);
sysDictLambdaQueryWrapper.eq(SysDict::getDictCode, dictCode);
sysDictLambdaQueryWrapper.ne(SysDict::getDelFlag, YesOrNotEnum.Y.getCode());
// 获取字典类型编码对应的字典类型id
Long dictTypeId = dictTypeService.getDictTypeIdByDictTypeCode(dictTypeCode);
// 查询字典类型下有哪些字典
LambdaQueryWrapper<SysDict> sysDictLambdaQueryWrapper = new LambdaQueryWrapper<>();
sysDictLambdaQueryWrapper.eq(SysDict::getDictTypeId, dictTypeId);
sysDictLambdaQueryWrapper.eq(SysDict::getDictCode, dictCode);
sysDictLambdaQueryWrapper.select(SysDict::getDictName);
List<SysDict> list = this.list(sysDictLambdaQueryWrapper); List<SysDict> list = this.list(sysDictLambdaQueryWrapper);
// 如果查询不到字典,则返回空串 // 如果查询不到字典,则返回空串
@ -190,13 +194,26 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, SysDict> implements
@Override @Override
public List<SimpleDict> getDictDetailsByDictTypeCode(String dictTypeCode) { public List<SimpleDict> getDictDetailsByDictTypeCode(String dictTypeCode) {
// 获取字典类型编码对应的字典类型id
Long dictTypeId = dictTypeService.getDictTypeIdByDictTypeCode(dictTypeCode);
if (dictTypeId == null) {
return new ArrayList<>();
}
// 查询字典的列表
DictRequest dictRequest = new DictRequest(); DictRequest dictRequest = new DictRequest();
dictRequest.setDictTypeId(dictTypeCode); dictRequest.setDictTypeId(dictTypeId);
LambdaQueryWrapper<SysDict> wrapper = createWrapper(dictRequest); LambdaQueryWrapper<SysDict> wrapper = this.createWrapper(dictRequest);
wrapper.select(SysDict::getDictId, SysDict::getDictName, SysDict::getDictCode);
List<SysDict> dictList = this.list(wrapper); List<SysDict> dictList = this.list(wrapper);
if (dictList.isEmpty()) { if (dictList.isEmpty()) {
return new ArrayList<>(); return new ArrayList<>();
} }
// 转化成响应结果
ArrayList<SimpleDict> simpleDictList = new ArrayList<>(); ArrayList<SimpleDict> simpleDictList = new ArrayList<>();
for (SysDict sysDict : dictList) { for (SysDict sysDict : dictList) {
SimpleDict simpleDict = new SimpleDict(); SimpleDict simpleDict = new SimpleDict();
@ -204,6 +221,7 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, SysDict> implements
simpleDict.setName(sysDict.getDictName()); simpleDict.setName(sysDict.getDictName());
simpleDictList.add(simpleDict); simpleDictList.add(simpleDict);
} }
return simpleDictList; return simpleDictList;
} }
@ -214,7 +232,15 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, SysDict> implements
@Override @Override
public String getDictNameByDictId(Long dictId) { public String getDictNameByDictId(Long dictId) {
SysDict sysDict = this.getById(dictId); if (dictId == null) {
return "";
}
LambdaQueryWrapper<SysDict> sysDictLambdaQueryWrapper = new LambdaQueryWrapper<>();
sysDictLambdaQueryWrapper.eq(SysDict::getDictId, dictId);
sysDictLambdaQueryWrapper.select(SysDict::getDictName);
SysDict sysDict = this.getOne(sysDictLambdaQueryWrapper, false);
if (sysDict == null) { if (sysDict == null) {
return ""; return "";
} else { } else {
@ -254,7 +280,7 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, SysDict> implements
} }
// 根据字典类型id查询字典 // 根据字典类型id查询字典
queryWrapper.eq(StrUtil.isNotBlank(dictRequest.getDictTypeId()), SysDict::getDictTypeId, dictRequest.getDictTypeId()); queryWrapper.eq(ObjectUtil.isNotEmpty(dictRequest.getDictTypeId()), SysDict::getDictTypeId, dictRequest.getDictTypeId());
// 根据字典类型编码查询 // 根据字典类型编码查询
if (StrUtil.isNotBlank(dictRequest.getDictTypeCode())) { if (StrUtil.isNotBlank(dictRequest.getDictTypeCode())) {
@ -269,6 +295,9 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, SysDict> implements
} }
} }
// 排序
queryWrapper.orderByAsc(SysDict::getDictSort);
return queryWrapper; return queryWrapper;
} }