fix
Hentua
2023-06-06 0c27432b33d4fdbf7a7fdccb678a5679efe65d84
src/main/java/cc/mrbird/febs/common/tree/MatrixTree.java
@@ -40,7 +40,20 @@
            return null;
        }
        MemberNode parentNode = findNotWholeNode();
        MemberNode childTreeRoot = getNode(node.getRefererId());
        MemberNode parentNode = findNotWholeNode(childTreeRoot == null ? root : childTreeRoot);
        parentNode.addNode(node);
        return parentNode;
    }
    public MemberNode addNode(MemberNode node, Long parentNodeId) {
        if (parentNodeId == null) {
            root = node;
            return null;
        }
        MemberNode parentNode = getNode(parentNodeId);
        parentNode.addNode(node);
        return parentNode;
    }
@@ -49,7 +62,7 @@
     * 层级遍历,查到子节点未满3个的节点
     * @return
     */
    public MemberNode findNotWholeNode() {
    public MemberNode findNotWholeNode(MemberNode root) {
        ArrayDeque<MemberNode> deque = new ArrayDeque<>();
        deque.add(root);
@@ -77,6 +90,10 @@
        return result;
    }
    public MemberNode findNotWholeNode() {
        return findNotWholeNode(root);
    }
    /**
     * 查找整个树下对应节点
     * @param param memberId/address/inviteId
@@ -85,6 +102,10 @@
    public MemberNode getNode(Object param) {
        if (root == null) {
            return null;
        }
        if (root.getMemberId().equals(param) || root.getPhone().equals(param) || root.getInviteId().equals(param)) {
            return root;
        }
        return getNode(root.CHILD, param);
@@ -103,11 +124,14 @@
        }
        for (MemberNode node : nodeList) {
            if (node.getMemberId().equals(param) || node.getAddress().equals(param) || node.getInviteId().equals(param)) {
            if (node.getMemberId().equals(param) || node.getPhone().equals(param) || node.getInviteId().equals(param)) {
                return node;
            }
            return getNode(node.CHILD, param);
            MemberNode childNode = getNode(node.CHILD, param);
            if (childNode != null) {
                return childNode;
            }
        }
        return null;