From 9d8b78c80f98f54147d63af2e9310b8a99bcebf3 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 13 Jun 2022 17:53:37 +0800
Subject: [PATCH] fix
---
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 50 insertions(+), 1 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 a1d13b9..576c2fa 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
@@ -13,13 +13,18 @@
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 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.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -108,13 +113,17 @@
ContractChainService instance = ChainService.getInstance(ChainEnum.BSC_TFC.name());
BigDecimal balance = instance.balanceOf(member.getAddress());
+
Object o = redisUtils.get(AppContants.REDIS_KEY_COIN_REMAIN + member.getAddress());
BigDecimal coinTotal = balance.multiply(BigDecimal.valueOf(0.3)).setScale(instance.decimals(), RoundingMode.HALF_DOWN);
BigDecimal remain;
if (o == null) {
+ DateTime tomorrow = DateUtil.beginOfDay(DateUtil.tomorrow());
+ long time = DateUtil.between(new Date(), tomorrow, DateUnit.SECOND, true);
+
remain = coinTotal;
- redisUtils.set(AppContants.REDIS_KEY_COIN_REMAIN + member.getAddress(), remain);
+ redisUtils.set(AppContants.REDIS_KEY_COIN_REMAIN + member.getAddress(), remain, time);
} else {
remain = (BigDecimal) o;
}
@@ -304,10 +313,32 @@
dappFundFlowDao.updateById(fundFlow);
}
}
+
+ // 判断系统是否启动,如满足条件则启动系统
+ String hasStart = redisUtils.getString(AppContants.SYSTEM_START_FLAG);
+ if (!"start".equals(hasStart)) {
+ DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.DIC_TYPE_SYSTEM_SETTING, AppContants.DIC_VALUE_SYSTEM_START_TARGET);
+ BigDecimal target = new BigDecimal(dic.getValue());
+
+ // 若源池中的USDT达到或超过8万U,则启动整个系统
+ BigDecimal balance = ChainService.getInstance(ChainEnum.BSC_USDT_SOURCE.name()).balanceOf(ChainEnum.BSC_USDT_SOURCE.getAddress());
+ if (target.compareTo(balance) < 1) {
+ redisUtils.set(AppContants.SYSTEM_START_FLAG, "start");
+
+ // 启动系统
+ startSystem();
+ }
+ }
}
@Override
public void userBuyReward(Long id) {
+ // 系统未启动不参与
+ String hasStart = redisUtils.getString(AppContants.SYSTEM_START_FLAG);
+ if (!"start".equals(hasStart)) {
+ return;
+ }
+
DappFundFlowEntity fundFlow = dappFundFlowDao.selectById(id);
DappMemberEntity member = dappMemberDao.selectById(fundFlow.getMemberId());
@@ -335,4 +366,22 @@
map.put("type", "batch");
chainProducer.sendOnlineTransfer(JSONObject.toJSONString(map));
}
+
+ @Autowired
+ private SystemTradeJob systemTradeJob;
+
+ @Override
+ public void startSystem() {
+ log.info("启动系统");
+
+ Thread thread = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ systemTradeJob.transferPoolVol();
+ systemTradeJob.sourcePoolUsdtOutLimit();
+ }
+ });
+
+ thread.start();
+ }
}
--
Gitblit v1.9.1