From 70ada79c7a3f7c0c2e47cde5619ba94d5d57708b Mon Sep 17 00:00:00 2001 From: 朱俊杰 <502612493@qq.com> Date: 星期二, 15 三月 2022 16:31:06 +0800 Subject: [PATCH] 修复device_channel的Id改变带来的tree查询bug --- src/main/java/com/genersoft/iot/vmp/utils/node/ForestNodeManager.java | 10 +++++----- src/main/java/com/genersoft/iot/vmp/utils/node/ForestNode.java | 4 ++-- src/main/java/com/genersoft/iot/vmp/utils/node/INode.java | 2 +- src/main/java/com/genersoft/iot/vmp/utils/node/ForestNodeMerger.java | 6 +++--- src/main/java/com/genersoft/iot/vmp/utils/node/BaseNode.java | 14 +++----------- 5 files changed, 14 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/utils/node/BaseNode.java b/src/main/java/com/genersoft/iot/vmp/utils/node/BaseNode.java index 7835feb..89e35a5 100644 --- a/src/main/java/com/genersoft/iot/vmp/utils/node/BaseNode.java +++ b/src/main/java/com/genersoft/iot/vmp/utils/node/BaseNode.java @@ -16,7 +16,7 @@ /** * 涓婚敭ID */ - protected int id; + protected String channelId; /** * 鐖惰妭鐐笽D @@ -50,21 +50,13 @@ } @Override - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; + public String getChannelId() { + return channelId; } @Override public String getParentId() { return parentId; - } - - public void setParentId(String parentId) { - this.parentId = parentId; } @Override diff --git a/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNode.java b/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNode.java index 21a48df..d983c56 100644 --- a/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNode.java +++ b/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNode.java @@ -15,8 +15,8 @@ */ private Object content; - public ForestNode(int id, String parentId, Object content) { - this.id = id; + public ForestNode(String id, String parentId, Object content) { + this.channelId = id; this.parentId = parentId; this.content = content; } diff --git a/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNodeManager.java b/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNodeManager.java index 895e6de..affce9d 100644 --- a/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNodeManager.java +++ b/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNodeManager.java @@ -17,15 +17,15 @@ /** * 妫灄鐨勬墍鏈夎妭鐐� */ - private final ImmutableMap<Integer, T> nodeMap; + private final ImmutableMap<String, T> nodeMap; /** * 妫灄鐨勭埗鑺傜偣ID */ - private final Map<Integer, Object> parentIdMap = Maps.newHashMap(); + private final Map<String, Object> parentIdMap = Maps.newHashMap(); public ForestNodeManager(List<T> nodes) { - nodeMap = Maps.uniqueIndex(nodes, INode::getId); + nodeMap = Maps.uniqueIndex(nodes, INode::getChannelId); } /** @@ -46,7 +46,7 @@ * * @param parentId 鐖惰妭鐐笽D */ - public void addParentId(int parentId) { + public void addParentId(String parentId) { parentIdMap.put(parentId, ""); } @@ -58,7 +58,7 @@ public List<T> getRoot() { List<T> roots = new ArrayList<>(); nodeMap.forEach((key, node) -> { - if (node.getParentId() == null || parentIdMap.containsKey(node.getId())) { + if (node.getParentId() == null || parentIdMap.containsKey(node.getChannelId())) { roots.add(node); } }); diff --git a/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNodeMerger.java b/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNodeMerger.java index 062d4cd..8df6f50 100644 --- a/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNodeMerger.java +++ b/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNodeMerger.java @@ -25,7 +25,7 @@ if (node != null) { node.getChildren().add(forestNode); } else { - forestNodeManager.addParentId(forestNode.getId()); + forestNodeManager.addParentId(forestNode.getChannelId()); } } }); @@ -37,8 +37,8 @@ items.forEach(forestNode -> { if (forestNode.getParentId() != null) { INode<T> node = forestNodeManager.getTreeNodeAt(forestNode.getParentId()); - if (CollectionUtil.contains(parentIds, forestNode.getId())){ - forestNodeManager.addParentId(forestNode.getId()); + if (CollectionUtil.contains(parentIds, forestNode.getChannelId())){ + forestNodeManager.addParentId(forestNode.getChannelId()); } else { if (node != null){ node.getChildren().add(forestNode); diff --git a/src/main/java/com/genersoft/iot/vmp/utils/node/INode.java b/src/main/java/com/genersoft/iot/vmp/utils/node/INode.java index c82d6f7..2772747 100644 --- a/src/main/java/com/genersoft/iot/vmp/utils/node/INode.java +++ b/src/main/java/com/genersoft/iot/vmp/utils/node/INode.java @@ -14,7 +14,7 @@ * * @return String */ - int getId(); + String getChannelId(); /** * 鐖朵富閿� -- Gitblit v1.8.0