From 65cf739fe077c398d35e58a083a1c7be40a3b7a2 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Sun, 06 Aug 2023 23:32:39 +0800
Subject: [PATCH] 数据修改
---
src/main/java/cc/mrbird/febs/common/tree/MatrixTree.java | 28 ++++++++++++++++++++++++++++
1 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/common/tree/MatrixTree.java b/src/main/java/cc/mrbird/febs/common/tree/MatrixTree.java
index 3b57b22..5e57dfa 100644
--- a/src/main/java/cc/mrbird/febs/common/tree/MatrixTree.java
+++ b/src/main/java/cc/mrbird/febs/common/tree/MatrixTree.java
@@ -4,6 +4,7 @@
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayDeque;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -136,4 +137,31 @@
return null;
}
+
+ /**
+ * 获取某一个MemberNode的所有上级节点
+ * @param node MemberNode节点
+ * @return MemberNode的List,按照从上到下的顺序排列
+ */
+ public List<MemberNode> getAllAncestors(MemberNode node) {
+ List<MemberNode> ancestorList = new ArrayList<>();
+ getAllAncestorsHelper(node, ancestorList);
+ return ancestorList;
+ }
+
+ /**
+ * 递归辅助方法,用于获取某一个MemberNode的所有上级节点
+ * @param node 当前节点
+ * @param ancestorList 存储上级节点的List
+ */
+ private void getAllAncestorsHelper(MemberNode node, List<MemberNode> ancestorList) {
+ if (node == null || node.getRefererId() == null) {
+ return;
+ }
+
+ MemberNode parent = getNode(node.getRefererId());
+ ancestorList.add(parent);
+
+ getAllAncestorsHelper(parent, ancestorList);
+ }
}
--
Gitblit v1.9.1