| | |
| | | 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; |
| | |
| | | |
| | | 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) { |
| | | 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(); |
| | | } |
| | |
| | | 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); |
| | | } |
| | | } |