From 6a0baf02bb1cc4b7d1d0e9d796ead2218ed9c824 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Thu, 13 Jun 2024 15:48:56 +0800 Subject: [PATCH] 星级矩阵 --- src/test/java/cc/mrbird/febs/TreeTest.java | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 151 insertions(+), 3 deletions(-) diff --git a/src/test/java/cc/mrbird/febs/TreeTest.java b/src/test/java/cc/mrbird/febs/TreeTest.java index c676c4c..9b7821d 100644 --- a/src/test/java/cc/mrbird/febs/TreeTest.java +++ b/src/test/java/cc/mrbird/febs/TreeTest.java @@ -1,13 +1,28 @@ package cc.mrbird.febs; +import cc.mrbird.febs.dapp.entity.DappFundFlowEntity; +import cc.mrbird.febs.dapp.entity.DappMemberEntity; +import cc.mrbird.febs.dapp.entity.DbMemberNode; import cc.mrbird.febs.dapp.mapper.DappAchieveMemberTreeDao; +import cc.mrbird.febs.dapp.mapper.DappFundFlowDao; +import cc.mrbird.febs.dapp.mapper.DappMemberDao; +import cc.mrbird.febs.dapp.mapper.DbMemberNodeMapper; import cc.mrbird.febs.dapp.service.DappSystemService; +import cc.mrbird.febs.dapp.vo.MemberNodeVo; import cc.mrbird.febs.tree.MatrixTree; import cc.mrbird.febs.tree.MemberNode; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.RandomUtil; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; /** * @author wzy @@ -39,15 +54,148 @@ @Autowired private DappSystemService dappSystemService; + @Autowired + private DbMemberNodeMapper dbMemberNodeMapper; @Autowired private DappAchieveMemberTreeDao dappAchieveMemberTreeDao; + @Autowired + private DappMemberDao dappMemberDao; + + @Autowired + private DappFundFlowDao dappFundFlowDao; + +// @Test +// public void resetMatrixV3() { +// Long memberId = 136L; +// QueryWrapper<DappFundFlowEntity> objectQueryWrappers = new QueryWrapper<>(); +// objectQueryWrappers.eq("member_id", memberId); +// objectQueryWrappers.orderByDesc("create_time"); +// List<DappFundFlowEntity> dappFundFlowEntitiess = dappFundFlowDao.selectList(objectQueryWrappers); +// if(ObjectUtil.isNotEmpty(dappFundFlowEntitiess)){ +// DappAchieveMemberTreeEntity topNode = dappAchieveMemberTreeDao.selectNodeByDeep(dappFundFlowEntitiess.get(0).getId(), 1); +// if (ObjectUtil.isNotEmpty(topNode)) { +// TeamListVo teamListVo = buildTeamMatrix(topNode); +// System.out.println(JSONUtil.parseObj(teamListVo)); +// } +// } +// } + + @Test + public void resetMatrixV2() { + dappSystemService.achieveTreeV2(136L); + } + @Test public void resetMatrix() { - dappSystemService.achieveTree(Long.parseLong("133")); -// dappSystemService.resetMatrix(); -// dappAchieveMemberTreeDao.emptyTable(); + Long withoutId = 1L; + BigDecimal amount = new BigDecimal(30); + String nodeType = "1"; + QueryWrapper<DappMemberEntity> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.orderByAsc("create_time"); + List<DappMemberEntity> dappMemberEntities = dappMemberDao.selectList(objectQueryWrapper); + for(DappMemberEntity member : dappMemberEntities){ + System.out.println(member.getId()); + if(withoutId != member.getId()){ + DappFundFlowEntity fundFlow = new DappFundFlowEntity( + member.getId(), + amount, + 18, + 2, + BigDecimal.ZERO, + null); + fundFlow.setToHash(nodeType); + dappFundFlowDao.insert(fundFlow); + dappSystemService.achieveTreeV2(fundFlow.getId()); + } + } + } + + @Test + public void resetMatrixV4() { + Long memberId = 141L; + BigDecimal amount = new BigDecimal(30); + String nodeType = "1"; + DappFundFlowEntity fundFlow = new DappFundFlowEntity( + memberId, + amount, + 18, + 2, + BigDecimal.ZERO, + null); + fundFlow.setToHash(nodeType); + dappFundFlowDao.insert(fundFlow); + dappSystemService.achieveTreeV2(fundFlow.getId()); + + Long memberIds = 136L; + Integer type = 1; + + DappMemberEntity member = dappMemberDao.selectById(memberIds); + + QueryWrapper<DbMemberNode> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("member_id",member.getId()); + objectQueryWrapper.eq("type", type); + objectQueryWrapper.eq("work_state", DbMemberNode.STATE_ONE); + DbMemberNode dbMemberNode = dbMemberNodeMapper.selectOne(objectQueryWrapper); + if(ObjectUtil.isEmpty(dbMemberNode)){ + return; + } + MemberNodeVo memberNodeVo = buildTeamMatrix(dbMemberNode); + System.out.println(JSONUtil.parseObj(memberNodeVo)); + } + @Test + public void resetMatrixV5() { + Long memberId = 136L; + Integer type = 1; + + DappMemberEntity member = dappMemberDao.selectById(memberId); + + QueryWrapper<DbMemberNode> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("member_id",member.getId()); + objectQueryWrapper.eq("type", type); + objectQueryWrapper.eq("work_state", DbMemberNode.STATE_ONE); + DbMemberNode dbMemberNode = dbMemberNodeMapper.selectOne(objectQueryWrapper); + if(ObjectUtil.isEmpty(dbMemberNode)){ + return; + } + MemberNodeVo memberNodeVo = buildTeamMatrix(dbMemberNode); + System.out.println(JSONUtil.parseObj(memberNodeVo)); + } + + public MemberNodeVo buildTeamMatrix(DbMemberNode dbMemberNode) { + Long id = dbMemberNode.getId(); + + MemberNodeVo memberNodeVo = new MemberNodeVo(); + memberNodeVo.setInviteId(getInviteId(id)); + memberNodeVo.setId(id); + memberNodeVo.setParentNode(ObjectUtil.isEmpty(dbMemberNode.getParentNode()) ? 0L : dbMemberNode.getParentNode()); + memberNodeVo.setLeftNode(ObjectUtil.isEmpty(dbMemberNode.getLeftNode()) ? 0L : dbMemberNode.getLeftNode()); + memberNodeVo.setRightNode(ObjectUtil.isEmpty(dbMemberNode.getRightNode()) ? 0L : dbMemberNode.getRightNode()); + memberNodeVo.setLeftRight(ObjectUtil.isEmpty(dbMemberNode.getLeftRight()) ? 0 : dbMemberNode.getLeftRight()); + + QueryWrapper<DbMemberNode> childQuery = new QueryWrapper<>(); + childQuery.eq("parent_node",id); + childQuery.eq("type", dbMemberNode.getType()); + childQuery.eq("work_state", DbMemberNode.STATE_ONE); + List<DbMemberNode> childrenNode = dbMemberNodeMapper.selectList(childQuery); + if(CollUtil.isEmpty(childrenNode)){ + return memberNodeVo; + } + + List<MemberNodeVo> list = new ArrayList<>(); + for (DbMemberNode childNode : childrenNode) { + list.add(buildTeamMatrix(childNode)); + } + memberNodeVo.setChildren(list); + return memberNodeVo; + } + + public String getInviteId(Long memberNodeId){ + DbMemberNode dbMemberNode = dbMemberNodeMapper.selectById(memberNodeId); + Long memberId = dbMemberNode.getMemberId(); + DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId); + return dappMemberEntity.getInviteId(); } @Test -- Gitblit v1.9.1