From 1297380f13b5faeda072ff484745204a7075a478 Mon Sep 17 00:00:00 2001 From: luofu Date: Wed, 18 Oct 2023 10:23:43 +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、消息分类树操作模块功能调整 影响: 无 --- .../service/impl/MessageGroupNodeServiceImpl.java | 9 ++++++--- .../axzo/msg/center/service/dto/GroupTreeNodeDTO.java | 11 ++++++----- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/MessageGroupNodeServiceImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/MessageGroupNodeServiceImpl.java index ebdc4c92..58a9d7ca 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/MessageGroupNodeServiceImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/MessageGroupNodeServiceImpl.java @@ -79,8 +79,9 @@ public class MessageGroupNodeServiceImpl implements MessageGroupNodeService { @Override public void addGroupNode(MessageGroupNodeSaveOrUpdateParam param) { - GroupTreeNodeDTO parent = messageGroupTreeNodeCacheService.queryNode(param.getParentNodeCode()) - .orElseThrow(() -> new ServiceException("parentNodeCode is invalid")); + GroupTreeNodeDTO parent = StringUtils.isBlank(param.getParentNodeCode()) ? null : + messageGroupTreeNodeCacheService.queryNode(param.getParentNodeCode()) + .orElseThrow(() -> new ServiceException("parentNodeCode is invalid")); // 合法性校验 checkCreateRule(parent, param); // 存储 @@ -148,7 +149,9 @@ public class MessageGroupNodeServiceImpl implements MessageGroupNodeService { } private void checkCreateRule(GroupTreeNodeDTO parent, MessageGroupNodeSaveOrUpdateParam param) { - AssertUtil.isTrue(parent.getCategory().getLevel() < param.getCategory().getLevel(), "父节点的类型非法"); + if (Objects.nonNull(parent)) { + AssertUtil.isTrue(parent.getCategory().getLevel() < param.getCategory().getLevel(), "父节点的类型非法"); + } } private void checkDeleteRule(String nodeCode) { 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 e360c55a..21c25890 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 @@ -63,22 +63,23 @@ public class GroupTreeNodeDTO implements IBaseTree, Se private List nodeChildren = Collections.emptyList(); public MessageGroupTreeNodeResponse toMessageGroupTreeNodeResponse() { + List children = Optional.ofNullable(nodeChildren) + .map(v -> v.stream().map(GroupTreeNodeDTO::toMessageGroupTreeNodeResponse).collect(Collectors.toList())) + .orElseGet(Collections::emptyList); return MessageGroupTreeNodeResponse.builder() .category(category) .nodeName(nodeName) .nodeCode(nodeCode) .parentNodeCode(parentNodeCode) - .children(nodeChildren.stream() - .map(GroupTreeNodeDTO::toMessageGroupTreeNodeResponse) - .collect(Collectors.toList())) + .children(children) .build(); } public Optional getChild(String treeNodeCode) { - if (StringUtils.isBlank(treeNodeCode)) { + if (StringUtils.isBlank(treeNodeCode) || Objects.isNull(nodeChildren)) { return Optional.empty(); } - return getNodeChildren().stream() + return nodeChildren.stream() .filter(e -> Objects.equals(e.getNodeCode(), treeNodeCode)) .findFirst(); }