xiaoyong931011
2023-08-18 544c84ec7e9e285015cd79d48e6e4c7dcf6e6f7b
后台修改
5 files modified
171 ■■■■■ changed files
src/main/java/cc/mrbird/febs/dapp/enumerate/FundFlowEnum.java 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java 139 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java 13 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/dapp/money-change-flow.html 6 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/enumerate/FundFlowEnum.java
@@ -7,6 +7,10 @@
 */
@Getter
public enum FundFlowEnum {
    //卖出资产包入底池
    SYSTEM_SALE_PACKAGE("SYSTEM_SALE_PACKAGE", 45),
    //提现入底池
    SYSTEM_WITHDRAW_PACKAGE("SYSTEM_WITHDRAW_PACKAGE", 44),
    //商城流水10%进入底池
    SYSTEM_ORDER_PACKAGE("SYSTEM_ORDER_PACKAGE", 43),
    //资产包增加
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -998,28 +998,42 @@
        List<DappMemberEntity> dappMemberEntities = dappMemberDao.selectAllMemberForInCome();
        if(CollUtil.isNotEmpty(dappMemberEntities)){
            if(dappMemberEntities.size() <= 100){
                for(DappMemberEntity dappMemberEntity : dappMemberEntities){
                    Long memberId = dappMemberEntity.getId();
                    BigDecimal balance = dappMemberEntity.getBalance();
                    BigDecimal cnt = balance.divide(new BigDecimal(2) , 2 ,BigDecimal.ROUND_DOWN);
                    dappMemberEntity.setBalance(balance.subtract(cnt));
                    dappMemberDao.updateById(dappMemberEntity);
                    DataDictionaryCustom packageScorePriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                            DataDictionaryEnum.PACKAGE_SCORE_PRICE.getType(),
                            DataDictionaryEnum.PACKAGE_SCORE_PRICE.getCode()
                    );
                    BigDecimal packageScorePrice = new BigDecimal(ObjectUtil.isEmpty(packageScorePriceDic) ? "0" : packageScorePriceDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
                    //卖出资产乘以价格获取到预期获取的总额
                    BigDecimal totalAmount = cnt.multiply(packageScorePrice).setScale(2, BigDecimal.ROUND_DOWN);
            //总划入
            BigDecimal totalAdd = BigDecimal.ZERO;
                    //资产包卖出划入底池比例
                    DataDictionaryCustom packageToPoorPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                            DataDictionaryEnum.PACKAGE_SALE_TO_POOR_PERCENT.getType(),
                            DataDictionaryEnum.PACKAGE_SALE_TO_POOR_PERCENT.getCode()
                    );
                    BigDecimal packageToPoorPercent = new BigDecimal(ObjectUtil.isEmpty(packageToPoorPercentDic) ? "0.1" : packageToPoorPercentDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
            //资产包积分价格
            DataDictionaryCustom packageScorePriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                    DataDictionaryEnum.PACKAGE_SCORE_PRICE.getType(),
                    DataDictionaryEnum.PACKAGE_SCORE_PRICE.getCode()
            );
            BigDecimal packageScorePrice = new BigDecimal(ObjectUtil.isEmpty(packageScorePriceDic) ? "0" : packageScorePriceDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
            //卖出积分直接销毁。
            DataDictionaryCustom packageTotalScoreDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                    DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getType(),
                    DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getCode()
            );
            BigDecimal avaPackageTotalScore = new BigDecimal(ObjectUtil.isEmpty(packageTotalScoreDic) ? "21000" : packageTotalScoreDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
            DataDictionaryCustom packagePoorDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                    DataDictionaryEnum.PACKAGE_POOR.getType(),
                    DataDictionaryEnum.PACKAGE_POOR.getCode()
            );
            BigDecimal packagePoor = new BigDecimal(ObjectUtil.isEmpty(packagePoorDic) ? "0" : packagePoorDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
            if(dappMemberEntities.size() <= 100){
                for(DappMemberEntity dappMemberEntity : dappMemberEntities){
                    Long memberId = dappMemberEntity.getId();
                    BigDecimal balance = dappMemberEntity.getBalance();
                    //前一百卖出一半
                    BigDecimal cnt = balance.divide(new BigDecimal(2) , 2 ,BigDecimal.ROUND_DOWN);
                    dappMemberEntity.setBalance(balance.subtract(cnt));
                    dappMemberDao.updateById(dappMemberEntity);
                    //卖出资产乘以价格获取到预期获取的总额
                    BigDecimal totalAmount = cnt.multiply(packageScorePrice).setScale(2, BigDecimal.ROUND_DOWN);
                    //划入底池的金额
                    BigDecimal poorAmount = totalAmount.multiply(packageToPoorPercent).setScale(2, BigDecimal.ROUND_DOWN);
                    //实际获取的金额
@@ -1040,29 +1054,9 @@
                            DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
                            BigDecimal.ZERO);
                    dappFundFlowDao.insert(feeFlow);
                    //卖出积分直接销毁。
                    DataDictionaryCustom packageTotalScoreDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                            DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getType(),
                            DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getCode()
                    );
                    BigDecimal avaPackageTotalScore = new BigDecimal(ObjectUtil.isEmpty(packageTotalScoreDic) ? "21000" : packageTotalScoreDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
                    //更新USDT底池
                    DataDictionaryCustom packagePoorDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                            DataDictionaryEnum.PACKAGE_POOR.getType(),
                            DataDictionaryEnum.PACKAGE_POOR.getCode()
                    );
                    BigDecimal packagePoor = new BigDecimal(ObjectUtil.isEmpty(packagePoorDic) ? "0" : packagePoorDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
                    BigDecimal avaPackagePoor = packagePoor.add(poorAmount);
                    packagePoorDic.setValue(avaPackagePoor.toString());
                    dataDictionaryCustomMapper.updateById(packagePoorDic);
                    //计算当前价格
                    BigDecimal divide = avaPackagePoor.divide(avaPackageTotalScore, 8, BigDecimal.ROUND_DOWN);
                    packageScorePriceDic.setValue(divide.toString());
                    dataDictionaryCustomMapper.updateById(packageScorePriceDic);
                    totalAdd = totalAdd.add(poorAmount);
                }
                return new FebsResponse().success();
            }
            }else{
            List<MallAchieveRecord> mallAchieveRecordList = new ArrayList<>();
            for(DappMemberEntity dappMemberEntity : dappMemberEntities){
                //获取每个人的业绩
@@ -1114,19 +1108,8 @@
                        BigDecimal cnt = balance.divide(new BigDecimal(2) , 2 ,BigDecimal.ROUND_DOWN);
                        dappMemberEntity.setBalance(balance.subtract(cnt));
                        dappMemberDao.updateById(dappMemberEntity);
                        DataDictionaryCustom packageScorePriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                                DataDictionaryEnum.PACKAGE_SCORE_PRICE.getType(),
                                DataDictionaryEnum.PACKAGE_SCORE_PRICE.getCode()
                        );
                        BigDecimal packageScorePrice = new BigDecimal(ObjectUtil.isEmpty(packageScorePriceDic) ? "0" : packageScorePriceDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
                        //卖出资产乘以价格获取到预期获取的总额
                        BigDecimal totalAmount = cnt.multiply(packageScorePrice).setScale(2, BigDecimal.ROUND_DOWN);
                        //资产包卖出划入底池比例
                        DataDictionaryCustom packageToPoorPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                                DataDictionaryEnum.PACKAGE_SALE_TO_POOR_PERCENT.getType(),
                                DataDictionaryEnum.PACKAGE_SALE_TO_POOR_PERCENT.getCode()
                        );
                        BigDecimal packageToPoorPercent = new BigDecimal(ObjectUtil.isEmpty(packageToPoorPercentDic) ? "0.1" : packageToPoorPercentDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
                        //划入底池的金额
                        BigDecimal poorAmount = totalAmount.multiply(packageToPoorPercent).setScale(2, BigDecimal.ROUND_DOWN);
                        //实际获取的金额
@@ -1147,26 +1130,7 @@
                                DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
                                BigDecimal.ZERO);
                        dappFundFlowDao.insert(feeFlow);
                        //卖出积分直接销毁。
                        DataDictionaryCustom packageTotalScoreDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                                DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getType(),
                                DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getCode()
                        );
                        BigDecimal avaPackageTotalScore = new BigDecimal(ObjectUtil.isEmpty(packageTotalScoreDic) ? "21000" : packageTotalScoreDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
                        //更新USDT底池
                        DataDictionaryCustom packagePoorDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                                DataDictionaryEnum.PACKAGE_POOR.getType(),
                                DataDictionaryEnum.PACKAGE_POOR.getCode()
                        );
                        BigDecimal packagePoor = new BigDecimal(ObjectUtil.isEmpty(packagePoorDic) ? "0" : packagePoorDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
                        BigDecimal avaPackagePoor = packagePoor.add(poorAmount);
                        packagePoorDic.setValue(avaPackagePoor.toString());
                        dataDictionaryCustomMapper.updateById(packagePoorDic);
                        //计算当前价格
                        BigDecimal divide = avaPackagePoor.divide(avaPackageTotalScore, 8, BigDecimal.ROUND_DOWN);
                        packageScorePriceDic.setValue(divide.toString());
                        dataDictionaryCustomMapper.updateById(packageScorePriceDic);
                            totalAdd = totalAdd.add(poorAmount);
                    }
                }
@@ -1184,19 +1148,9 @@
                        BigDecimal cnt = balance;
                        dappMemberEntity.setBalance(balance.subtract(cnt));
                        dappMemberDao.updateById(dappMemberEntity);
                        DataDictionaryCustom packageScorePriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                                DataDictionaryEnum.PACKAGE_SCORE_PRICE.getType(),
                                DataDictionaryEnum.PACKAGE_SCORE_PRICE.getCode()
                        );
                        BigDecimal packageScorePrice = new BigDecimal(ObjectUtil.isEmpty(packageScorePriceDic) ? "0" : packageScorePriceDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
                        //卖出资产乘以价格获取到预期获取的总额
                        BigDecimal totalAmount = cnt.multiply(packageScorePrice).setScale(2, BigDecimal.ROUND_DOWN);
                        //资产包卖出划入底池比例
                        DataDictionaryCustom packageToPoorPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                                DataDictionaryEnum.PACKAGE_SALE_TO_POOR_PERCENT.getType(),
                                DataDictionaryEnum.PACKAGE_SALE_TO_POOR_PERCENT.getCode()
                        );
                        BigDecimal packageToPoorPercent = new BigDecimal(ObjectUtil.isEmpty(packageToPoorPercentDic) ? "0.1" : packageToPoorPercentDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
                        //划入底池的金额
                        BigDecimal poorAmount = totalAmount.multiply(packageToPoorPercent).setScale(2, BigDecimal.ROUND_DOWN);
                        //实际获取的金额
@@ -1217,30 +1171,23 @@
                                DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
                                BigDecimal.ZERO);
                        dappFundFlowDao.insert(feeFlow);
                        //卖出积分回收。
                        DataDictionaryCustom packageTotalScoreDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                                DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getType(),
                                DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getCode()
                        );
                        BigDecimal avaPackageTotalScore = new BigDecimal(ObjectUtil.isEmpty(packageTotalScoreDic) ? "21000" : packageTotalScoreDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
                        //更新USDT底池
                        DataDictionaryCustom packagePoorDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                                DataDictionaryEnum.PACKAGE_POOR.getType(),
                                DataDictionaryEnum.PACKAGE_POOR.getCode()
                        );
                        BigDecimal packagePoor = new BigDecimal(ObjectUtil.isEmpty(packagePoorDic) ? "0" : packagePoorDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
                        BigDecimal avaPackagePoor = packagePoor.add(poorAmount);
                            totalAdd = totalAdd.add(poorAmount);
                        }
                    }
                }
            }
            BigDecimal avaPackagePoor = packagePoor.add(totalAdd);
                        packagePoorDic.setValue(avaPackagePoor.toString());
                        dataDictionaryCustomMapper.updateById(packagePoorDic);
                        //计算当前价格
                        BigDecimal divide = avaPackagePoor.divide(avaPackageTotalScore, 8, BigDecimal.ROUND_DOWN);
                        packageScorePriceDic.setValue(divide.toString());
                        dataDictionaryCustomMapper.updateById(packageScorePriceDic);
                    }
                }
            }
            DappAKlineEntity dappAKlineEntity = new DappAKlineEntity();
            dappAKlineEntity.setOpenPrice(divide);
            dappAKlineEntity.setType(1);
            dappAKlineMapper.insert(dappAKlineEntity);
        }
        return new FebsResponse().success();
    }
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -3185,6 +3185,15 @@
        packageAvaCntDic.setValue(packageAvaCntScore.toString());
        dataDictionaryCustomMapper.updateById(packageAvaCntDic);
        DappFundFlowEntity packageFlow = new DappFundFlowEntity(
                AccountFlowEnum.SYSTEM_PACKAGE.getCode(),
                memberId,
                poorAmount.negate(),
                FundFlowEnum.SYSTEM_SALE_PACKAGE.getCode(),
                DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
                BigDecimal.ZERO);
        dappFundFlowDao.insert(packageFlow);
        DappAKlineEntity dappAKlineEntity = new DappAKlineEntity();
        dappAKlineEntity.setOpenPrice(divide);
        dappAKlineEntity.setType(1);
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -124,6 +124,7 @@
        BigDecimal withdrawAmount = amount.divide(new BigDecimal(7),2,BigDecimal.ROUND_DOWN);
        BigDecimal withdrawAmountFee = feeAmount.divide(new BigDecimal(7),2,BigDecimal.ROUND_DOWN);
        //增加流水
        DappFundFlowEntity dappFundFlowEntity = new DappFundFlowEntity(
                AccountFlowEnum.AMOUNT.getCode(),
@@ -727,6 +728,18 @@
            packageScorePriceDic.setValue(divide.toString());
            dataDictionaryCustomMapper.updateById(packageScorePriceDic);
            DappFundFlowEntity packageFlow = new DappFundFlowEntity(
                    AccountFlowEnum.SYSTEM_PACKAGE.getCode(),
                    1L,
                    addPoor,
                    FundFlowEnum.SYSTEM_WITHDRAW_PACKAGE.getCode(),
                    2,
                    BigDecimal.ZERO,
                    null,
                    memberCoinWithdrawEntity.getId());
            dappFundFlowDao.insert(packageFlow);
            DappAKlineEntity dappAKlineEntity = new DappAKlineEntity();
            dappAKlineEntity.setOpenPrice(divide);
            dappAKlineEntity.setType(1);
src/main/resources/templates/febs/views/dapp/money-change-flow.html
@@ -67,6 +67,9 @@
                                                <option value="40">提现</option>
                                                <option value="41">系统回购</option>
                                                <option value="42">获得通证</option>
                                                <option value="43">支付入底池</option>
                                                <option value="44">提现入底池</option>
                                                <option value="45">用户售卖入底池</option>
                                            </select>
                                        </div>
                                    </div>
@@ -132,6 +135,9 @@
    40: {title: '提现', color: 'green'},
    41: {title: '系统回购', color: 'green'},
    42: {title: '获得通证', color: 'green'},
    43: {title: '支付入底池', color: 'green'},
    44: {title: '提现入底池', color: 'green'},
    45: {title: '用户售卖入底池', color: 'green'},
    }[d.type];
    }}
    <span class="layui-badge febs-bg-{{type.color}}">{{ type.title }}</span>