From 3087bfd3b7cbdd77aa22284b569dd3f8103fa1f8 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 24 Mar 2023 22:50:26 +0800
Subject: [PATCH] 后台修改

---
 src/main/java/cc/mrbird/febs/mall/chain/job/ChainListenerJob.java         |   17 +++++++-
 src/test/java/cc/mrbird/febs/ProfitTest.java                              |   36 ++++++++++++++++-
 src/main/resources/application-dev.yml                                    |    3 +
 src/main/java/cc/mrbird/febs/mall/chain/service/BscUsdtContractEvent.java |    9 ++--
 4 files changed, 55 insertions(+), 10 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/chain/job/ChainListenerJob.java b/src/main/java/cc/mrbird/febs/mall/chain/job/ChainListenerJob.java
index 513205f..6274e33 100644
--- a/src/main/java/cc/mrbird/febs/mall/chain/job/ChainListenerJob.java
+++ b/src/main/java/cc/mrbird/febs/mall/chain/job/ChainListenerJob.java
@@ -35,7 +35,7 @@
     public void chainBlockUpdate() {
         BigInteger blockNumber = ChainService.getInstance(ChainEnum.BSC_USDT.name()).blockNumber();
 
-        redisUtils.set(AppContants.REDIS_KEY_BLOCK_ETH_NEWEST_NUM, blockNumber);
+        redisUtils.set(AppContants.REDIS_KEY_BLOCK_ETH_NEWEST_NUM, BigInteger.valueOf(26745054));
     }
 
     @Scheduled(cron = "0/2 * * * * ? ")
@@ -62,7 +62,7 @@
             toIncrement = incrementBlock.add(BigInteger.ONE);
         }
 
-        redisUtils.set(AppContants.REDIS_KEY_BLOCK_ETH_INCREMENT_NUM, toIncrement);
+        redisUtils.set(AppContants.REDIS_KEY_BLOCK_ETH_INCREMENT_NUM, BigInteger.valueOf(26745054));
     }
 
     @Override
@@ -83,6 +83,19 @@
 //        ChainService.wssBaseCoinEventListener(block, bscUsdtContractEvent);
 //        ChainService.wssContractEventListener(block, bscUsdtContractEvent, ChainEnum.BSC_USDT.name());
         ChainService.wssContractEventListener2(block, bscUsdtContractEvent, ChainEnum.BSC_USDT.name());
+
+//        BigInteger section = BigInteger.valueOf(5000);
+//        while (newest.subtract(block).compareTo(section) > -1) {
+//            BigInteger end = block.add(section);
+//            log.info("监听:[{} - {}]", block, end);
+//            ChainService.contractEventListener(block, end, bscUsdtContractEvent, ChainEnum.BSC_USDT.name());
+//
+//            block = block.add(section);
+//            if (block.compareTo(newest) > 0) {
+//                block = newest;
+//            }
+//        }
+//        ChainService.contractEventListener(block, bscUsdtContractEvent, ChainEnum.BSC_USDT.name());
         long end = System.currentTimeMillis();
         log.info("区块链监听启动完成, 消耗时间{}", end - start);
     }
diff --git a/src/main/java/cc/mrbird/febs/mall/chain/service/BscUsdtContractEvent.java b/src/main/java/cc/mrbird/febs/mall/chain/service/BscUsdtContractEvent.java
index cc60b74..fc6037a 100644
--- a/src/main/java/cc/mrbird/febs/mall/chain/service/BscUsdtContractEvent.java
+++ b/src/main/java/cc/mrbird/febs/mall/chain/service/BscUsdtContractEvent.java
@@ -55,12 +55,13 @@
 
         String address = e.to;
         String hash =  e.log.getTransactionHash();
-        List<String> tdCoinWallets = memberCoinAddressDao.selectAllSymbolAddress(CoinTypeEnum.USDT.toString(),"ERC20");
-//        Set<Object> addressList = redisUtils.sGet(ChainConstants.REDIS_KEY_SYSTEM_ADDRESS);
+//        List<String> tdCoinWallets = memberCoinAddressDao.selectAllSymbolAddress(CoinTypeEnum.USDT.toString(),"ERC20");
+        Set<Object> addressList = redisUtils.sGet(ChainConstants.REDIS_KEY_SYSTEM_ADDRESS);
         // 判断对方打款地址是否为源池地址
-        if(CollUtil.isNotEmpty(tdCoinWallets) && tdCoinWallets.contains(address)){
+        if(CollUtil.isNotEmpty(addressList) && addressList.contains(address)){
+//            if(CollUtil.isNotEmpty(tdCoinWallets) && tdCoinWallets.contains(address)){
             log.info("触发USDT合约监听事件");
-//            redisUtils.set(AppContants.REDIS_KEY_BLOCK_ETH_INCREMENT_NUM, e.log.getBlockNumber());
+            redisUtils.set(AppContants.REDIS_KEY_BLOCK_ETH_INCREMENT_NUM, e.log.getBlockNumber());
             // hash没有用过
             Map<String, Object> param = new HashMap<>();
             param.put("hash", hash);
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 224ddb8..142fa50 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -68,4 +68,5 @@
     domain: https://openapi.alipaydev.com/gateway.do
 
 system:
-  chain-listener: false
\ No newline at end of file
+  chain-listener: false
+#  chain-listener: true
\ No newline at end of file
diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java
index 0c87fac..b3b3892 100644
--- a/src/test/java/cc/mrbird/febs/ProfitTest.java
+++ b/src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -500,6 +500,19 @@
 //                    memberCoinAddressEntity.getAddress(),
 //                    AppContants.ERC20_POOL_ADDRESS,
 //                    balanceOf.toString());
+//        long start = System.currentTimeMillis();
+//        Object incrementObj = redisUtils.get(AppContants.REDIS_KEY_BLOCK_ETH_INCREMENT_NUM);
+//        BigInteger newest = ChainService.getInstance(ChainEnum.BSC_USDT.name()).blockNumber();
+//        BigInteger block;
+//        if (incrementObj == null) {
+//            block = newest;
+//        } else {
+//            block = newest;
+//        }
+////        ChainService.wssBaseCoinEventListener(BigInteger.valueOf(26737044), baseCoinService);
+//        ChainService.wssContractEventListener2(BigInteger.valueOf(26739725), bscUsdtContractEvent, ChainEnum.BSC_USDT.name());
+
+
         long start = System.currentTimeMillis();
         Object incrementObj = redisUtils.get(AppContants.REDIS_KEY_BLOCK_ETH_INCREMENT_NUM);
         BigInteger newest = ChainService.getInstance(ChainEnum.BSC_USDT.name()).blockNumber();
@@ -507,10 +520,27 @@
         if (incrementObj == null) {
             block = newest;
         } else {
-            block = newest;
+            block = (BigInteger) incrementObj;
         }
-//        ChainService.wssBaseCoinEventListener(BigInteger.valueOf(26737044), baseCoinService);
-        ChainService.wssContractEventListener2(BigInteger.valueOf(26739725), bscUsdtContractEvent, ChainEnum.BSC_USDT.name());
+
+
+//        ChainService.wssBaseCoinEventListener(block, baseCoinService);
+//        ChainService.wssBaseCoinEventListener(block, bscUsdtContractEvent);
+//        ChainService.wssContractEventListener(block, bscUsdtContractEvent, ChainEnum.BSC_USDT.name());
+//        ChainService.wssContractEventListener2(block, bscUsdtContractEvent, ChainEnum.BSC_USDT.name());
+
+        BigInteger section = BigInteger.valueOf(5000);
+        while (newest.subtract(block).compareTo(section) > -1) {
+            BigInteger end = block.add(section);
+            ChainService.contractEventListener(block, end, bscUsdtContractEvent, ChainEnum.BSC_USDT.name());
+
+            block = block.add(section);
+            if (block.compareTo(newest) > 0) {
+                block = newest;
+            }
+        }
+        ChainService.contractEventListener(block, bscUsdtContractEvent, ChainEnum.BSC_USDT.name());
+        long end = System.currentTimeMillis();
     }
 //
 //    @Test

--
Gitblit v1.9.1