| | |
| | | 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.*; |
| | | 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.rabbit.producer.ChainProducer; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | 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; |
| | | |
| | | /** |
| | | * @author wzy |
| | |
| | | **/ |
| | | @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() { |
| | | // DbMemberNode dbMemberNode = dbMemberNodeMapper.selectById(171L); |
| | | // |
| | | // dappSystemService.memberNodeNext(dbMemberNode); |
| | | // } |
| | | @Autowired |
| | | DappSystemService dappSystemService; |
| | | @Autowired |
| | | DbMemberNodeMapper dbMemberNodeMapper; |
| | | @Test |
| | | public void matrixTestV7() { |
| | | ArrayList<Integer> objects = new ArrayList<>(); |
| | | objects.add(2); |
| | | objects.add(3); |
| | | |
| | | QueryWrapper<DbMemberNode> objectQueryWrapper = new QueryWrapper<>(); |
| | | objectQueryWrapper.in("type",objects); |
| | | List<DbMemberNode> dbMemberNodes = dbMemberNodeMapper.selectList(objectQueryWrapper); |
| | | if(CollUtil.isEmpty(dbMemberNodes)){ |
| | | return; |
| | | } |
| | | 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()); |
| | | } |
| | | } |
| | | |
| | | @Test |
| | | public void matrixTest() { |
| | | DappFundFlowEntity fundFlow = dappFundFlowDao.selectById(4641L); |
| | | DappMemberEntity fromMember = dappMemberDao.selectById(fundFlow.getMemberId()); |
| | | |
| | | // 更改状态为已同步 |
| | | fundFlow.setStatus(2); |
| | | dappFundFlowDao.updateById(fundFlow); |
| | | //激活用户 |
| | | fromMember.setActiveStatus(1); |
| | | dappMemberDao.updateById(fromMember); |
| | | |
| | | // chainProducer.sendNodeMsg(fundFlow.getId()); |
| | | // 发送推荐规则奖励 |
| | | // chainProducer.sendInvitePerkMsg(fundFlow.getId()); |
| | | //发送节点投资 |
| | | chainProducer.sendNodePerkMsg(fundFlow.getId()); |
| | | |
| | | } |
| | | @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; |
| | |
| | | // 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()); |
| | | @Test |
| | | public void resetMatrixV5() { |
| | | Long memberId = 300L; |
| | | 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)); |
| | | 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(); |
| | | // } |
| | | 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 |
| | | // public void limitResetProfitTest() { |