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