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