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.mapper.DappAchieveMemberTreeDao; import cc.mrbird.febs.dapp.mapper.DappFundFlowDao; import cc.mrbird.febs.dapp.mapper.DappMemberDao; import cc.mrbird.febs.dapp.service.DappSystemService; import cc.mrbird.febs.dapp.vo.TeamListVo; 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 * @date 2022-08-24 **/ @SpringBootTest public class TreeTest { @Test public void matrixTest() { MatrixTree matrixTree = MatrixTree.getInstance(); 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); } System.out.println(System.currentTimeMillis()); } @Autowired private DappSystemService dappSystemService; @Autowired private DappAchieveMemberTreeDao dappAchieveMemberTreeDao; @Autowired private DappMemberDao dappMemberDao; @Autowired private DappFundFlowDao dappFundFlowDao; @Test public void resetMatrixV3() { Long memberId = 136L; QueryWrapper objectQueryWrappers = new QueryWrapper<>(); objectQueryWrappers.eq("member_id", memberId); objectQueryWrappers.orderByDesc("create_time"); List 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() { Long withoutId = 1L; QueryWrapper objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.orderByAsc("create_time"); List 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, "测试"); dappFundFlowDao.insert(fundFlow); dappSystemService.achieveTreeV2(fundFlow.getId()); } } } public TeamListVo buildTeamMatrix(DappAchieveMemberTreeEntity node) { List childNodes = dappAchieveMemberTreeDao.selectMatrixChildNode(node.getTopNode(), node.getTreeNode()); TeamListVo teamListVo = new TeamListVo(); teamListVo.setName(node.getInviteId()); teamListVo.setHasMoney(node.getHasMoney()); if (CollUtil.isEmpty(childNodes)) { return teamListVo; } List list = new ArrayList<>(); for (DappAchieveMemberTreeEntity childNode : childNodes) { list.add(buildTeamMatrix(childNode)); } teamListVo.setChildren(list); return teamListVo; } @Test public void limitResetProfitTest() { dappSystemService.putIntoProfit(59L, 1); } }