KKSU
2024-06-23 3fbe140485d5fe11c6aa7368b3eace17d14c97ea
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -239,7 +239,7 @@
                    return;
                }
                //有,则上级节点出局复投,轮数加1,复投逻辑
                memberNodeNext(dbMemberNodeRoot);
                this.memberNodeNext(dbMemberNodeRoot);
            }else{//父节点为左节点,那么没人出局
                return;
            }
@@ -256,6 +256,7 @@
     * 有,则上级节点出局复投,轮数加1,复投逻辑
     * @param dbMemberNodeRoot
     */
    @Override
    public void memberNodeNext(DbMemberNode dbMemberNodeRoot) {
        log.info("进入复投");
@@ -320,8 +321,6 @@
                //如果是第一轮,下一个新团有投入,则产生收益
                //复投或者收益的金额
                if(1 == countFund){//第一轮
                    //复投本轮,轮数 +1
                    futouSixTeen(memberId,dbMemberNodeRoot.getAmount(),type,countFund+1);
                    //收益复投(当前的下一个星团没有已投入),还是收益提出
                    Integer nextType = type + 1;
                    QueryWrapper<DbMemberNode> nodeQueryWrapper = new QueryWrapper<>();
@@ -334,6 +333,8 @@
                    }else{
                        perkSevenTeen(memberId,perkAmount,countFund);
                    }
                    //复投本轮,轮数 +1
                    futouSixTeen(memberId,dbMemberNodeRoot.getAmount(),type,countFund+1);
                }else{//2-9轮
                    //复投本轮,轮数 +1
                    futouSixTeen(memberId,dbMemberNodeRoot.getAmount(),type,countFund+1);
@@ -397,13 +398,34 @@
        dbMemberNode.setWorkState(1);
        dbMemberNodeMapper.insert(dbMemberNode);
        boolean flag = false;//下一级的再次复投
        if(ObjectUtil.isNotEmpty(dbMemberNodeOld)){
            if(dbMemberNode.getLeftRight() == 1){
                dbMemberNodeOld.setLeftNode(dbMemberNode.getId());
            }else{
                dbMemberNodeOld.setRightNode(dbMemberNode.getId());
                flag = true;
            }
            dbMemberNodeMapper.updateById(dbMemberNodeOld);
        }
        if(flag){
            if(ObjectUtil.isEmpty(dbMemberNodeOld.getParentNode())){
                return;
            }
            Long parentNode = dbMemberNodeOld.getParentNode();
            DbMemberNode dbMemberNodeRoot = dbMemberNodeMapper.selectById(parentNode);
            if(ObjectUtil.isEmpty(dbMemberNodeRoot)){
                return;
            }
            if(dbMemberNodeRoot.getLeftRight() == 1){
                return;
            }
            //每个星团,只复投10轮
            if(10 < dbMemberNodeRoot.getCountFund()){
                return;
            }
            this.memberNodeNext(dbMemberNodeRoot);
        }
    }
@@ -639,7 +661,7 @@
                DataDictionaryEnum.PERK_NUM.getType(),
                DataDictionaryEnum.PERK_NUM.getCode()
        );
        BigDecimal perKNum = new BigDecimal(ObjectUtil.isEmpty(perKNumDic) ? "1000" : perKNumDic.getValue());
        BigDecimal perKNum = new BigDecimal(ObjectUtil.isEmpty(perKNumDic) ? "200" : perKNumDic.getValue());
        BigDecimal perkAmount = amount.multiply(perkPercent).divide(perKNum, 8, BigDecimal.ROUND_DOWN);
        if(BigDecimal.ZERO.compareTo(perkAmount) >= 0){