xiaoyong931011
2023-05-26 ec95da083dc783b7d7ca80b0a65665e9b60a037f
twoCoin项目修改
3 files modified
129 ■■■■■ changed files
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java 127 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java 1 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/dapp/DappFundFlowDao.xml 1 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -809,7 +809,19 @@
                chergeRecordId);
        dappFundFlowDao.insert(poolAllMemberAFundFlow);
        nodePoolPerk(poolAllMemberAPercentCnt, MemberLevelEnum.MEMBER.getType(), FundFlowEnum.POOL_MEMBER_A_CNT.getCode());
        BigDecimal poolAllMemberAPercentCntAva = nodePoolPerk(poolAllMemberAPercentCnt, MemberLevelEnum.MEMBER.getType(), FundFlowEnum.POOL_MEMBER_A_CNT.getCode());
        DappFundFlowEntity poolAllMemberAFundFlowAva = new DappFundFlowEntity(
                1L,
                poolAllMemberAPercentCnt.subtract(poolAllMemberAPercentCntAva),
                FundFlowEnum.POOL_MEMBER_A_CNT.getCode(),
                2,
                BigDecimal.ZERO,
                null,
                chergeRecordId);
        dappFundFlowDao.insert(poolAllMemberAFundFlowAva);
        dappWalletService.updateWalletMineWithLock(poolAllMemberAPercentCnt.subtract(poolAllMemberAPercentCntAva),
                1L,1);
        /**
         * 10%直推
         */
@@ -854,6 +866,19 @@
                //用户的A币账户增加directAPercentCnt数量
                dappWalletService.updateWalletMineWithLock(directAPercentFundFlowToMemberFlag,directMemberEntity.getId(),1);
            }
            if(directAPercentCnt.compareTo(directAPercentFundFlowToMemberFlag) > 0){
                DappFundFlowEntity directAPercentFundFlowToMemberAva = new DappFundFlowEntity(
                        1L,
                        directAPercentCnt.subtract(directAPercentFundFlowToMemberFlag),
                        FundFlowEnum.DIRECT_A_PERCENT.getCode(),
                        2,
                        BigDecimal.ZERO,
                        null,
                        chergeRecordId);
                dappFundFlowDao.insert(directAPercentFundFlowToMemberAva);
                dappWalletService.updateWalletMineWithLock(directAPercentCnt.subtract(directAPercentFundFlowToMemberFlag),
                        1L,1);
            }
        }
        /**
         * 5%节点
@@ -884,7 +909,21 @@
        nodeAPercentPoolDic.setValue(nodeAPercentPoolDicCnt.toString());
        dataDictionaryCustomMapper.updateById(nodeAPercentPoolDic);
        superNodePoolPerk(nodeAPercentCnt, NodeCodeEnum.SUPER_NODE.getCode(), FundFlowEnum.NODE_A_PERCENT_TO_MEMBER.getCode());
        BigDecimal nodeAPercentCntAva = superNodePoolPerk(nodeAPercentCnt, NodeCodeEnum.SUPER_NODE.getCode(), FundFlowEnum.NODE_A_PERCENT_TO_MEMBER.getCode());
        if(nodeAPercentCnt.compareTo(nodeAPercentCntAva) > 0){
            DappFundFlowEntity nodeAPercentFundFlowAva = new DappFundFlowEntity(
                    1L,
                    nodeAPercentCnt.subtract(nodeAPercentCntAva),
                    FundFlowEnum.NODE_A_PERCENT_TO_MEMBER.getCode(),
                    2,
                    BigDecimal.ZERO,
                    null,
                    chergeRecordId);
            dappFundFlowDao.insert(nodeAPercentFundFlowAva);
            dappWalletService.updateWalletMineWithLock(nodeAPercentCnt.subtract(nodeAPercentCntAva),
                    1L,1);
        }
        /**
         * 5%基金会
         */
@@ -928,6 +967,11 @@
                chergeRecordId);
        dappFundFlowDao.insert(levelAPercentCntFundFlow);
        chainProducer.sendAntACoinInLevelMsg(levelAPercentCntFundFlow.getId());
        /**
         * 更新用户为有效用户
         */
        dappMemberDao.updateMemberActiveStatus(1,memberId);
    }
@@ -1116,7 +1160,19 @@
                    dappFundFlowDao.updateById(dappFundFlowEntity);
                    BigDecimal subtract = amountTC.subtract(teamIncomePerkTotal);
                    //用户的A币账户增加divide数量
                    dappWalletService.updateWalletMineWithLock(subtract,1L,1);
                    if(amountTC.compareTo(teamIncomePerkTotal) > 0){
                        DappFundFlowEntity nodeAPercentFundFlowAva = new DappFundFlowEntity(
                                1L,
                                subtract,
                                FundFlowEnum.LEVEL_A_PERCENT_CNT_MEMBER.getCode(),
                                2,
                                BigDecimal.ZERO,
                                null,
                                systemProfitId);
                        dappFundFlowDao.insert(nodeAPercentFundFlowAva);
                        dappWalletService.updateWalletMineWithLock(subtract,
                                1L,1);
                    }
                }
            }
        }
@@ -1131,7 +1187,22 @@
        BigDecimal averagePerk = nodePerk.getAveragePerk();
        BigDecimal averagePerkCnt = amountTC.multiply(averagePerk).setScale(4, BigDecimal.ROUND_DOWN);
        nodePoolPerk(averagePerkCnt, MemberLevelEnum.NODE_3.getType(), FundFlowEnum.DAO_3_NODE_PERK.getCode());
        BigDecimal averagePerkCntAva = nodePoolPerk(averagePerkCnt, MemberLevelEnum.NODE_3.getType(), FundFlowEnum.DAO_3_NODE_PERK.getCode());
        //用户的A币账户增加divide数量
        if(averagePerkCnt.compareTo(averagePerkCntAva) > 0){
            DappFundFlowEntity nodeAPercentFundFlowAva = new DappFundFlowEntity(
                    1L,
                    averagePerkCnt.subtract(averagePerkCntAva),
                    FundFlowEnum.DAO_3_NODE_PERK.getCode(),
                    2,
                    BigDecimal.ZERO,
                    null,
                    systemProfitId);
            dappFundFlowDao.insert(nodeAPercentFundFlowAva);
            dappWalletService.updateWalletMineWithLock(averagePerkCnt.subtract(averagePerkCntAva),
                    1L,1);
        }
        //生成流水记录
        DappFundFlowEntity nodeThreeFundFlow = new DappFundFlowEntity(
                1L,
@@ -1158,7 +1229,21 @@
        BigDecimal averagePerkFour = nodeFourDicPerk.getAveragePerk();
        BigDecimal averagePerkFourCnt = amountTC.multiply(averagePerkFour).setScale(4, BigDecimal.ROUND_DOWN);
        nodePoolPerk(averagePerkFourCnt, MemberLevelEnum.NODE_4.getType(), FundFlowEnum.DAO_4_NODE_PERK.getCode());
        BigDecimal averagePerkFourCntAva = nodePoolPerk(averagePerkFourCnt, MemberLevelEnum.NODE_4.getType(), FundFlowEnum.DAO_4_NODE_PERK.getCode());
        //用户的A币账户增加divide数量
        if(averagePerkFourCnt.compareTo(averagePerkFourCntAva) > 0){
            DappFundFlowEntity nodeAPercentFundFlowAva = new DappFundFlowEntity(
                    1L,
                    averagePerkFourCnt.subtract(averagePerkFourCntAva),
                    FundFlowEnum.DAO_4_NODE_PERK.getCode(),
                    2,
                    BigDecimal.ZERO,
                    null,
                    systemProfitId);
            dappFundFlowDao.insert(nodeAPercentFundFlowAva);
            dappWalletService.updateWalletMineWithLock(averagePerkFourCnt.subtract(averagePerkFourCntAva),
                    1L,1);
        }
        DappFundFlowEntity nodeFourFundFlow = new DappFundFlowEntity(
                1L,
                averagePerkFourCnt,
@@ -1183,7 +1268,21 @@
        BigDecimal averagePerkFive = nodeFiveDicPerk.getAveragePerk();
        BigDecimal averagePerkFiveCnt = amountTC.multiply(averagePerkFive).setScale(4, BigDecimal.ROUND_DOWN);
        nodePoolPerk(averagePerkFiveCnt, MemberLevelEnum.NODE_5.getType(), FundFlowEnum.DAO_5_NODE_PERK.getCode());
        BigDecimal averagePerkFiveCntAva = nodePoolPerk(averagePerkFiveCnt, MemberLevelEnum.NODE_5.getType(), FundFlowEnum.DAO_5_NODE_PERK.getCode());
        //用户的A币账户增加divide数量
        if(averagePerkFiveCnt.compareTo(averagePerkFiveCntAva) > 0){
            DappFundFlowEntity nodeAPercentFundFlowAva = new DappFundFlowEntity(
                    1L,
                    averagePerkFiveCnt.subtract(averagePerkFiveCntAva),
                    FundFlowEnum.DAO_5_NODE_PERK.getCode(),
                    2,
                    BigDecimal.ZERO,
                    null,
                    systemProfitId);
            dappFundFlowDao.insert(nodeAPercentFundFlowAva);
            dappWalletService.updateWalletMineWithLock(averagePerkFiveCnt.subtract(averagePerkFiveCntAva),
                    1L,1);
        }
        DappFundFlowEntity nodeFiveFundFlow = new DappFundFlowEntity(
                1L,
                averagePerkFiveCnt,
@@ -1210,7 +1309,21 @@
        BigDecimal nodeFiveEquals = new BigDecimal(nodeFiveEqualsDic.getValue());
        BigDecimal nodeFiveEqualsCnt = amountTC.multiply(nodeFiveEquals).setScale(4, BigDecimal.ROUND_DOWN);
        nodePoolEqualsPerk(nodeFiveEqualsCnt, MemberLevelEnum.NODE_5.getType(), FundFlowEnum.DAO_5_NODE_EQUALS_PERK.getCode());
        BigDecimal nodeFiveEqualsCntAva = nodePoolEqualsPerk(nodeFiveEqualsCnt, MemberLevelEnum.NODE_5.getType(), FundFlowEnum.DAO_5_NODE_EQUALS_PERK.getCode());
        //用户的A币账户增加divide数量
        if(nodeFiveEqualsCnt.compareTo(nodeFiveEqualsCntAva) > 0){
            DappFundFlowEntity nodeAPercentFundFlowAva = new DappFundFlowEntity(
                    1L,
                    nodeFiveEqualsCnt.subtract(nodeFiveEqualsCntAva),
                    FundFlowEnum.DAO_5_NODE_EQUALS_PERK.getCode(),
                    2,
                    BigDecimal.ZERO,
                    null,
                    systemProfitId);
            dappFundFlowDao.insert(nodeAPercentFundFlowAva);
            dappWalletService.updateWalletMineWithLock(nodeFiveEqualsCnt.subtract(nodeFiveEqualsCntAva),
                    1L,1);
        }
        DappFundFlowEntity nodeFiveEqualsFundFlow = new DappFundFlowEntity(
                1L,
                nodeFiveEqualsCnt,
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -760,7 +760,6 @@
                flow.setFromHash(transferADto.getTxHash());
                flow.setStatus(DappFundFlowEntity.WITHDRAW_STATUS_AGREE);
                dappFundFlowDao.updateById(flow);
                dappMemberDao.updateMemberActiveStatus(1,member.getId());
                /**
                 * 发送消息处理返利逻辑
                 */
src/main/resources/mapper/dapp/DappFundFlowDao.xml
@@ -128,6 +128,7 @@
          and version = #{version}
          and from_hash is null
          and is_return = 2
          and type in (2,3,27)
        ORDER BY
            id ASC
            LIMIT 1