KKSU
2024-06-22 d5bdc5f5f9da677fc4ae93278a9d6f37e47e026b
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -397,13 +397,31 @@
        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;
            }
            //每个星团,只复投10轮
            if(10 < dbMemberNodeRoot.getCountFund()){
                return;
            }
            memberNodeNext(dbMemberNodeRoot);
        }
    }
@@ -570,10 +588,11 @@
            if(ObjectUtil.isEmpty(dappMemberEntityRef)){
                return;
            }
            memberId = dappMemberEntityRef.getId();
            //如果为购买星级激活用户,则跳过
            Integer activeStatus = dappMemberEntityRef.getActiveStatus();
            if(1 != activeStatus){
                memberId = dappMemberEntityRef.getId();
                continue;
            }
            //获取上级全部的直推
@@ -584,7 +603,6 @@
            //如果没有直推,则跳过
            if(CollUtil.isEmpty(memberInviteList)){
                memberId = dappMemberEntityRef.getId();
                continue;
            }
@@ -594,10 +612,9 @@
            }
            //如果直推不满足当前规则需要的人数,则跳过
            if(memberInviteList.size() < rule.getInviteNum()){
                memberId = dappMemberEntityRef.getId();
                continue;
            }
            BigDecimal perkPercent = new BigDecimal(rule.getPerkPercent());
            BigDecimal perkPercent = new BigDecimal(rule.getPerkPercent()).multiply(new BigDecimal("0.01"));
            BigDecimal perkAmount = perkPercent.multiply(amount);
            Long perkMemberId = dappMemberEntityRef.getId();
            //生成一条流水
@@ -640,7 +657,7 @@
                DataDictionaryEnum.PERK_NUM.getType(),
                DataDictionaryEnum.PERK_NUM.getCode()
        );
        BigDecimal perKNum = new BigDecimal(ObjectUtil.isEmpty(perkPercentDic) ? "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){
@@ -667,7 +684,10 @@
                return;
            }
            //奖励金额
            BigDecimal memberPerk = perkPercent.multiply(buyNode);
            BigDecimal memberPerk = perkAmount.multiply(buyNode);
            if(BigDecimal.ZERO.compareTo(memberPerk) >= 0){
                continue;
            }
            dappWalletService.updateWalletCoinWithLock(memberPerk, dappMemberEntity.getId(), 1);
            DappFundFlowEntity fundFlow = new DappFundFlowEntity(