KKSU
2024-06-13 0e11b3498fa678f346815c76ff580e246d64ab26
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -28,6 +28,7 @@
import java.math.RoundingMode;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
 * @author
@@ -218,8 +219,12 @@
        //如果添加的为右节点,那么进入判断
        if(DbMemberNode.STATE_TWO == dbMemberNode.getLeftRight()){
            //更新父节点的右节点
            dbMemberNodeOld.setRightNode(dbMemberNode.getId());
            dbMemberNodeMapper.updateById(dbMemberNodeOld);
            //父节点为右节点,那么进入判断,父节点是否有上级节点
            int leftRight = ObjectUtil.isEmpty(dbMemberNodeOld.getLeftNode()) ? 1 : 2;
            int leftRight = ObjectUtil.isEmpty(dbMemberNodeOld.getLeftRight()) ? 1 : dbMemberNodeOld.getLeftRight();
            if(DbMemberNode.STATE_TWO == leftRight){
                if(ObjectUtil.isEmpty(dbMemberNodeOld.getParentNode())){
                    return;
@@ -239,6 +244,9 @@
                return;
            }
        }else{
            //更新父节点的左节点
            dbMemberNodeOld.setLeftNode(dbMemberNode.getId());
            dbMemberNodeMapper.updateById(dbMemberNodeOld);
            //如果添加的为左节点,那么没人出局
            return;
        }
@@ -250,10 +258,12 @@
     */
    public void memberNodeNext(DbMemberNode dbMemberNodeRoot) {
        log.info("进入复投");
        DataDictionaryCustom inviteNumDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.INVITE_NUM.getType(),
                DataDictionaryEnum.INVITE_NUM.getCode()
        );
        int inviteNum = Integer.parseInt(inviteNumDic.getValue());
        Long memberId = dbMemberNodeRoot.getMemberId();
@@ -268,6 +278,22 @@
        if(inviteNum > dappMemberEntities.size()){
            return;
        }
        List<Long> collect = dappMemberEntities.stream().map(DappMemberEntity::getId).collect(Collectors.toList());
        QueryWrapper<DbMemberNode> inviteNodeQuery = new QueryWrapper<>();
        inviteNodeQuery.select("member_id");
        inviteNodeQuery.eq("work_state", DbMemberNode.STATE_ONE);
        inviteNodeQuery.in("member_id",collect);
        inviteNodeQuery.groupBy("member_id");
        List<DbMemberNode> inviteNodes = dbMemberNodeMapper.selectList(inviteNodeQuery);
        if(CollUtil.isEmpty(inviteNodes)){
            return;
        }
        if(inviteNum > inviteNodes.size()){
            return;
        }
        //任何星级的原来节点都要出局
        dbMemberNodeRoot.setWorkState(DbMemberNode.STATE_TWO);
        dbMemberNodeMapper.updateById(dbMemberNodeRoot);
        //任何星级,10轮,收益本金都返回
        Integer countFund = dbMemberNodeRoot.getCountFund();
        //收益
@@ -275,9 +301,6 @@
        if(10 == countFund){//任何星级,10轮,收益本金都返回
            BigDecimal add = dbMemberNodeRoot.getAmount().add(perkAmount);
            perkSevenTeen(memberId,add,countFund);
            dbMemberNodeRoot.setWorkState(DbMemberNode.STATE_TWO);
            dbMemberNodeMapper.updateById(dbMemberNodeRoot);
            return;
        }else{
@@ -373,6 +396,15 @@
        }
        dbMemberNode.setWorkState(1);
        dbMemberNodeMapper.insert(dbMemberNode);
        if(ObjectUtil.isNotEmpty(dbMemberNodeOld)){
            if(dbMemberNode.getLeftRight() == 1){
                dbMemberNodeOld.setLeftNode(dbMemberNode.getId());
            }else{
                dbMemberNodeOld.setRightNode(dbMemberNode.getId());
            }
            dbMemberNodeMapper.updateById(dbMemberNodeOld);
        }
    }