From 400410b7fec6af004920ccb77708ba10f6a833a7 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 14 Jun 2022 18:25:21 +0800
Subject: [PATCH] fix chain bug
---
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java | 92 ++++++++++++++++++++++-
src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java | 6 +
src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java | 2
src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java | 4 +
src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java | 4 +
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java | 2
src/main/java/cc/mrbird/febs/job/SystemTradeJob.java | 86 ---------------------
src/main/resources/application-dev.yml | 2
8 files changed, 108 insertions(+), 90 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java b/src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java
index 49b34a3..e13d208 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java
+++ b/src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java
@@ -23,7 +23,7 @@
* @date 2022-03-17
**/
@Slf4j
-@EncryptEnable
+//@EncryptEnable
@RequiredArgsConstructor
@CrossOrigin("*")
@RestController
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java b/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
index 5fc854c..e33de0c 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
@@ -35,4 +35,8 @@
void userBuyReward(Long id);
void startSystem();
+
+ void transferPoolSetting();
+
+ void sourcePoolUsdtOutLimitSetting();
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java
index 0e51a29..273d30f 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java
@@ -154,6 +154,10 @@
}
OnlineTransferUtil.addTransferRecord(e.from, e.to, amount, e.log.getTransactionHash(), DappTransferRecordEntity.TRANSFER_SOURCE_FLAG_APPLICATION, AppContants.SYMBOL_COIN);
+ if (fundFlow.getAmount().add(fundFlow.getFee()).compareTo(amount) != 0) {
+ return;
+ }
+
BigDecimal newPrice = fundFlow.getNewestPrice();
BigDecimal transferAmount = amount.multiply(newPrice);
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java
index 2a9b7e2..c8be0a5 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java
@@ -124,6 +124,12 @@
OnlineTransferUtil.addTransferRecord(e.from, e.to, amount, e.log.getTransactionHash(), DappTransferRecordEntity.TRANSFER_SOURCE_FLAG_APPLICATION, "USDT");
+
+ BigDecimal realCoin = amount.divide(fundFlow.getNewestPrice(), decimals, RoundingMode.HALF_UP);
+ if (fundFlow.getAmount().subtract(new BigDecimal("0.1")).compareTo(realCoin) > 0) {
+ fundFlow.setAmount(realCoin);
+ }
+
// 更改状态为已同步
fundFlow.setStatus(2);
fundFlow.setTargetAmount(amount);
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 79afe6f..c73c96b 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
@@ -406,8 +406,6 @@
chainProducer.sendOnlineTransfer(JSONObject.toJSONString(map));
}
- @Autowired
- private SystemTradeJob systemTradeJob;
@Override
public void startSystem() {
@@ -416,11 +414,97 @@
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
- systemTradeJob.transferPoolVol();
- systemTradeJob.sourcePoolUsdtOutLimit();
+ transferPoolSetting();
+ sourcePoolUsdtOutLimitSetting();
}
});
thread.start();
}
+
+ // 最低容量(百分比)
+ private final BigDecimal volProp = new BigDecimal("0.5");
+
+ @Override
+ public void transferPoolSetting() {
+ String hasStart = redisUtils.getString(AppContants.SYSTEM_START_FLAG);
+ if (!"start".equals(hasStart)) {
+ log.info("系统未启动");
+ return;
+ }
+
+ // 源池初始化容量
+ 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);
+ }
+
+ @Override
+ public void sourcePoolUsdtOutLimitSetting() {
+ String hasStart = redisUtils.getString(AppContants.SYSTEM_START_FLAG);
+ if (!"start".equals(hasStart)) {
+ log.info("系统未启动");
+ return;
+ }
+ 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);
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
index 11c4692..34fcf4a 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -144,6 +144,8 @@
dappFundFlowEntity.setType(recordInPageDto.getType());
}
dappFundFlowEntity.setMemberId(member.getId());
+ dappFundFlowEntity.setStatus(2);
+
IPage<DappFundFlowEntity> records = dappFundFlowDao.selectInPage(page, dappFundFlowEntity);
return records.getRecords();
}
diff --git a/src/main/java/cc/mrbird/febs/job/SystemTradeJob.java b/src/main/java/cc/mrbird/febs/job/SystemTradeJob.java
index 4ddfe2e..712972e 100644
--- a/src/main/java/cc/mrbird/febs/job/SystemTradeJob.java
+++ b/src/main/java/cc/mrbird/febs/job/SystemTradeJob.java
@@ -28,14 +28,7 @@
public class SystemTradeJob {
@Autowired
- private RedisUtils redisUtils;
- @Autowired
private DappSystemService systemService;
- @Resource
- private DataDictionaryCustomMapper dataDictionaryCustomMapper;
-
- // 最低容量(百分比)
- private final BigDecimal volProp = new BigDecimal("0.5");
/**
* 中转池容量计算
@@ -49,72 +42,7 @@
@Scheduled(cron = "0 0 0 * * ?")
public void transferPoolVol() {
log.info("中转池容量");
-
- String hasStart = redisUtils.getString(AppContants.SYSTEM_START_FLAG);
- if (!"start".equals(hasStart)) {
- log.info("系统未启动");
- return;
- }
-
- // 源池初始化容量
- 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();
}
/**
@@ -125,17 +53,7 @@
@Scheduled(cron = "0 0 0 * * ?")
public void sourcePoolUsdtOutLimit() {
log.info("源池每日出U限制");
-
- String hasStart = redisUtils.getString(AppContants.SYSTEM_START_FLAG);
- if (!"start".equals(hasStart)) {
- log.info("系统未启动");
- return;
- }
- 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();
}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 371e32c..7638e54 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -51,4 +51,4 @@
system:
online-transfer: false
chain-listener: false
- trade-job: true
\ No newline at end of file
+ trade-job: false
\ No newline at end of file
--
Gitblit v1.9.1