From 1d5f689f34d827ac4be67fd84212a5cb7fc80d57 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Tue, 16 Apr 2024 16:17:14 +0800
Subject: [PATCH] 滑点自动发放

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/AsyncCjServiceImpl.java |   42 ++++++++++++++++--------------------------
 1 files changed, 16 insertions(+), 26 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/AsyncCjServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/AsyncCjServiceImpl.java
index 1c47c8b..5b840ec 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/AsyncCjServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/AsyncCjServiceImpl.java
@@ -242,10 +242,6 @@
          */
 
         //当天实际当天滑点
-
-        BigDecimal gfaPrice = new BigDecimal(
-                redisUtils.getString(DataDicEnum.GFA_PRICE.getValue())
-        ).setScale(2,BigDecimal.ROUND_DOWN);
         BigDecimal usdtAmount = new BigDecimal(
                 redisUtils.getString(DataDicEnum.GFA_HUA_DIAN_WALLET_USDT_AMOUNT.getValue())
         ).setScale(2,BigDecimal.ROUND_DOWN);
@@ -255,20 +251,8 @@
         if(BigDecimal.ZERO.compareTo(usdtAmount) > 0){
             return;
         }
-        if(BigDecimal.ZERO.compareTo(coinAmount) > 0){
-            return;
-        }
         BigDecimal usdtAmountReal = usdtAmount;
         BigDecimal coinAmountReal = coinAmount;
-        //生成一条记录
-        DappHdRecord dappHdRecordAdd = new DappHdRecord();
-        dappHdRecordAdd.setPrice(gfaPrice);
-        dappHdRecordAdd.setUsdtEvery(usdtAmountReal);
-        dappHdRecordAdd.setUsdtAmount(usdtAmountReal);
-        dappHdRecordAdd.setCoinEvery(coinAmountReal);
-        dappHdRecordAdd.setCoinAmount(coinAmountReal);
-        dappHdRecordMapper.insert(dappHdRecordAdd);
-
         /**
          * 5%滑奖分配:
          * 1%用自身质押
@@ -281,9 +265,9 @@
         //平分份数
         BigDecimal totalPercent = new BigDecimal(selfPercent + teamPercent + workPercent);
         //每一份有多少
-        BigDecimal divideEveryUsdt = usdtAmountReal.divide(totalPercent, 4, BigDecimal.ROUND_DOWN);
+        BigDecimal divideEveryUsdt = usdtAmountReal.divide(totalPercent, 8, BigDecimal.ROUND_DOWN);
         //每一份有多少
-        BigDecimal divideEveryCoin = coinAmountReal.divide(totalPercent, 4, BigDecimal.ROUND_DOWN);
+        BigDecimal divideEveryCoin = coinAmountReal.divide(totalPercent, 8, BigDecimal.ROUND_DOWN);
         //1%用自身质押
         selfHdPerk(selfPercent,divideEveryUsdt,divideEveryCoin);
         //3%用于团队业绩计算
@@ -360,16 +344,19 @@
             memberPerkMap.put(memberId,teamAchieveMemberSum);
         }
 
-        BigDecimal everyUsdt = multiplyDivideEveryUsdt.divide(memberPerkTotal,4,BigDecimal.ROUND_DOWN);
-        BigDecimal everyCoin = multiplyDivideEveryCoin.divide(memberPerkTotal,4,BigDecimal.ROUND_DOWN);
+        BigDecimal everyUsdt = multiplyDivideEveryUsdt.divide(memberPerkTotal,8,BigDecimal.ROUND_DOWN);
+        BigDecimal everyCoin = multiplyDivideEveryCoin.divide(memberPerkTotal,8,BigDecimal.ROUND_DOWN);
         Set<Long> set = memberPerkMap.keySet(); // 得到所有key的集合
         for (Long memberId : set) {
             //当前生效中的团队业绩
             BigDecimal amountMember = memberPerkMap.get(memberId);
             //这个人实际可以分到的数量USDT
-            BigDecimal multiplyUsdt = amountMember.multiply(everyUsdt).setScale(4, BigDecimal.ROUND_DOWN);
+            BigDecimal multiplyUsdt = amountMember.multiply(everyUsdt).setScale(8, BigDecimal.ROUND_DOWN);
+            if(BigDecimal.ZERO.compareTo(multiplyUsdt) >= 0){
+                continue;
+            }
             //这个人实际可以分到的数量COIN
-            BigDecimal multiplyCoin = amountMember.multiply(everyCoin).setScale(4, BigDecimal.ROUND_DOWN);
+            BigDecimal multiplyCoin = amountMember.multiply(everyCoin).setScale(8, BigDecimal.ROUND_DOWN);
             DappMemberEntity dappMemberEntityExit = dappMemberDao.selectById(memberId);
             if(ObjectUtil.isEmpty(dappMemberEntityExit)){
                 continue;
@@ -428,8 +415,8 @@
         if(BigDecimal.ZERO.compareTo(amountMemberTotal) >= 0){
             return;
         }
-        BigDecimal everyUsdt = multiplyDivideEveryUsdt.divide(amountMemberTotal,4,BigDecimal.ROUND_DOWN);
-        BigDecimal everyCoin = multiplyDivideEveryCoin.divide(amountMemberTotal,4,BigDecimal.ROUND_DOWN);
+        BigDecimal everyUsdt = multiplyDivideEveryUsdt.divide(amountMemberTotal,8,BigDecimal.ROUND_DOWN);
+        BigDecimal everyCoin = multiplyDivideEveryCoin.divide(amountMemberTotal,8,BigDecimal.ROUND_DOWN);
 
         Map<Long, List<DappAchieve>> collect = dappAchieves.stream().collect(Collectors.groupingBy(DappAchieve::getMemberId));
         Set<Long> set = collect.keySet(); // 得到所有key的集合
@@ -437,9 +424,12 @@
             //当前每个人生效中的质押总数
             BigDecimal amountMember = collect.get(memberId).stream().map(DappAchieve::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
             //这个人实际可以分到的数量USDT
-            BigDecimal multiplyUsdt = amountMember.multiply(everyUsdt).setScale(4, BigDecimal.ROUND_DOWN);
+            BigDecimal multiplyUsdt = amountMember.multiply(everyUsdt).setScale(8, BigDecimal.ROUND_DOWN);
+            if(BigDecimal.ZERO.compareTo(multiplyUsdt) >= 0){
+                continue;
+            }
             //这个人实际可以分到的数量COIN
-            BigDecimal multiplyCoin = amountMember.multiply(everyCoin).setScale(4, BigDecimal.ROUND_DOWN);
+            BigDecimal multiplyCoin = amountMember.multiply(everyCoin).setScale(8, BigDecimal.ROUND_DOWN);
 
             DappMemberEntity dappMemberEntityExit = dappMemberDao.selectById(memberId);
             if(ObjectUtil.isEmpty(dappMemberEntityExit)){

--
Gitblit v1.9.1