From a9ad17c465e0d485b8195dd1343813f550fcbc6f Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 26 Jul 2022 17:41:17 +0800
Subject: [PATCH] fix
---
src/main/java/cc/mrbird/febs/job/SystemTradeJob.java | 76 ++------------------------------------
1 files changed, 4 insertions(+), 72 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/job/SystemTradeJob.java b/src/main/java/cc/mrbird/febs/job/SystemTradeJob.java
index 9acd570..712972e 100644
--- a/src/main/java/cc/mrbird/febs/job/SystemTradeJob.java
+++ b/src/main/java/cc/mrbird/febs/job/SystemTradeJob.java
@@ -10,6 +10,7 @@
import cc.mrbird.febs.dapp.vo.RedisTransferPoolVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@@ -23,17 +24,11 @@
**/
@Slf4j
@Component
+@ConditionalOnProperty(prefix = "system", name = "trade-job", havingValue = "true")
public class SystemTradeJob {
@Autowired
- private RedisUtils redisUtils;
- @Autowired
private DappSystemService systemService;
- @Resource
- private DataDictionaryCustomMapper dataDictionaryCustomMapper;
-
- // 最低容量(百分比)
- private final BigDecimal volProp = new BigDecimal("0.5");
/**
* 中转池容量计算
@@ -47,66 +42,7 @@
@Scheduled(cron = "0 0 0 * * ?")
public void transferPoolVol() {
log.info("中转池容量");
-
- // 源池初始化容量
- DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.DIC_TYPE_SYSTEM_SETTING, AppContants.DIC_VALUE_SYSTEM_SOURCE_POOL_VOL);
- BigDecimal basicVol = new BigDecimal(dic.getValue());
-
- Object o = redisUtils.get(AppContants.REDIS_KEY_TRANSFER_POOL_VOL);
- if (o == null) {
- RedisTransferPoolVo transferPool= new RedisTransferPoolVo();
- BigDecimal total = basicVol.multiply(volProp.divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP));
- transferPool.setTodayVol(total);
- transferPool.setTodayProp(volProp);
- transferPool.setFinishCnt(0);
- transferPool.setFinishCnt(0);
- redisUtils.set(AppContants.REDIS_KEY_TRANSFER_POOL_VOL, transferPool);
- redisUtils.set(AppContants.REDIS_KEY_TRANSFER_POOL_VOL_REMAIN, total);
-
- redisUtils.set(AppContants.REDIS_KEY_MINE_TRANSFER_POOL_TRADE_CNT, BigDecimal.ZERO);
- return;
- }
-
- RedisTransferPoolVo transferPool = (RedisTransferPoolVo) o;
- BigDecimal remain = (BigDecimal) redisUtils.get(AppContants.REDIS_KEY_TRANSFER_POOL_VOL_REMAIN);
-
- // 设置当日成交量
- redisUtils.set(AppContants.REDIS_KEY_MINE_TRANSFER_POOL_TRADE_CNT, transferPool.getTodayVol().subtract(remain));
-
- // 全卖了
- if (remain.compareTo(BigDecimal.ZERO) == 0) {
- int finishCnt = transferPool.getFinishCnt() + 1;
- BigDecimal targetProp = transferPool.getTodayProp();
- if (finishCnt == 5) {
- targetProp = transferPool.getTodayVol().add(volProp);
- transferPool.setTodayProp(targetProp);
- transferPool.setFinishCnt(0);
- } else {
- transferPool.setFinishCnt(finishCnt);
- }
-
- BigDecimal total = basicVol.multiply(targetProp.divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP));
- transferPool.setTodayVol(total);
- transferPool.setUnFinishCnt(0);
- redisUtils.set(AppContants.REDIS_KEY_TRANSFER_POOL_VOL_REMAIN, total);
-
- } else {
- int unFinishCnt = transferPool.getUnFinishCnt() + 1;
- BigDecimal targetProp = transferPool.getTodayProp();
- if (unFinishCnt >= 3) {
- targetProp = transferPool.getTodayProp().compareTo(volProp) == 0 ? volProp : transferPool.getTodayProp().subtract(volProp);
- transferPool.setTodayProp(targetProp);
- transferPool.setUnFinishCnt(0);
- } else {
- transferPool.setUnFinishCnt(unFinishCnt);
- }
- BigDecimal aa = targetProp.divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP);
- BigDecimal total = basicVol.multiply(aa);
- transferPool.setTodayVol(total);
- redisUtils.set(AppContants.REDIS_KEY_TRANSFER_POOL_VOL_REMAIN, total);
- }
-
- redisUtils.set(AppContants.REDIS_KEY_TRANSFER_POOL_VOL, transferPool);
+ systemService.transferPoolSetting();
}
/**
@@ -117,11 +53,7 @@
@Scheduled(cron = "0 0 0 * * ?")
public void sourcePoolUsdtOutLimit() {
log.info("源池每日出U限制");
- BigDecimal sourceBalance = ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOf(ChainEnum.BSC_USDT_SOURCE.getAddress());
-
- BigDecimal total = sourceBalance.multiply(BigDecimal.valueOf(0.1)).setScale(4, RoundingMode.HALF_DOWN);
- redisUtils.set(AppContants.REDIS_KEY_USDT_OUT_LIMIT, total);
- redisUtils.set(AppContants.REDIS_KEY_USDT_OUT_LIMIT_REMAIN, total);
+ systemService.sourcePoolUsdtOutLimitSetting();
}
--
Gitblit v1.9.1