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 | 138 ++++++++++++++++++++++++++++++++++++---------- 1 files changed, 108 insertions(+), 30 deletions(-) diff --git a/src/test/java/cc/mrbird/febs/TreeTest.java b/src/test/java/cc/mrbird/febs/TreeTest.java index cb47a9f..9b7821d 100644 --- a/src/test/java/cc/mrbird/febs/TreeTest.java +++ b/src/test/java/cc/mrbird/febs/TreeTest.java @@ -1,13 +1,14 @@ package cc.mrbird.febs; -import cc.mrbird.febs.dapp.entity.DappAchieveMemberTreeEntity; 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.TeamListVo; +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; @@ -53,6 +54,8 @@ @Autowired private DappSystemService dappSystemService; + @Autowired + private DbMemberNodeMapper dbMemberNodeMapper; @Autowired private DappAchieveMemberTreeDao dappAchieveMemberTreeDao; @@ -63,21 +66,21 @@ @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 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() { @@ -87,37 +90,112 @@ @Test public void resetMatrix() { 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(), new BigDecimal("1"), 1, 2, - BigDecimal.ZERO, "测试"); + DappFundFlowEntity fundFlow = new DappFundFlowEntity( + member.getId(), + amount, + 18, + 2, + BigDecimal.ZERO, + null); + fundFlow.setToHash(nodeType); dappFundFlowDao.insert(fundFlow); dappSystemService.achieveTreeV2(fundFlow.getId()); } } } - public TeamListVo buildTeamMatrix(DappAchieveMemberTreeEntity node) { - List<DappAchieveMemberTreeEntity> childNodes = dappAchieveMemberTreeDao.selectMatrixChildNode(node.getTopNode(), node.getTreeNode()); + @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()); - TeamListVo teamListVo = new TeamListVo(); - teamListVo.setName(node.getInviteId()); - teamListVo.setHasMoney(node.getHasMoney()); + Long memberIds = 136L; + Integer type = 1; - if (CollUtil.isEmpty(childNodes)) { - return teamListVo; + 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<TeamListVo> list = new ArrayList<>(); - for (DappAchieveMemberTreeEntity childNode : childNodes) { + List<MemberNodeVo> list = new ArrayList<>(); + for (DbMemberNode childNode : childrenNode) { list.add(buildTeamMatrix(childNode)); } - teamListVo.setChildren(list); - return teamListVo; + 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