From 03ca8115643a1ea3e0179375b4f5cfd8bb809cab Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 29 Aug 2022 16:35:51 +0800
Subject: [PATCH] fix
---
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java | 93 +++++++++++++++++++++++++++-------------------
1 files changed, 55 insertions(+), 38 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 1d60942..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,45 +3,25 @@
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.dapp.chain.ChainEnum;
-import cc.mrbird.febs.dapp.chain.ChainService;
-import cc.mrbird.febs.dapp.chain.ContractChainService;
+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.enumerate.CardPeriod;
import cc.mrbird.febs.dapp.mapper.*;
import cc.mrbird.febs.dapp.service.DappSystemService;
import cc.mrbird.febs.dapp.service.DappWalletService;
-import cc.mrbird.febs.dapp.utils.OnlineTransferUtil;
-import cc.mrbird.febs.dapp.vo.RedisTransferPoolVo;
-import cc.mrbird.febs.dapp.vo.SlipSettingVo;
-import cc.mrbird.febs.job.SystemTradeJob;
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.DateTime;
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 com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.jsoup.Jsoup;
-import org.jsoup.nodes.Document;
-import org.jsoup.nodes.Element;
-import org.jsoup.select.Elements;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.io.IOException;
import java.math.BigDecimal;
-import java.math.BigInteger;
import java.math.RoundingMode;
-import java.net.MalformedURLException;
-import java.net.URL;
import java.util.*;
/**
@@ -54,16 +34,9 @@
public class DappSystemServiceImpl implements DappSystemService {
private final DappSystemDao dappSystemDao;
- private final DappReturnRatioDao dappReturnRatioDao;
private final RedisUtils redisUtils;
private final DappFundFlowDao dappFundFlowDao;
private final DappMemberDao dappMemberDao;
- private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
- private final DappOnlineTransferDao dappOnlineTransferDao;
- private final ChainProducer chainProducer;
- private final DappSymbolDailyPriceMapper dappSymbolDailyPriceMapper;
- private final DappMemberBoxRecordMapper dappMemberBoxRecordMapper;
- private final DappWalletCoinDao dappWalletCoinDao;
private final DappAchieveTreeDao dappAchieveTreeDao;
private final DappAchieveMemberTreeDao dappAchieveMemberTreeDao;
@@ -79,25 +52,37 @@
return system;
}
- // 最低容量(百分比)
- private final BigDecimal volProp = new BigDecimal("2");
- // 每日增/减百分比
- private final BigDecimal changeProp = new BigDecimal("1");
-
@Override
@Transactional(rollbackFor = Exception.class)
public synchronized void achieveTree(Long memberId) {
DappMemberEntity member = dappMemberDao.selectById(memberId);
+ int batchNo = 0;
+ DappAchieveTreeEntity newestTreeNode = dappAchieveTreeDao.selectNewestTreeNode();
+ if (newestTreeNode != null) {
+ if (newestTreeNode.getValidState() == 2) {
+ batchNo = newestTreeNode.getBatchNo() + 1;
+ } else {
+ batchNo = newestTreeNode.getBatchNo();
+ }
+ }
+
// 在大树中,插入当前节点
DappAchieveTreeEntity achieveTree = new DappAchieveTreeEntity();
achieveTree.setMidNode(memberId);
achieveTree.setValidState(1);
+ achieveTree.setBatchNo(batchNo);
dappAchieveTreeDao.insert(achieveTree);
// 在内存树(大树)中插入当前节点,并返回父节点
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);
// 创建该节点的矩阵
@@ -177,12 +162,9 @@
DappMemberEntity member = dappMemberDao.selectById(memberId);
DappMemberEntity parent = dappMemberDao.selectMemberInfoByInviteId(member.getRefererId());
- member.setOutCnt(member.getOutCnt() + 1);
- dappMemberDao.updateById(member);
-
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);
@@ -190,7 +172,10 @@
// 如果是复投的,则需奖励
if (isReIn == 1) {
- dappWalletService.updateWalletCoinWithLock(new BigDecimal(190), member.getId());
+ member.setOutCnt(member.getOutCnt() + 1);
+ dappMemberDao.updateById(member);
+
+ dappWalletService.updateWalletCoinWithLock(new BigDecimal(190), member.getId(), 1);
DappFundFlowEntity matrixProfitFlow = new DappFundFlowEntity(memberId, new BigDecimal("190"), 2, 2, null, null);
dappFundFlowDao.insert(matrixProfitFlow);
@@ -211,4 +196,36 @@
public void tfcNewPrice(String data) {
redisUtils.set(AppContants.REDIS_KEY_TFC_NEW_PRICE, new BigDecimal(data));
}
+
+ @Override
+ public void resetMatrix() {
+ DappAchieveTreeEntity node = dappAchieveTreeDao.selectNewestTreeNode();
+ if (node.getValidState() == 2) {
+ return;
+ }
+
+ long days = DateUtil.between(node.getCreateTime(), new Date(), DateUnit.DAY);
+ 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();
+ dappMemberDao.updateMemberActive();
+ }
}
--
Gitblit v1.9.1