fix
Helius
2022-08-28 5a26ae55ee250050543db0948a6f22616d520d45
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);
        // 创建该节点的矩阵
@@ -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());
                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();