From 7809a7c4e5e8f498815d51e48a188ddec7fc63dd Mon Sep 17 00:00:00 2001 From: lijiarao Date: Fri, 25 Aug 2023 10:34:56 +0800 Subject: [PATCH 1/2] =?UTF-8?q?update=20=E6=A0=87=E7=AD=BE=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=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 From 2558415c2dad2dbf702413855521550407b827d8 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Fri, 25 Aug 2023 10:40:11 +0800 Subject: [PATCH 2/2] =?UTF-8?q?update=20=E6=A0=87=E7=AD=BE=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=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 --- .../system/controller/SysDictItemController.java | 16 ++++++++-------- .../jero/modules/system/entity/SysDictItem.java | 5 +++++ 2 files changed, 13 insertions(+), 8 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 8963eb92..54bd0568 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 @@ -98,12 +98,14 @@ public class SysDictItemController { 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"); + //赋值pId sysDictItems.forEach(i ->{ - if (!idList.contains(i.getParentId())) { - i.setParentId("0"); + String parentId = i.getParentId(); + if (idList.contains(parentId)) { + i.setPId(parentId); + }else { + i.setPId("0"); } }); //配置 @@ -119,16 +121,14 @@ public class SysDictItemController { (treeNode, tree) -> { String id = treeNode.getId(); tree.setId(id); - tree.setParentId(treeNode.getParentId()); + tree.setParentId(treeNode.getPId()); tree.setWeight(treeNode.getSortOrder()); tree.setName(treeNode.getItemText()); // 扩展属性 ... - Map map = BeanUtil.beanToMap(treeNode,"dictId","itemText","itemValue","enName","description","sortOrder","status"); + Map map = BeanUtil.beanToMap(treeNode,"dictId","parentId","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)); diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDictItem.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDictItem.java index 4614db36..927142d9 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDictItem.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDictItem.java @@ -43,6 +43,11 @@ public class SysDictItem implements Serializable { * 父级id */ private String parentId; + /** + * 父级id(树形结构使用) + */ + @TableField(exist = false) + private String pId; /** * 字典项文本