KKSU
2024-06-13 391be926e4d98387ed92fa80b2b5a218264073d2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
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<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() {
        Long withoutId = 1L;
        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, "测试");
                dappFundFlowDao.insert(fundFlow);
                dappSystemService.achieveTreeV2(fundFlow.getId());
            }
        }
    }
 
    public TeamListVo buildTeamMatrix(DappAchieveMemberTreeEntity node) {
        List<DappAchieveMemberTreeEntity> 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<TeamListVo> list = new ArrayList<>();
        for (DappAchieveMemberTreeEntity childNode : childNodes) {
            list.add(buildTeamMatrix(childNode));
        }
        teamListVo.setChildren(list);
        return teamListVo;
    }
 
    @Test
    public void limitResetProfitTest() {
        dappSystemService.putIntoProfit(59L, 1);
    }
}