From 3037260d9c5270aff3e7a51fb471b5d127d72b31 Mon Sep 17 00:00:00 2001 From: liuyang Date: Tue, 24 Dec 2024 15:17:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:[REQ-3282]=20=E8=A7=A3=E5=86=B3=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=86=B2=E7=AA=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../node/service/impl/NodeServiceImpl.java | 37 ++++++++----------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/node/service/impl/NodeServiceImpl.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/node/service/impl/NodeServiceImpl.java index 4138e21..f896760 100644 --- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/node/service/impl/NodeServiceImpl.java +++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/node/service/impl/NodeServiceImpl.java @@ -166,16 +166,16 @@ public class NodeServiceImpl implements NodeService { List descendantsNodes = nodeQueryRepository.list( NodeQueryRepository.ListReq.builder() .pathsRight(paths).build()); - page.getData().addAll(descendantsNodes); + assembleDescendantNodes(records, descendantsNodes); } // 是否查询子节点 if (BooleanUtil.isTrue(req.getIncludeChildren())) { Set ids = nodeFoundationService.extract(page.getData(), NodeQueryRepository.NodeResp::getId); - List descendantShipNodes = nodeQueryRepository.list( + List childrenNodes = nodeQueryRepository.list( NodeQueryRepository.ListReq.builder() .parentIds(ids).build()); - assembleChildrenNodes(records, descendantShipNodes); + assembleChildrenNodes(records, childrenNodes); } return new PageResp<>(page.getTotal(), page.getSize(), page.getCurrent(), records); @@ -249,23 +249,16 @@ public class NodeServiceImpl implements NodeService { * @param nodes * @param descendantNodes */ -// public void assembleDescendantNodes(List nodes, List descendantNodes) { -// if (CollUtil.isEmpty(nodes) || CollUtil.isEmpty(descendantNodes)) { -// return; -// } -// Map childrenNodeMap = descendantNodes.stream() -// .filter(t -> t.getParentId() != null && t.getParentId() != 0) -// .collect(Collectors.toMap(NodeQueryRepository.NodeResp::getParentId, Function.identity())); -// nodes.forEach(e -> { -// NodeQueryRepository.NodeResp nodeResp = childrenNodeMap.get(e.getId()); -// e.setDescendantNodes(Arrays.stream(parentIds) -// .map(Long::valueOf) -// .map(parentNodeMap::get) -// .map(t -> BeanUtil.copyProperties(t, OrgNodeDTO.class)) -// .filter(Objects::nonNull) -// .collect(Collectors.toList())); -// }); -// } - - + public void assembleDescendantNodes(List nodes, List descendantNodes) { + if (CollUtil.isEmpty(nodes) || CollUtil.isEmpty(descendantNodes)) { + return; + } + nodes.forEach(e -> { + e.setDescendantNodes(descendantNodes.stream() + .filter(t -> t.getPath().startsWith(e.getPath())) + .map(t -> BeanUtil.copyProperties(t, OrgNodeDTO.class)) + .filter(Objects::nonNull) + .collect(Collectors.toList())); + }); + } }