From 7f7a1b01527843ffb178d015a044380acbde4fe2 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Tue, 02 Jul 2024 16:23:25 +0800 Subject: [PATCH] 逻辑 --- src/test/java/cc/mrbird/febs/TreeTest.java | 311 +++++++++++++++++++++++++++++++-------------------- 1 files changed, 191 insertions(+), 120 deletions(-) diff --git a/src/test/java/cc/mrbird/febs/TreeTest.java b/src/test/java/cc/mrbird/febs/TreeTest.java index 9b7821d..0a6305d 100644 --- a/src/test/java/cc/mrbird/febs/TreeTest.java +++ b/src/test/java/cc/mrbird/febs/TreeTest.java @@ -1,25 +1,23 @@ package cc.mrbird.febs; +import cc.mrbird.febs.common.utils.RedisUtils; 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.mapper.*; import cc.mrbird.febs.dapp.service.DappSystemService; +import cc.mrbird.febs.dapp.service.DappWalletService; import cc.mrbird.febs.dapp.vo.MemberNodeVo; -import cc.mrbird.febs.tree.MatrixTree; -import cc.mrbird.febs.tree.MemberNode; +import cc.mrbird.febs.rabbit.producer.ChainProducer; 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 javax.annotation.Resource; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; @@ -31,122 +29,201 @@ @SpringBootTest public class TreeTest { + + @Resource + private RedisUtils redisUtils; + @Resource + private DappFundFlowDao dappFundFlowDao; + @Resource + private DappMemberDao dappMemberDao; + @Resource + private DataDictionaryCustomMapper dataDictionaryCustomMapper; + @Resource + private DappWalletService dappWalletService; + @Resource + private DappWalletCoinDao dappWalletCoinDao; + @Resource + private ChainProducer chainProducer; +// + @Autowired + DappSystemService dappSystemService; + @Autowired + DbMemberNodeMapper dbMemberNodeMapper; @Test - public void matrixTest() { - MatrixTree matrixTree = MatrixTree.getInstance(); + public void matrixTestV7() { + ArrayList<Integer> objects = new ArrayList<>(); + objects.add(2); + objects.add(3); - - String refererId = null; - for (int i = 0; i < 11; i++) { - String inviteId = RandomUtil.randomString(6); - if (i == 2) { - refererId = inviteId; - } - MemberNode memberNode = new MemberNode(); - memberNode.setMemberId(Long.parseLong(i + 1 + "")); - memberNode.setInviteId(inviteId); - memberNode.setAddress(RandomUtil.randomString(14)); - memberNode.setRefererId(refererId); - matrixTree.addNode(memberNode); + QueryWrapper<DbMemberNode> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.in("type",objects); + List<DbMemberNode> dbMemberNodes = dbMemberNodeMapper.selectList(objectQueryWrapper); + if(CollUtil.isEmpty(dbMemberNodes)){ + return; } - System.out.println(System.currentTimeMillis()); + for(DbMemberNode dbMemberNode : dbMemberNodes){ + Integer workState = dbMemberNode.getWorkState(); + if(2 == workState){ + dbMemberNodeMapper.deleteById(dbMemberNode.getId()); + continue; + } + BigDecimal amount = dbMemberNode.getAmount(); + Long memberId = dbMemberNode.getMemberId(); + + dappWalletService.updateWalletCoinWithLock(amount, memberId, 1); + dbMemberNodeMapper.deleteById(dbMemberNode.getId()); + } } - @Autowired - private DappSystemService dappSystemService; - @Autowired - private DbMemberNodeMapper dbMemberNodeMapper; + @Test + public void matrixTest() { + DappFundFlowEntity fundFlow = dappFundFlowDao.selectById(4641L); + DappMemberEntity fromMember = dappMemberDao.selectById(fundFlow.getMemberId()); - @Autowired - private DappAchieveMemberTreeDao dappAchieveMemberTreeDao; + // 更改状态为已同步 + fundFlow.setStatus(2); + dappFundFlowDao.updateById(fundFlow); + //激活用户 + fromMember.setActiveStatus(1); + dappMemberDao.updateById(fromMember); - @Autowired - private DappMemberDao dappMemberDao; +// chainProducer.sendNodeMsg(fundFlow.getId()); +// 发送推荐规则奖励 +// chainProducer.sendInvitePerkMsg(fundFlow.getId()); + //发送节点投资 + chainProducer.sendNodePerkMsg(fundFlow.getId()); - @Autowired - private DappFundFlowDao dappFundFlowDao; + } + @Test + public void matrixTestv2() { + /** + * 获取所有左右节点都有值,轮数为 1,未复投work_state = 1 的节点 + * 判断右节点有值 + * 有继续向判断右节点 + * 有,原纪录复投逻辑 + */ + QueryWrapper<DbMemberNode> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("work_state", 1); + List<DbMemberNode> dbMemberNodes = dbMemberNodeMapper.selectList(objectQueryWrapper); + if(CollUtil.isEmpty(dbMemberNodes)){ + return; + } + for(DbMemberNode dbMemberNode : dbMemberNodes){ + if(ObjectUtil.isEmpty(dbMemberNode.getRightNode())){ + continue; + } + //子节点 + Long rightNode = dbMemberNode.getRightNode(); + DbMemberNode dbMemberNode1 = dbMemberNodeMapper.selectById(rightNode); + if(ObjectUtil.isEmpty(dbMemberNode1)){ + continue; + } + + if(ObjectUtil.isEmpty(dbMemberNode1.getRightNode())){ + continue; + } + + //有,则上级节点出局复投,轮数加1,复投逻辑 + dappSystemService.memberNodeNext(dbMemberNode); + } + } +// +// @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 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)); +// public void resetMatrixV2() { +// dappSystemService.achieveTreeV2(136L); +// } +// +// @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(), +// amount, +// 18, +// 2, +// BigDecimal.ZERO, +// null); +// fundFlow.setToHash(nodeType); +// dappFundFlowDao.insert(fundFlow); +// dappSystemService.achieveTreeV2(fundFlow.getId()); // } // } // } - - @Test - public void resetMatrixV2() { - dappSystemService.achieveTreeV2(136L); - } - - @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(), - 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 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; + Long memberId = 300L; Integer type = 1; DappMemberEntity member = dappMemberDao.selectById(memberId); @@ -168,16 +245,10 @@ 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); +// childQuery.eq("work_state", DbMemberNode.STATE_ONE); List<DbMemberNode> childrenNode = dbMemberNodeMapper.selectList(childQuery); if(CollUtil.isEmpty(childrenNode)){ return memberNodeVo; @@ -197,9 +268,9 @@ DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId); return dappMemberEntity.getInviteId(); } - - @Test - public void limitResetProfitTest() { - dappSystemService.putIntoProfit(59L, 1); - } +// +// @Test +// public void limitResetProfitTest() { +// dappSystemService.putIntoProfit(59L, 1); +// } } -- Gitblit v1.9.1