From bd1cb276a050a94c41620a04bf5a71b03d7c08c1 Mon Sep 17 00:00:00 2001 From: luofu Date: Wed, 18 Oct 2023 20:05:55 +0800 Subject: [PATCH] =?UTF-8?q?feat(REQ-1465):=20=E6=B6=88=E6=81=AF=E5=88=86?= =?UTF-8?q?=E7=B1=BB=E6=A0=91=E6=93=8D=E4=BD=9C=E6=A8=A1=E5=9D=97=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景: https://jira.axzo.cn/browse/REQ-1465?goToView=1 修改: 1、消息分类树操作模块功能调整 影响: 无 --- .../domain/dto/MessageGroupNodeStatisticDTO.java | 7 ++++++- .../cn/axzo/msg/center/utils/TreeHelperUtil.java | 13 ++++++++----- .../msg/center/service/dto/GroupTreeNodeDTO.java | 4 ++++ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/MessageGroupNodeStatisticDTO.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/MessageGroupNodeStatisticDTO.java index f5cef354..9368d462 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/MessageGroupNodeStatisticDTO.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/MessageGroupNodeStatisticDTO.java @@ -52,7 +52,12 @@ public class MessageGroupNodeStatisticDTO implements IBaseTree children = this.nodeChildren.stream() .map(MessageGroupNodeStatisticDTO::toResponse).collect(Collectors.toList()); response.setNodeChildren(children); diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/utils/TreeHelperUtil.java b/inside-notices/src/main/java/cn/axzo/msg/center/utils/TreeHelperUtil.java index b1965b72..4a890a6e 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/utils/TreeHelperUtil.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/utils/TreeHelperUtil.java @@ -28,19 +28,22 @@ public final class TreeHelperUtil { AssertUtil.notNull(wrapperFunc, "wrapperFunc is null"); final Map convertMap = Maps.newHashMap(); - T wrapper = wrapperFunc.apply(treeNode); - convertMap.put(treeNode, wrapper); + T root = wrapperFunc.apply(treeNode); + convertMap.put(treeNode, root); LinkedList treeNodeStack = new LinkedList<>(); treeNodeStack.push(treeNode); while (!treeNodeStack.isEmpty()) { treeNode = treeNodeStack.pop(); List children = treeNode.getNodeChildren(); convertMap.get(treeNode).setNodeChildren(children.stream() - .map(e -> convertMap.put(e, wrapperFunc.apply(e))) - .collect(Collectors.toList())); + .map(e -> { + T wrapper = wrapperFunc.apply(e); + convertMap.put(e, wrapper); + return wrapper; + }).collect(Collectors.toList())); treeNodeStack.addAll(children); } - return wrapper; + return root; } public static boolean isLeafNodeCategory(MessageGroupNodeCategoryEnum category) { diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/dto/GroupTreeNodeDTO.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/dto/GroupTreeNodeDTO.java index 21c25890..9425101c 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/service/dto/GroupTreeNodeDTO.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/dto/GroupTreeNodeDTO.java @@ -62,6 +62,10 @@ public class GroupTreeNodeDTO implements IBaseTree, Se @Builder.Default private List nodeChildren = Collections.emptyList(); + public void setNodeChildren(List nodeChildren) { + this.nodeChildren = Optional.ofNullable(nodeChildren).orElseGet(Collections::emptyList); + } + public MessageGroupTreeNodeResponse toMessageGroupTreeNodeResponse() { List children = Optional.ofNullable(nodeChildren) .map(v -> v.stream().map(GroupTreeNodeDTO::toMessageGroupTreeNodeResponse).collect(Collectors.toList()))