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/dapp/service/impl/MatrixTreeNodeServiceImpl.java |   23 +++++++++++++++++++----
 1 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/MatrixTreeNodeServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/MatrixTreeNodeServiceImpl.java
index bd7895b..2fc58bd 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/MatrixTreeNodeServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/MatrixTreeNodeServiceImpl.java
@@ -7,6 +7,7 @@
 import cc.mrbird.febs.dapp.mapper.DappMemberDao;
 import cc.mrbird.febs.dapp.mapper.MatrixTreeNodeMapper;
 import cc.mrbird.febs.dapp.service.IMatrixTreeNodeService;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
@@ -30,16 +31,26 @@
 
         MatrixTree instance = MatrixTree.getInstance();
         MemberNode node = instance.getNode(memberId);
+        //节点存在则直接返回
         if (node != null) {
             return null;
         }
-
+        //未找到节点
         if (StrUtil.isNotBlank(mallMember.getRefererId())) {
+            //返回直推上级所在节点
             MemberNode parentNode = instance.getNode(mallMember.getRefererId());
 
             MemberNode notWholeNode = null;
             if (parentNode != null) {
-                notWholeNode = instance.findNotWholeNode(parentNode);
+                Long parentNodeMemberId = parentNode.getMemberId();
+                MatrixTreeNode matrixTreeNode = matrixTreeNodeMapper.selectByParentNodeAndType(parentNodeMemberId,mallMember.getNodeType());
+                if(ObjectUtil.isNotEmpty(matrixTreeNode)){
+                    //直推上级的第一代子节点
+                    MemberNode nodeParentChild = instance.getNode(matrixTreeNode.getTreeNode());
+                    notWholeNode = instance.findNotWholeNode(nodeParentChild);
+                }else{
+                    notWholeNode = instance.findNotWholeNode(parentNode);
+                }
             } else {
                 notWholeNode = instance.findNotWholeNode();
             }
@@ -47,17 +58,21 @@
             MatrixTreeNode treeNode = new MatrixTreeNode();
             treeNode.setTreeNode(mallMember.getId());
             treeNode.setParentNode(notWholeNode.getMemberId());
+            treeNode.setType(mallMember.getNodeType());
             matrixTreeNodeMapper.insert(treeNode);
         } else {
             MatrixTreeNode treeNode = new MatrixTreeNode();
             treeNode.setTreeNode(mallMember.getId());
+            treeNode.setType(0);
             matrixTreeNodeMapper.insert(treeNode);
         }
-
+        MatrixTreeNode matrixTreeNode = matrixTreeNodeMapper.selectByTreeNode(memberId);
+        DappMemberEntity dappMemberEntity = mallMemberMapper.selectById(matrixTreeNode.getParentNode());
         node = new MemberNode();
         node.setMemberId(memberId);
         node.setInviteId(mallMember.getInviteId());
-        node.setRefererId(mallMember.getRefererId());
+        node.setRefererId(dappMemberEntity.getInviteId());
+        node.setType(mallMember.getNodeType());
         return instance.addNode(node);
     }
 }

--
Gitblit v1.9.1