From 544c84ec7e9e285015cd79d48e6e4c7dcf6e6f7b Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 18 Aug 2023 17:34:07 +0800
Subject: [PATCH] 后台修改

---
 src/main/java/cc/mrbird/febs/dapp/enumerate/FundFlowEnum.java             |    4 
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java |    9 +
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java |   13 ++
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java |  327 ++++++++++++++++++++++-------------------------------
 src/main/resources/templates/febs/views/dapp/money-change-flow.html       |    6 +
 5 files changed, 169 insertions(+), 190 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/enumerate/FundFlowEnum.java b/src/main/java/cc/mrbird/febs/dapp/enumerate/FundFlowEnum.java
index 5b109d0..7bfd6e2 100644
--- a/src/main/java/cc/mrbird/febs/dapp/enumerate/FundFlowEnum.java
+++ b/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),
     //资产包增加
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
index 5a28953..e0674e9 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -998,28 +998,42 @@
 
         List<DappMemberEntity> dappMemberEntities = dappMemberDao.selectAllMemberForInCome();
         if(CollUtil.isNotEmpty(dappMemberEntities)){
+            //总划入
+            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);
-
-                    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);
                     //实际获取的金额
@@ -1040,47 +1054,27 @@
                             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();
-            }
-            List<MallAchieveRecord> mallAchieveRecordList = new ArrayList<>();
-            for(DappMemberEntity dappMemberEntity : dappMemberEntities){
-                //获取每个人的业绩
-                //业绩集合
-                List<BigDecimal> list = new ArrayList<>();
-                //所有直推团队,就是这个会员的所有区域的业绩。
+            }else{
+                List<MallAchieveRecord> mallAchieveRecordList = new ArrayList<>();
+                for(DappMemberEntity dappMemberEntity : dappMemberEntities){
+                    //获取每个人的业绩
+                    //业绩集合
+                    List<BigDecimal> list = new ArrayList<>();
+                    //所有直推团队,就是这个会员的所有区域的业绩。
 
-                BigDecimal teamIncomeMax = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(dappMemberEntity.getId(),
-                        FundFlowEnum.ADD_AMOUNT_REAL.getCode(),
-                        DappFundFlowEntity.WITHDRAW_STATUS_AGREE);
-                if(BigDecimal.ZERO.compareTo(teamIncomeMax) >= 0){
-                    continue;
-                }
+                    BigDecimal teamIncomeMax = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(dappMemberEntity.getId(),
+                            FundFlowEnum.ADD_AMOUNT_REAL.getCode(),
+                            DappFundFlowEntity.WITHDRAW_STATUS_AGREE);
+                    if(BigDecimal.ZERO.compareTo(teamIncomeMax) >= 0){
+                        continue;
+                    }
 
-                MallAchieveRecord mallAchieveRecord = new MallAchieveRecord();
-                mallAchieveRecord.setMemberId(dappMemberEntity.getId());
-                mallAchieveRecord.setAmount(teamIncomeMax);
-                mallAchieveRecordList.add(mallAchieveRecord);
+                    MallAchieveRecord mallAchieveRecord = new MallAchieveRecord();
+                    mallAchieveRecord.setMemberId(dappMemberEntity.getId());
+                    mallAchieveRecord.setAmount(teamIncomeMax);
+                    mallAchieveRecordList.add(mallAchieveRecord);
 //                // 直推用户
 //                List<DappMemberEntity> childs = dappMemberDao.selectMemberInfoByRefererId(dappMemberEntity.getInviteId());
 //                List<String> childsInviteIds = childs.stream().map(DappMemberEntity::getInviteId).collect(Collectors.toList());
@@ -1094,153 +1088,106 @@
 //                    BigDecimal bigMax = list.stream().max(BigDecimal::compareTo).get();
 //                    teamIncomeMax = teamIncomeMax.subtract(bigMax);
 //                }
-            }
-            if(CollUtil.isNotEmpty(mallAchieveRecordList)){
-                //按照小区业绩的多少排名
-                List<MallAchieveRecord> collect = mallAchieveRecordList
-                        .stream()
-                        .sorted(Comparator.comparing(MallAchieveRecord::getAmount))
-                        .collect(Collectors.toList());
-
-                List<MallAchieveRecord> top100Performances = collect.stream()
-                        .limit(100)
-                        .collect(Collectors.toList());
-                if(CollUtil.isNotEmpty(top100Performances)){
-                    for(MallAchieveRecord mallAchieveRecord : top100Performances){
-                        Long memberId = mallAchieveRecord.getMemberId();
-                        DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
-                        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);
-                        //资产包卖出划入底池比例
-                        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);
-                        //实际获取的金额
-                        BigDecimal realAmount = totalAmount.subtract(poorAmount);
-                        //生成一条资金流水
-                        DappFundFlowEntity scoreFlow = new DappFundFlowEntity(
-                                memberId,
-                                realAmount,
-                                FundFlowEnum.SYSTEM_PACKAGE_SALE.getCode(),
-                                DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
-                                BigDecimal.ZERO);
-                        dappFundFlowDao.insert(scoreFlow);
-                        dappWalletCoinDao.addTotalAndaddAvailableByMemberId(memberId,realAmount);
-                        DappFundFlowEntity feeFlow = new DappFundFlowEntity(
-                                memberId,
-                                poorAmount.negate(),
-                                FundFlowEnum.SYSTEM_PACKAGE_SALE.getCode(),
-                                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);
-                    }
                 }
+                if(CollUtil.isNotEmpty(mallAchieveRecordList)){
+                    //按照小区业绩的多少排名
+                    List<MallAchieveRecord> collect = mallAchieveRecordList
+                            .stream()
+                            .sorted(Comparator.comparing(MallAchieveRecord::getAmount))
+                            .collect(Collectors.toList());
 
-                List<MallAchieveRecord> remainingUsers = mallAchieveRecordList
-                        .stream()
-                        .sorted(Comparator.comparing(MallAchieveRecord::getAmount).reversed())
-                        .skip(100)
-                        .collect(Collectors.toList());
-                if(CollUtil.isNotEmpty(remainingUsers)){
-                    for(MallAchieveRecord mallAchieveRecord : remainingUsers){
-                        Long memberId = mallAchieveRecord.getMemberId();
-                        DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
-                        BigDecimal balance = dappMemberEntity.getBalance();
+                    List<MallAchieveRecord> top100Performances = collect.stream()
+                            .limit(100)
+                            .collect(Collectors.toList());
+                    if(CollUtil.isNotEmpty(top100Performances)){
+                        for(MallAchieveRecord mallAchieveRecord : top100Performances){
+                            Long memberId = mallAchieveRecord.getMemberId();
+                            DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
+                            BigDecimal balance = dappMemberEntity.getBalance();
 
-                        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);
-                        //实际获取的金额
-                        BigDecimal realAmount = totalAmount.subtract(poorAmount);
-                        //生成一条资金流水
-                        DappFundFlowEntity scoreFlow = new DappFundFlowEntity(
-                                memberId,
-                                realAmount,
-                                FundFlowEnum.SYSTEM_PACKAGE_SALE.getCode(),
-                                DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
-                                BigDecimal.ZERO);
-                        dappFundFlowDao.insert(scoreFlow);
-                        dappWalletCoinDao.addTotalAndaddAvailableByMemberId(memberId,realAmount);
-                        DappFundFlowEntity feeFlow = new DappFundFlowEntity(
-                                memberId,
-                                poorAmount.negate(),
-                                FundFlowEnum.SYSTEM_PACKAGE_SALE.getCode(),
-                                DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
-                                BigDecimal.ZERO);
-                        dappFundFlowDao.insert(feeFlow);
+                            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);
+                            //实际获取的金额
+                            BigDecimal realAmount = totalAmount.subtract(poorAmount);
+                            //生成一条资金流水
+                            DappFundFlowEntity scoreFlow = new DappFundFlowEntity(
+                                    memberId,
+                                    realAmount,
+                                    FundFlowEnum.SYSTEM_PACKAGE_SALE.getCode(),
+                                    DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
+                                    BigDecimal.ZERO);
+                            dappFundFlowDao.insert(scoreFlow);
+                            dappWalletCoinDao.addTotalAndaddAvailableByMemberId(memberId,realAmount);
+                            DappFundFlowEntity feeFlow = new DappFundFlowEntity(
+                                    memberId,
+                                    poorAmount.negate(),
+                                    FundFlowEnum.SYSTEM_PACKAGE_SALE.getCode(),
+                                    DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
+                                    BigDecimal.ZERO);
+                            dappFundFlowDao.insert(feeFlow);
+                            totalAdd = totalAdd.add(poorAmount);
+                        }
+                    }
 
-                        //卖出积分回收。
-                        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);
+                    List<MallAchieveRecord> remainingUsers = mallAchieveRecordList
+                            .stream()
+                            .sorted(Comparator.comparing(MallAchieveRecord::getAmount).reversed())
+                            .skip(100)
+                            .collect(Collectors.toList());
+                    if(CollUtil.isNotEmpty(remainingUsers)){
+                        for(MallAchieveRecord mallAchieveRecord : remainingUsers){
+                            Long memberId = mallAchieveRecord.getMemberId();
+                            DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
+                            BigDecimal balance = dappMemberEntity.getBalance();
+
+                            BigDecimal cnt = balance;
+                            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);
+                            //实际获取的金额
+                            BigDecimal realAmount = totalAmount.subtract(poorAmount);
+                            //生成一条资金流水
+                            DappFundFlowEntity scoreFlow = new DappFundFlowEntity(
+                                    memberId,
+                                    realAmount,
+                                    FundFlowEnum.SYSTEM_PACKAGE_SALE.getCode(),
+                                    DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
+                                    BigDecimal.ZERO);
+                            dappFundFlowDao.insert(scoreFlow);
+                            dappWalletCoinDao.addTotalAndaddAvailableByMemberId(memberId,realAmount);
+                            DappFundFlowEntity feeFlow = new DappFundFlowEntity(
+                                    memberId,
+                                    poorAmount.negate(),
+                                    FundFlowEnum.SYSTEM_PACKAGE_SALE.getCode(),
+                                    DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
+                                    BigDecimal.ZERO);
+                            dappFundFlowDao.insert(feeFlow);
+                            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();
     }
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
index ef4d0bb..95c388a 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
+++ b/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);
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
index 36e2108..c97f2c6 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
+++ b/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);
diff --git a/src/main/resources/templates/febs/views/dapp/money-change-flow.html b/src/main/resources/templates/febs/views/dapp/money-change-flow.html
index 05b343c..5669758 100644
--- a/src/main/resources/templates/febs/views/dapp/money-change-flow.html
+++ b/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>

--
Gitblit v1.9.1