From 7809a7c4e5e8f498815d51e48a188ddec7fc63dd Mon Sep 17 00:00:00 2001 From: lijiarao Date: Fri, 25 Aug 2023 10:34:56 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=A0=87=E7=AD=BE=E7=AE=A1=E7=90=86-?= =?UTF-8?q?=E6=A0=91=E5=BD=A2=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SysDictItemController.java | 23 +++++++++++++++++-- .../main/resources/i18n/messages.properties | 4 +++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java index cba738ed..8963eb92 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java @@ -5,10 +5,14 @@ import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollStreamUtil; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.collection.ListUtil; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.TreeNodeConfig; import cn.hutool.core.lang.tree.TreeUtil; @@ -92,26 +96,41 @@ public class SysDictItemController { HttpServletRequest req) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(sysDictItem, req.getParameterMap()); List sysDictItems = sysDictItemService.list(queryWrapper); + //当查询结果中有数据的父级不存在时,赋值父级id为"0" + List idList = sysDictItems.stream().map(SysDictItem::getId).collect(Collectors.toList()); + //保存数据中的父级id + Map map1 = CollStreamUtil.toMap(sysDictItems, SysDictItem::getId, SysDictItem::getParentId); + idList.add("0"); + sysDictItems.forEach(i ->{ + if (!idList.contains(i.getParentId())) { + i.setParentId("0"); + } + }); //配置 TreeNodeConfig treeNodeConfig = new TreeNodeConfig(); // 自定义属性名 都要默认值的 treeNodeConfig.setWeightKey("sortOrder"); treeNodeConfig.setIdKey("id"); + treeNodeConfig.setParentIdKey("pId"); // 最大递归深度 treeNodeConfig.setDeep(-1); //转换器 List> treeNodes = TreeUtil.build(sysDictItems, "0", treeNodeConfig, (treeNode, tree) -> { - tree.setId(treeNode.getId()); + String id = treeNode.getId(); + tree.setId(id); tree.setParentId(treeNode.getParentId()); tree.setWeight(treeNode.getSortOrder()); tree.setName(treeNode.getItemText()); // 扩展属性 ... - Map map = BeanUtil.beanToMap(treeNode); + Map map = BeanUtil.beanToMap(treeNode,"dictId","itemText","itemValue","enName","description","sortOrder","status"); for (String s : map.keySet()) { tree.putExtra(s, map.get(s)); } + String parentId = map1.get(id); + tree.putExtra("parentId",parentId); }); + JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(treeNodes,SerializerFeature.WriteMapNullValue)); return Result.OK(jsonArray != null ? jsonArray : new JSONArray()); } diff --git a/jero-boot-single-startup/src/main/resources/i18n/messages.properties b/jero-boot-single-startup/src/main/resources/i18n/messages.properties index 60e71448..fc4d8767 100644 --- a/jero-boot-single-startup/src/main/resources/i18n/messages.properties +++ b/jero-boot-single-startup/src/main/resources/i18n/messages.properties @@ -4,4 +4,6 @@ tag.add.\u5B57\u6BB5\u540D\u79F0\u592A\u957F=\u60A8\u8BBE\u7F6E\u7684\u5B57\u6BB tag.delete.\u5305\u542B\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664=\u5305\u542B\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664 tag.edit.\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u4FEE\u6539=\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u4FEE\u6539 tag.edit.\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664=\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664 -tag.edit.\u5C5E\u6027\u5DF2\u5B58\u5728,\u8BF7\u68C0\u67E5=\u5C5E\u6027\u5DF2\u5B58\u5728,\u8BF7\u68C0\u67E5 \ No newline at end of file +tag.edit.\u5C5E\u6027\u5DF2\u5B58\u5728,\u8BF7\u68C0\u67E5=\u5C5E\u6027\u5DF2\u5B58\u5728,\u8BF7\u68C0\u67E5 +message.ok=\u64CD\u4F5C\u6210\u529F +message.error=\u64CD\u4F5C\u5931\u8D25 \ No newline at end of file