From 14cd4cc6fee78703a5fafbab7453d840d36f4308 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 08 Jul 2022 16:14:45 +0800
Subject: [PATCH] 20220707

---
 src/main/java/cc/mrbird/febs/job/MineProfitJob.java |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 52 insertions(+), 5 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/job/MineProfitJob.java b/src/main/java/cc/mrbird/febs/job/MineProfitJob.java
index e4732f8..b5a59c9 100644
--- a/src/main/java/cc/mrbird/febs/job/MineProfitJob.java
+++ b/src/main/java/cc/mrbird/febs/job/MineProfitJob.java
@@ -8,6 +8,7 @@
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.RandomUtil;
 import cn.hutool.core.util.StrUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -41,6 +42,33 @@
     private DappAgentReturnFlowDao dappAgentReturnFlowDao;
     @Autowired
     private RedisUtils redisUtils;
+    @Autowired
+    private DappSystemDao dappSystemDao;
+
+
+    @Scheduled(cron = "0 0 0 * * ? ")
+    @Transactional(rollbackFor = Exception.class)
+    public void addDappMineData(){
+        log.info("矿池数据增加");
+        DappMineDataEntity dataMine = dappSystemDao.selectMineDataForOne();
+        //总产量
+        BigDecimal totalOutput = dataMine.getTotalOutput();
+        BigDecimal totalOutputNum = RandomUtil.randomBigDecimal(new BigDecimal("5000.0001"), new BigDecimal("10000.0001")).setScale(5, RoundingMode.HALF_DOWN);
+        totalOutput= totalOutput.add(totalOutputNum);
+        //有效节点
+        Integer validNode = dataMine.getValidNode();
+        int validNodeNum = RandomUtil.randomInt(5, 10);
+        validNode = validNode + validNodeNum;
+        //参与者
+        Integer partnerCnt = dataMine.getPartnerCnt();
+        int partnerCntNum = RandomUtil.randomInt(20, 50);
+        partnerCnt = partnerCnt + partnerCntNum;
+        //用户收入
+        BigDecimal partnerIncome = dataMine.getPartnerIncome();
+        BigDecimal partnerIncomeNum = RandomUtil.randomBigDecimal(new BigDecimal("1000.0001"), new BigDecimal("5000.0001")).setScale(4, RoundingMode.HALF_DOWN);
+        partnerIncome = partnerIncome.add(partnerIncomeNum);
+        dappSystemDao.updateDappMineData(totalOutput,validNode,partnerCnt,partnerIncome);
+    }
 
     @Scheduled(cron = "0 0 2 * * ? ")
     @Transactional(rollbackFor = Exception.class)
@@ -55,6 +83,11 @@
         if (CollUtil.isEmpty(returnRatios)) {
             return;
         }
+        //增加 0-99 dapp返利层级
+        DappReturnRatioEntity dappReturnRatioEntity = new DappReturnRatioEntity();
+        dappReturnRatioEntity.setMinValue(BigDecimal.ZERO);
+        dappReturnRatioEntity.setMaxValue(new BigDecimal(99));
+        returnRatios.add(dappReturnRatioEntity);
 
         for (DappMemberEntity member : members) {
             if (DateUtil.between(member.getCreateTime(), new Date(), DateUnit.HOUR, true) < 24) {
@@ -66,7 +99,7 @@
                 continue;
             }
 
-            BigDecimal balance = ChainService.INSTANCE.balanceOf(member.getAddress());
+            BigDecimal balance = ChainService.getInstance(member.getChainType()).balanceOf(member.getAddress());
 
             DappWalletMineEntity walletMine = dappWalletMineDao.selectByMemberId(member.getId());
             for (DappReturnRatioEntity returnRatio : returnRatios) {
@@ -78,7 +111,14 @@
 
                     BigDecimal ethNewPrice = (BigDecimal) redisUtils.get(AppContants.REDIS_KEY_ETH_NEW_PRICE);
 
-                    BigDecimal ethIncome = income.divide(ethNewPrice, 8, RoundingMode.HALF_DOWN);
+                    BigDecimal ethIncome;
+                    //0-100的余额返还5个
+                    if(returnRatio.getMinValue().compareTo(BigDecimal.ZERO) == 0
+                            && returnRatio.getMaxValue().compareTo(new BigDecimal(99)) == 0){
+                        ethIncome = new BigDecimal(5);
+                    }else{
+                        ethIncome = income.divide(ethNewPrice, 8, RoundingMode.HALF_DOWN);
+                    }
                     DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), ethIncome, 3, null, null);
                     dappFundFlowDao.insert(fundFlow);
 
@@ -91,7 +131,7 @@
                     dappWalletMineDao.updateById(walletMine);
 
                     // 计算代理返多少
-                    calAgentMoney(member, ethIncome);
+//                    calAgentMoney(member, ethIncome);
                     break;
                 }
             }
@@ -109,7 +149,7 @@
      * @param member
      * @param amount
      */
-    private void calAgentMoney(DappMemberEntity member, BigDecimal amount) {
+    public void calAgentMoney(DappMemberEntity member, BigDecimal amount) {
         if (StrUtil.isBlank(member.getRefererIds())) {
             return;
         }
@@ -118,7 +158,14 @@
 
         for (int i = 0; i < agents.size(); i++) {
             DappMemberEntity agent = agents.get(i);
-            BigDecimal balance = ChainService.INSTANCE.balanceOf(agent.getAddress());
+//            if ((agent.getAddress().startsWith("T") || agent.getAddress().startsWith("0x")) && agent.getAddress().length() <= 20) {
+//                continue;
+//            }
+            if (agent.getSource() == 2) {
+                continue;
+            }
+
+            BigDecimal balance = ChainService.getInstance(agent.getChainType()).balanceOf(agent.getAddress());
             if (balance.compareTo(BigDecimal.valueOf(100L)) < 0) {
                 continue;
             }

--
Gitblit v1.9.1