From b1306e841ae1ac59f54f69ea05f1baca350032e4 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 29 Aug 2022 14:32:49 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java |   28 ++++++++++++++++++++++++++--
 1 files changed, 26 insertions(+), 2 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 bb18c7b..ad5521a 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
@@ -3,6 +3,7 @@
 import cc.mrbird.febs.common.contants.AppContants;
 import cc.mrbird.febs.common.utils.LoginUserUtil;
 import cc.mrbird.febs.common.utils.RedisUtils;
+import cc.mrbird.febs.common.utils.SpringContextUtil;
 import cc.mrbird.febs.dapp.dto.SystemDto;
 import cc.mrbird.febs.dapp.entity.*;
 import cc.mrbird.febs.dapp.mapper.*;
@@ -11,6 +12,7 @@
 import cc.mrbird.febs.rabbit.producer.ChainProducer;
 import cc.mrbird.febs.tree.MatrixTree;
 import cc.mrbird.febs.tree.MemberNode;
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import lombok.RequiredArgsConstructor;
@@ -19,6 +21,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 
 /**
@@ -73,7 +76,13 @@
 
         // 在内存树(大树)中插入当前节点,并返回父节点
         MemberNode node = new MemberNode(member.getId(), member.getAddress(), member.getInviteId(), member.getRefererId());
+
         MatrixTree tree = MatrixTree.getInstance();
+        MemberNode exist = tree.getNode(member.getId());
+        if (exist != null) {
+            return;
+        }
+
         MemberNode parentNode = tree.addNode(node);
 
         // 创建该节点的矩阵
@@ -155,7 +164,7 @@
 
         if (parent != null) {
             BigDecimal directProfit = new BigDecimal("100").multiply(new BigDecimal("0.15"));
-            dappWalletService.updateWalletCoinWithLock(directProfit, parent.getId());
+            dappWalletService.updateWalletCoinWithLock(directProfit, parent.getId(), 1);
 
             DappFundFlowEntity fundFlow = new DappFundFlowEntity(parent.getId(), directProfit, 3, 2, null, null);
             dappFundFlowDao.insert(fundFlow);
@@ -166,7 +175,7 @@
             member.setOutCnt(member.getOutCnt() + 1);
             dappMemberDao.updateById(member);
 
-            dappWalletService.updateWalletCoinWithLock(new BigDecimal(190), member.getId());
+            dappWalletService.updateWalletCoinWithLock(new BigDecimal(190), member.getId(), 1);
 
             DappFundFlowEntity matrixProfitFlow = new DappFundFlowEntity(memberId, new BigDecimal("190"), 2, 2, null, null);
             dappFundFlowDao.insert(matrixProfitFlow);
@@ -199,6 +208,21 @@
         if (days < 7) {
             return;
         }
+        DappMineDataEntity mineDataEntity = dappSystemDao.selectMineDataForOne();
+
+        List<DappAchieveTreeEntity> list = dappAchieveTreeDao.selectLastCountTreeNode(500);
+        if (CollUtil.isNotEmpty(list)) {
+            BigDecimal preAmount = mineDataEntity.getSafePool().divide(new BigDecimal(list.size()), 2, RoundingMode.HALF_UP);
+
+            list.forEach(item -> {
+                dappWalletService.updateWalletCoinWithLock(preAmount, item.getMidNode(), 1);
+                DappFundFlowEntity flow = new DappFundFlowEntity(item.getMidNode(), preAmount, 8, 2, null, null);
+                dappFundFlowDao.insert(flow);
+            });
+        }
+
+        mineDataEntity.setSafePool(BigDecimal.ZERO);
+        dappSystemDao.updateMineData(mineDataEntity);
 
         dappAchieveTreeDao.updateNodeValidState();
         dappAchieveMemberTreeDao.emptyTable();

--
Gitblit v1.9.1