package cc.mrbird.febs;
|
|
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.MemberNodeVo;
|
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 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 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 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<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() {
|
dappSystemService.putIntoProfit(59L, 1);
|
}
|
}
|