From f922185560da4b4001268d5a32ae6319e21a903f Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Sun, 04 Jun 2023 22:44:36 +0800
Subject: [PATCH] twoCoin项目修改

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java |   36 +++++++++---------
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java |   38 +++++++++++--------
 2 files changed, 40 insertions(+), 34 deletions(-)

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 fa03ad7..2069f5e 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
@@ -838,7 +838,7 @@
          */
         BigDecimal poolAllMemberAPercentCntAva = allMemberPerk(poolAllMemberAPercentCnt, FundFlowEnum.POOL_MEMBER_A_CNT.getCode());
         DappFundFlowEntity poolAllMemberAFundFlowAva = new DappFundFlowEntity(
-                1L,
+                294L,
                 poolAllMemberAPercentCnt.subtract(poolAllMemberAPercentCntAva),
                 FundFlowEnum.POOL_MEMBER_A_CNT.getCode(),
                 2,
@@ -847,7 +847,7 @@
                 chergeRecordId);
         dappFundFlowDao.insert(poolAllMemberAFundFlowAva);
         dappWalletService.updateWalletMineWithLock(poolAllMemberAPercentCnt.subtract(poolAllMemberAPercentCntAva),
-                1L,1);
+                294L,1);
 
         /**
          * 10%直推
@@ -895,7 +895,7 @@
             }
             if(directAPercentCnt.compareTo(directAPercentFundFlowToMemberFlag) > 0){
                 DappFundFlowEntity directAPercentFundFlowToMemberAva = new DappFundFlowEntity(
-                        1L,
+                        294L,
                         directAPercentCnt.subtract(directAPercentFundFlowToMemberFlag),
                         FundFlowEnum.DIRECT_A_PERCENT.getCode(),
                         2,
@@ -904,7 +904,7 @@
                         chergeRecordId);
                 dappFundFlowDao.insert(directAPercentFundFlowToMemberAva);
                 dappWalletService.updateWalletMineWithLock(directAPercentCnt.subtract(directAPercentFundFlowToMemberFlag),
-                        1L,1);
+                        294L,1);
             }
         }
         /**
@@ -940,7 +940,7 @@
 
         if(nodeAPercentCnt.compareTo(nodeAPercentCntAva) > 0){
             DappFundFlowEntity nodeAPercentFundFlowAva = new DappFundFlowEntity(
-                    1L,
+                    294L,
                     nodeAPercentCnt.subtract(nodeAPercentCntAva),
                     FundFlowEnum.NODE_A_PERCENT_TO_MEMBER.getCode(),
                     2,
@@ -949,7 +949,7 @@
                     chergeRecordId);
             dappFundFlowDao.insert(nodeAPercentFundFlowAva);
             dappWalletService.updateWalletMineWithLock(nodeAPercentCnt.subtract(nodeAPercentCntAva),
-                    1L,1);
+                    294L,1);
         }
         /**
          * 5%基金会
@@ -963,7 +963,7 @@
 
         //生成一条5%基金会的资金流水记录
         DappFundFlowEntity foundationAPercentFundFlow = new DappFundFlowEntity(
-                1L,
+                295L,
                 foundationAPercentCnt,
                 FundFlowEnum.FOUNDATION_A_PERCENT.getCode(),
                 2,
@@ -972,7 +972,7 @@
                 chergeRecordId);
         dappFundFlowDao.insert(foundationAPercentFundFlow);
         //用户的A币账户增加memberGetACnt数量
-        dappWalletService.updateWalletMineWithLock(foundationAPercentCnt,1L,1);
+        dappWalletService.updateWalletMineWithLock(foundationAPercentCnt,295L,1);
         /**
          * 10%级差奖
          */
@@ -1258,7 +1258,7 @@
                     //用户的A币账户增加divide数量
                     if(amountTC.compareTo(teamIncomePerkTotal) > 0){
                         DappFundFlowEntity nodeAPercentFundFlowAva = new DappFundFlowEntity(
-                                1L,
+                                294L,
                                 subtract,
                                 FundFlowEnum.LEVEL_A_PERCENT_CNT_MEMBER.getCode(),
                                 2,
@@ -1267,7 +1267,7 @@
                                 systemProfitId);
                         dappFundFlowDao.insert(nodeAPercentFundFlowAva);
                         dappWalletService.updateWalletMineWithLock(subtract,
-                                1L,1);
+                                294L,1);
                     }
                 }
             }
@@ -1288,7 +1288,7 @@
         //用户的A币账户增加divide数量
         if(averagePerkCnt.compareTo(averagePerkCntAva) > 0){
             DappFundFlowEntity nodeAPercentFundFlowAva = new DappFundFlowEntity(
-                    1L,
+                    294L,
                     averagePerkCnt.subtract(averagePerkCntAva),
                     FundFlowEnum.DAO_3_NODE_PERK.getCode(),
                     2,
@@ -1297,7 +1297,7 @@
                     systemProfitId);
             dappFundFlowDao.insert(nodeAPercentFundFlowAva);
             dappWalletService.updateWalletMineWithLock(averagePerkCnt.subtract(averagePerkCntAva),
-                    1L,1);
+                    294L,1);
         }
         //生成流水记录
         DappFundFlowEntity nodeThreeFundFlow = new DappFundFlowEntity(
@@ -1329,7 +1329,7 @@
         //用户的A币账户增加divide数量
         if(averagePerkFourCnt.compareTo(averagePerkFourCntAva) > 0){
             DappFundFlowEntity nodeAPercentFundFlowAva = new DappFundFlowEntity(
-                    1L,
+                    294L,
                     averagePerkFourCnt.subtract(averagePerkFourCntAva),
                     FundFlowEnum.DAO_4_NODE_PERK.getCode(),
                     2,
@@ -1338,7 +1338,7 @@
                     systemProfitId);
             dappFundFlowDao.insert(nodeAPercentFundFlowAva);
             dappWalletService.updateWalletMineWithLock(averagePerkFourCnt.subtract(averagePerkFourCntAva),
-                    1L,1);
+                    294L,1);
         }
         DappFundFlowEntity nodeFourFundFlow = new DappFundFlowEntity(
                 1L,
@@ -1368,7 +1368,7 @@
         //用户的A币账户增加divide数量
         if(averagePerkFiveCnt.compareTo(averagePerkFiveCntAva) > 0){
             DappFundFlowEntity nodeAPercentFundFlowAva = new DappFundFlowEntity(
-                    1L,
+                    294L,
                     averagePerkFiveCnt.subtract(averagePerkFiveCntAva),
                     FundFlowEnum.DAO_5_NODE_PERK.getCode(),
                     2,
@@ -1377,7 +1377,7 @@
                     systemProfitId);
             dappFundFlowDao.insert(nodeAPercentFundFlowAva);
             dappWalletService.updateWalletMineWithLock(averagePerkFiveCnt.subtract(averagePerkFiveCntAva),
-                    1L,1);
+                    294L,1);
         }
         DappFundFlowEntity nodeFiveFundFlow = new DappFundFlowEntity(
                 1L,
@@ -1409,7 +1409,7 @@
         //用户的A币账户增加divide数量
         if(nodeFiveEqualsCnt.compareTo(nodeFiveEqualsCntAva) > 0){
             DappFundFlowEntity nodeAPercentFundFlowAva = new DappFundFlowEntity(
-                    1L,
+                    294L,
                     nodeFiveEqualsCnt.subtract(nodeFiveEqualsCntAva),
                     FundFlowEnum.DAO_5_NODE_EQUALS_PERK.getCode(),
                     2,
@@ -1418,7 +1418,7 @@
                     systemProfitId);
             dappFundFlowDao.insert(nodeAPercentFundFlowAva);
             dappWalletService.updateWalletMineWithLock(nodeFiveEqualsCnt.subtract(nodeFiveEqualsCntAva),
-                    1L,1);
+                    294L,1);
         }
         DappFundFlowEntity nodeFiveEqualsFundFlow = new DappFundFlowEntity(
                 1L,
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 5115526..fff3bf3 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
@@ -402,9 +402,15 @@
         BigDecimal feePercent = new BigDecimal(toUsdtPercentFeeDic.getValue());
         //手续费扣除USDT
         BigDecimal feeUsdtAmount = coinUsdtAmount.multiply(feePercent).setScale(4,BigDecimal.ROUND_DOWN);
-        //实际提现USDT数量
-        BigDecimal realUsdtAmount = coinUsdtAmount.subtract(feeUsdtAmount).setScale(4,BigDecimal.ROUND_DOWN);
+        //实际提现USDT数量,先扣除1%的手续费后,只到账70%
 
+        DataDictionaryCustom outPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                PoolEnum.WALLET_COIN_OUT_PERCENT.getType(),
+                PoolEnum.WALLET_COIN_OUT_PERCENT.getCode()
+        );
+        BigDecimal outPercent = new BigDecimal(outPercentDic.getValue());
+        BigDecimal realUsdtAmount = coinUsdtAmount.subtract(feeUsdtAmount).setScale(4,BigDecimal.ROUND_DOWN);
+        realUsdtAmount = realUsdtAmount.multiply(outPercent).setScale(4,BigDecimal.ROUND_DOWN);
         //减少闪对钱包的币的数量
         this.updateWalletCoinWithLock(amount, member.getId(), 2);
         //增加流水
@@ -429,11 +435,6 @@
         /**
          * A币卖币规则,卖出100%销毁,30%回流底池溢价
          */
-        DataDictionaryCustom outPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
-                PoolEnum.WALLET_COIN_OUT_PERCENT.getType(),
-                PoolEnum.WALLET_COIN_OUT_PERCENT.getCode()
-        );
-        BigDecimal outPercent = new BigDecimal(outPercentDic.getValue());
         coinUsdtAmount = coinUsdtAmount.multiply(outPercent).setScale(4,BigDecimal.ROUND_DOWN);
         //金本位底池数量
         DataDictionaryCustom coinAUsdtPriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
@@ -457,13 +458,6 @@
         coinAPrice = coinAUsdtCnt.divide(coinACnt,12,BigDecimal.ROUND_DOWN);
         aCoinPriceDic.setValue(coinAPrice.toString());
         dataDictionaryCustomMapper.updateById(aCoinPriceDic);
-
-        DappFundFlowEntity flowSubtract = new DappFundFlowEntity(1L,
-                coinUsdtAmount,
-                FundFlowEnum.WALLET_COIN_TO_USDT_W.getCode(),
-                2,
-                BigDecimal.ZERO);
-        dappFundFlowDao.insert(flowSubtract);
 
         chainProducer.sendAntKLineMsg(0);
     }
@@ -685,6 +679,18 @@
                     }
                 }
                 /**
+                 * 入金限制
+                 *  每人总共入金100U
+                 */
+                BigDecimal amountIn = transferADto.getAmount();
+                if(amountIn.compareTo(new BigDecimal(100)) != 0){
+                    throw new FebsException("Limit per address 100 USDT");
+                }
+                BigDecimal amountInLast = dappChargeUsdtMapper.selectByMaxAmountMemberId(member.getId());
+                if(BigDecimal.ZERO.compareTo(amountInLast) < 0){
+                    throw new FebsException("Limit per address 100 USDT");
+                }
+                /**
                  * 验证账户是否有入金金额的10%的AUSD
                  */
                 DappUsdtPerkEntity dappUsdtPerkEntity = dappUsdtPerkEntityMapper.selectByMemberId(member.getId());
@@ -846,13 +852,13 @@
         dappFundFlowDao.insert(memberFeeflow);
         //插入资产闪对手续费的流水
         DappFundFlowEntity dappFundFlowEntityFee = new DappFundFlowEntity(
-                1L,
+                295L,
                 feeCnt,
                 FundFlowEnum.WALLET_MINE_TO_COIN_FEE.getCode(),
                 2,
                 BigDecimal.ZERO);
         dappFundFlowDao.insert(dappFundFlowEntityFee);
-        this.updateWalletMineWithLock(feeCnt,1L,1);
+        this.updateWalletMineWithLock(feeCnt,295L,1);
     }
 
     @Override

--
Gitblit v1.9.1