From 45e9bf7b18b3cd9c00ad088b462bee3621d7e768 Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Tue, 27 Jun 2023 17:59:26 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.6.0=E3=80=91=E3=80=90dict=E3=80=91?= =?UTF-8?q?=E6=95=B4=E7=90=86dictApi=E7=9B=B8=E5=85=B3=E7=9A=84=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E7=9A=84=E5=AE=9E=E7=8E=B0=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modular/pojo/request/DictRequest.java | 2 +- .../modular/service/impl/DictServiceImpl.java | 49 +++++++++++++++---- 2 files changed, 40 insertions(+), 11 deletions(-) diff --git a/kernel-s-dict/dict-business/src/main/java/cn/stylefeng/roses/kernel/dict/modular/pojo/request/DictRequest.java b/kernel-s-dict/dict-business/src/main/java/cn/stylefeng/roses/kernel/dict/modular/pojo/request/DictRequest.java index 864c3c4ac..17d3e062d 100644 --- a/kernel-s-dict/dict-business/src/main/java/cn/stylefeng/roses/kernel/dict/modular/pojo/request/DictRequest.java +++ b/kernel-s-dict/dict-business/src/main/java/cn/stylefeng/roses/kernel/dict/modular/pojo/request/DictRequest.java @@ -82,7 +82,7 @@ public class DictRequest extends BaseRequest { */ @NotBlank(message = "字典类型id不能为空", groups = {add.class, edit.class, treeList.class}) @ChineseDescription("字典类型id") - private String dictTypeId; + private Long dictTypeId; /** * 字典简称 diff --git a/kernel-s-dict/dict-business/src/main/java/cn/stylefeng/roses/kernel/dict/modular/service/impl/DictServiceImpl.java b/kernel-s-dict/dict-business/src/main/java/cn/stylefeng/roses/kernel/dict/modular/service/impl/DictServiceImpl.java index eaad5da5b..8a7226fba 100644 --- a/kernel-s-dict/dict-business/src/main/java/cn/stylefeng/roses/kernel/dict/modular/service/impl/DictServiceImpl.java +++ b/kernel-s-dict/dict-business/src/main/java/cn/stylefeng/roses/kernel/dict/modular/service/impl/DictServiceImpl.java @@ -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.rule.constants.SymbolConstant; 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.tree.factory.DefaultTreeBuildFactory; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -128,9 +127,10 @@ public class DictServiceImpl extends ServiceImpl implements SysDict sysDict = this.querySysDict(dictRequest); BeanUtil.copyProperties(dictRequest, sysDict); - // 不能修改字典类型和编码 + // 不能修改字典类型、编码和字典的上下级关系(上下级关系和顺序,通过更新字典树接口更方便) sysDict.setDictTypeId(null); sysDict.setDictCode(null); + sysDict.setDictParentId(null); // 填充拼音 sysDict.setDictNamePinyin(pinYinApi.parseEveryPinyinFirstLetter(sysDict.getDictName())); @@ -167,11 +167,15 @@ public class DictServiceImpl extends ServiceImpl implements @Override public String getDictName(String dictTypeCode, String dictCode) { - LambdaQueryWrapper 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 sysDictLambdaQueryWrapper = new LambdaQueryWrapper<>(); + sysDictLambdaQueryWrapper.eq(SysDict::getDictTypeId, dictTypeId); + sysDictLambdaQueryWrapper.eq(SysDict::getDictCode, dictCode); + sysDictLambdaQueryWrapper.select(SysDict::getDictName); List list = this.list(sysDictLambdaQueryWrapper); // 如果查询不到字典,则返回空串 @@ -190,13 +194,26 @@ public class DictServiceImpl extends ServiceImpl implements @Override public List getDictDetailsByDictTypeCode(String dictTypeCode) { + + // 获取字典类型编码对应的字典类型id + Long dictTypeId = dictTypeService.getDictTypeIdByDictTypeCode(dictTypeCode); + + if (dictTypeId == null) { + return new ArrayList<>(); + } + + // 查询字典的列表 DictRequest dictRequest = new DictRequest(); - dictRequest.setDictTypeId(dictTypeCode); - LambdaQueryWrapper wrapper = createWrapper(dictRequest); + dictRequest.setDictTypeId(dictTypeId); + LambdaQueryWrapper wrapper = this.createWrapper(dictRequest); + wrapper.select(SysDict::getDictId, SysDict::getDictName, SysDict::getDictCode); List dictList = this.list(wrapper); + if (dictList.isEmpty()) { return new ArrayList<>(); } + + // 转化成响应结果 ArrayList simpleDictList = new ArrayList<>(); for (SysDict sysDict : dictList) { SimpleDict simpleDict = new SimpleDict(); @@ -204,6 +221,7 @@ public class DictServiceImpl extends ServiceImpl implements simpleDict.setName(sysDict.getDictName()); simpleDictList.add(simpleDict); } + return simpleDictList; } @@ -214,7 +232,15 @@ public class DictServiceImpl extends ServiceImpl implements @Override public String getDictNameByDictId(Long dictId) { - SysDict sysDict = this.getById(dictId); + if (dictId == null) { + return ""; + } + + LambdaQueryWrapper sysDictLambdaQueryWrapper = new LambdaQueryWrapper<>(); + sysDictLambdaQueryWrapper.eq(SysDict::getDictId, dictId); + sysDictLambdaQueryWrapper.select(SysDict::getDictName); + SysDict sysDict = this.getOne(sysDictLambdaQueryWrapper, false); + if (sysDict == null) { return ""; } else { @@ -254,7 +280,7 @@ public class DictServiceImpl extends ServiceImpl implements } // 根据字典类型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())) { @@ -269,6 +295,9 @@ public class DictServiceImpl extends ServiceImpl implements } } + // 排序 + queryWrapper.orderByAsc(SysDict::getDictSort); + return queryWrapper; }