From 6750bad09a6c2f88bc48274efc84c082fde44a2b Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 20 May 2024 14:05:45 +0800
Subject: [PATCH] 滑点监控

---
 src/main/java/cc/mrbird/febs/job/ChainListenerJob.java                   |   32 ++++++++++++++++++++++++++++----
 src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java          |    4 +---
 src/main/java/cc/mrbird/febs/job/ChainHuadianRunner.java                 |    2 +-
 src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java |    6 ++++--
 src/main/java/cc/mrbird/febs/common/contants/AppContants.java            |    2 ++
 src/main/java/cc/mrbird/febs/dapp/service/AsyncCjService.java            |    2 +-
 6 files changed, 37 insertions(+), 11 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/common/contants/AppContants.java b/src/main/java/cc/mrbird/febs/common/contants/AppContants.java
index d36828b..c85e124 100644
--- a/src/main/java/cc/mrbird/febs/common/contants/AppContants.java
+++ b/src/main/java/cc/mrbird/febs/common/contants/AppContants.java
@@ -141,7 +141,9 @@
     public static final String REDIS_KEY_BLOCK_COIN_NUM = "BLOCK_COIN_NUM";
     public static final String REDIS_KEY_BLOCK_USDT_NUM = "BLOCK_USDT_NUM";
     public static final String REDIS_KEY_BLOCK_ETH_NEWEST_NUM = "BLOCK_ETH_NEWEST_NUM";
+    public static final String REDIS_KEY_BLOCK_ETH_NEWEST_NUM_HUA_DIAN = "BLOCK_ETH_NEWEST_NUM_HUA_DIAN";
     public static final String REDIS_KEY_BLOCK_ETH_INCREMENT_NUM = "BLOCK_ETH_INCREMENT_NUM";
+    public static final String REDIS_KEY_BLOCK_ETH_INCREMENT_NUM_HUA_DIAN = "BLOCK_ETH_INCREMENT_NUM_HUA_DIAN";
 
     public static final String REDIS_KEY_MAKE_POOL_CNT = "MAKE_POOL_CNT";
 
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/AsyncCjService.java b/src/main/java/cc/mrbird/febs/dapp/service/AsyncCjService.java
index ceb10e8..14cbfa1 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/AsyncCjService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/AsyncCjService.java
@@ -25,7 +25,7 @@
     @Async(FebsConstant.ASYNC_POOL)
     void insertTeamPerk(Long flowId, Long achieveId);
 
-    @Async(FebsConstant.ASYNC_POOL)
+//    @Async(FebsConstant.ASYNC_POOL)
     void tradeProfitDistribute();
 
     @Async(FebsConstant.ASYNC_POOL)
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 47fe645..7fc4321 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
@@ -272,7 +272,7 @@
         BigDecimal multiply = coinPrice.multiply(amount).multiply(new BigDecimal("0.97")).setScale(8,BigDecimal.ROUND_DOWN);
         //更新这个时间段的滑点数量
         redisUtils.set(DataDicEnum.GFA_HUA_DIAN_WALLET_USDT_AMOUNT.getValue(), multiply, 0);
-
+        log.info("滑点奖励:"+amount);
         //生成一条记录
         DappHdRecord dappHdRecordAdd = new DappHdRecord();
         dappHdRecordAdd.setPrice(coinPrice);
@@ -281,6 +281,8 @@
         dappHdRecordAdd.setCoinAmount(BigDecimal.ZERO);
         dappHdRecordAdd.setTransactionHash(transactionHash);
         dappHdRecordMapper.insert(dappHdRecordAdd);
-        dappSystemService.tradeProfitDistribute(1L);
+        chainProducer.sendDitribProfit(1L);
+
+//        dappSystemService.tradeProfitDistribute(1L);
     }
 }
diff --git a/src/main/java/cc/mrbird/febs/job/ChainHuadianRunner.java b/src/main/java/cc/mrbird/febs/job/ChainHuadianRunner.java
index 47290ec..e6731a3 100644
--- a/src/main/java/cc/mrbird/febs/job/ChainHuadianRunner.java
+++ b/src/main/java/cc/mrbird/febs/job/ChainHuadianRunner.java
@@ -31,7 +31,7 @@
         long start = System.currentTimeMillis();
         log.info("区块链滑点开始启动");
 
-        Object incrementObj = redisUtils.get(AppContants.REDIS_KEY_BLOCK_ETH_INCREMENT_NUM);
+        Object incrementObj = redisUtils.get(AppContants.REDIS_KEY_BLOCK_ETH_INCREMENT_NUM_HUA_DIAN);
         BigInteger newest = ChainService.getInstance(ChainEnum.BSC_GFA.name()).blockNumber();
 //        Object incrementObj = BigInteger.valueOf(39780699);
 //        BigInteger newest = BigInteger.valueOf(39780739);
diff --git a/src/main/java/cc/mrbird/febs/job/ChainListenerJob.java b/src/main/java/cc/mrbird/febs/job/ChainListenerJob.java
index 504aa4b..476209e 100644
--- a/src/main/java/cc/mrbird/febs/job/ChainListenerJob.java
+++ b/src/main/java/cc/mrbird/febs/job/ChainListenerJob.java
@@ -7,14 +7,10 @@
 import cc.mrbird.febs.dapp.chain.ContractEventService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.ApplicationArguments;
-import org.springframework.boot.ApplicationRunner;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
-import javax.annotation.PostConstruct;
 import java.math.BigInteger;
 
 @Slf4j
@@ -38,6 +34,7 @@
         BigInteger blockNumber = ChainService.getInstance(ChainEnum.BSC_GFA.name()).blockNumber();
 
         redisUtils.set(AppContants.REDIS_KEY_BLOCK_ETH_NEWEST_NUM, blockNumber);
+        redisUtils.set(AppContants.REDIS_KEY_BLOCK_ETH_NEWEST_NUM_HUA_DIAN, blockNumber);
     }
 
     @Scheduled(cron = "0/2 * * * * ? ")
@@ -67,6 +64,33 @@
         redisUtils.set(AppContants.REDIS_KEY_BLOCK_ETH_INCREMENT_NUM, toIncrement);
     }
 
+    @Scheduled(cron = "0/2 * * * * ? ")
+    public void chainIncrementBlockHuaDian() {
+        Object newestBlockObj = redisUtils.get(AppContants.REDIS_KEY_BLOCK_ETH_NEWEST_NUM_HUA_DIAN);
+        BigInteger newestBlock;
+        if (newestBlockObj == null) {
+            newestBlock = ChainService.getInstance(ChainEnum.BSC_GFA.name()).blockNumber();
+        } else {
+            newestBlock = (BigInteger) newestBlockObj;
+        }
+
+        Object incrementObj = redisUtils.get(AppContants.REDIS_KEY_BLOCK_ETH_INCREMENT_NUM_HUA_DIAN);
+        BigInteger toIncrement;
+        if (incrementObj == null) {
+            toIncrement = newestBlock;
+        } else {
+            BigInteger incrementBlock = (BigInteger) incrementObj;
+
+            // 最新区块小于增加区块
+            if (newestBlock.compareTo(incrementBlock) <= 0) {
+                return;
+            }
+            toIncrement = incrementBlock.add(BigInteger.ONE);
+        }
+
+        redisUtils.set(AppContants.REDIS_KEY_BLOCK_ETH_INCREMENT_NUM_HUA_DIAN, toIncrement);
+    }
+
 //    @Override
 //    public void run(ApplicationArguments args) throws Exception {
 //        long start = System.currentTimeMillis();
diff --git a/src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java b/src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java
index 5b78de5..85e59e2 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java
@@ -2,9 +2,7 @@
 
 import cc.mrbird.febs.dapp.service.DappSystemService;
 import cc.mrbird.febs.rabbit.QueueConstants;
-import com.rabbitmq.client.Channel;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.amqp.core.Message;
 import org.springframework.amqp.rabbit.annotation.RabbitListener;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -31,7 +29,7 @@
     @RabbitListener(queues = QueueConstants.QUEUE_GFA_ZY_HUA_DIAN)
     public void distrbProfit(Long id) {
         log.info("收到滑点分配消息:{}", id);
-//        dappSystemService.tradeProfitDistribute(id);
+        dappSystemService.tradeProfitDistribute(id);
     }
 
     @RabbitListener(queues = QueueConstants.USER_BUY_REWARD)

--
Gitblit v1.9.1