From 226db5f2903469c5c00758471c154f765cb26653 Mon Sep 17 00:00:00 2001 From: wangyao Date: Thu, 7 Jan 2021 17:52:54 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=81=8D=E5=8E=86?= =?UTF-8?q?=E8=BF=87=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DefaultGroupServiceProvider.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultGroupServiceProvider.java b/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultGroupServiceProvider.java index 39741888..2f2704b2 100644 --- a/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultGroupServiceProvider.java +++ b/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultGroupServiceProvider.java @@ -106,13 +106,19 @@ public class DefaultGroupServiceProvider extends BeanPropertyRowMapper im return root; } - private void convertToTree(List groups, TreeNode current) { - List> treeNodes = groups.stream() - .filter(it -> current.getNode().getId().equals(it.getParentId())) - .map(TreeNode::new) - .collect(Collectors.toList()); - current.setChildren(treeNodes); - treeNodes.forEach(it -> convertToTree(groups, it)); + private void convertToTree(List remains, TreeNode current) { + Group temp; + List> childNodes = new LinkedList<>(); + Iterator iterator = remains.iterator(); + while (iterator.hasNext()){ + temp = iterator.next(); + if (current.getNode().getId().equals(temp.getParentId())) { + childNodes.add(new TreeNode<>(temp)); + iterator.remove(); + } + } + current.setChildren(childNodes); + childNodes.forEach(it -> convertToTree(remains, it)); } @Override -- Gitee From dc9cd06231cdba4baaf8c93c12a0fe2dcdc2ce2b Mon Sep 17 00:00:00 2001 From: wangyao Date: Thu, 7 Jan 2021 17:55:46 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E4=B8=89=E5=85=83?= =?UTF-8?q?=E8=A1=A8=E8=BE=BE=E5=BC=8F=EF=BC=8C=E6=98=93=E8=AF=BB=E6=80=A7?= =?UTF-8?q?++?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../magicapi/config/MappingHandlerMapping.java | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/ssssssss/magicapi/config/MappingHandlerMapping.java b/src/main/java/org/ssssssss/magicapi/config/MappingHandlerMapping.java index 5edb5be9..942afb3d 100644 --- a/src/main/java/org/ssssssss/magicapi/config/MappingHandlerMapping.java +++ b/src/main/java/org/ssssssss/magicapi/config/MappingHandlerMapping.java @@ -293,10 +293,7 @@ public class MappingHandlerMapping { } String mappingKey = getMappingKey(info); if (mappings.containsKey(mappingKey)) { - if (mappings.get(mappingKey).getInfo().getId().equals(info.getId())) { - return false; - } - return true; + return !mappings.get(mappingKey).getInfo().getId().equals(info.getId()); } if (!allowOverride) { Map handlerMethods = this.requestMappingHandlerMapping.getHandlerMethods(); @@ -331,14 +328,10 @@ public class MappingHandlerMapping { public void registerMapping(ApiInfo info, boolean delete) { // 先判断是否已注册,如果已注册,则先取消注册在进行注册。 MappingNode mappingNode = mappings.get(info.getId()); - ApiInfo oldInfo = mappingNode == null ? null : mappingNode.getInfo(); - if (mappingNode == null) { - mappingNode = new MappingNode(info); - } String newMappingKey = getMappingKey(info); - mappingNode.setMappingKey(newMappingKey); - if (oldInfo != null) { - String oldMappingKey = getMappingKey(oldInfo); + if (mappingNode != null) { + ApiInfo oldInfo = mappingNode.getInfo(); + String oldMappingKey = mappingNode.getMappingKey(); // URL 路径一致时,刷新脚本内容即可 if (Objects.equals(oldMappingKey, newMappingKey)) { if (!info.equals(oldInfo)) { @@ -357,6 +350,8 @@ public class MappingHandlerMapping { mappings.remove(oldMappingKey); requestMappingHandlerMapping.unregisterMapping(getRequestMapping(oldInfo)); } + mappingNode = new MappingNode(info); + mappingNode.setMappingKey(newMappingKey); // 注册 RequestMappingInfo requestMapping = getRequestMapping(info); mappingNode.setRequestMappingInfo(requestMapping); -- Gitee