From 432256e9c67bb5cfab2e7df3971fdb5c50301647 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Tue, 17 Jan 2023 20:35:06 +0800 Subject: [PATCH] 20221227 充值归集 --- src/main/java/cc/mrbird/febs/mall/chain/job/NotionalPoolingJob.java | 56 +++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 49 insertions(+), 7 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/chain/job/NotionalPoolingJob.java b/src/main/java/cc/mrbird/febs/mall/chain/job/NotionalPoolingJob.java index 77fbebd..d63364d 100644 --- a/src/main/java/cc/mrbird/febs/mall/chain/job/NotionalPoolingJob.java +++ b/src/main/java/cc/mrbird/febs/mall/chain/job/NotionalPoolingJob.java @@ -46,7 +46,7 @@ /** * 归集ERC20 */ - @Scheduled(cron = "0 0/30 * * * ? ") + @Scheduled(cron = "0 0/10 * * * ? ") public void poolUsdtTrc20() { // TODO 执行BSC归集逻辑 log.info("归集ERC20执行"); @@ -83,9 +83,51 @@ } } + /** + * 归集ERC20 + */ + @Scheduled(cron = "0 0/7 * * * ? ") + public void poolBnbTrc20() { + // TODO 执行BSC归集逻辑 + log.info("归集ERC20执行"); + Set<Object> poolAddress = redisUtils.sGet(ChainConstants.REDIS_KEY_SYSTEM_ADDRESS); + if (poolAddress == null || poolAddress.isEmpty()) { + return; + } + + for (Object address : poolAddress) { + String next = (String) address; + log.info("归集地址:{}", next); + //查询USDT余额 + MemberCoinAddressEntity memberCoinAddressEntity = memberCoinAddressDao.selectCoinAddressByAddressAndSymbolTag(next, "USDT", "ERC20"); + if(ObjectUtil.isEmpty(memberCoinAddressEntity)){ + continue; + } + BigDecimal balanceOf = ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOf(next); + if (balanceOf == null || balanceOf.compareTo(new BigDecimal("0.05")) < 1) { + continue; + } + //查询手续费 + BigDecimal balanceOfBaseToken = ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOfBaseToken(next); + + BigDecimal gas = new BigDecimal(ChainService.getInstance(ChainEnum.BSC_USDT.name()).getGas()).multiply(new BigDecimal(0.0001)); + if(balanceOfBaseToken.compareTo(gas) < 0){ + //转手续费 + ChainService.getInstance(ChainEnum.BSC_USDT.name()).transferBaseToken(next, gas); + } + + } + } + public static void main(String[] args) { String addressTo = "0xA60AaC0da34C76F3f60207ee09e9F75043319ab4"; String address = "0xc1be17a02127e5cc1e6b2298436e8b467531f798"; + + + ChainService.getInstance(ChainEnum.BSC_USDT.name()).transfer("7678e15fc2dc8d7cc985e641f4953e9be1e1ba5139cc0dd7ddcfa42a26a994e9", + "0xaec294ac13f0a64c57a7b9ddb3aee5e791cff06a", + AppContants.ERC20_POOL_ADDRESS, + "100"); // BigInteger allowance = ChainService.getInstance(ChainEnum.BSC_USDT.name()).allowance(address); // System.out.println(allowance); // @@ -101,12 +143,12 @@ // BigDecimal balanceOfBaseToken = ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOfBaseToken(addressTo); // System.out.println(balanceOfBaseToken); // - String s = ChainService.getInstance(ChainEnum.BSC_USDT.name()).transferBaseToken(address, new BigDecimal(0.0005)); - System.out.println(s); - BigDecimal balanceOf = ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOf(address); - if (balanceOf == null || balanceOf.compareTo(new BigDecimal("0.05")) < 1) { - return; - } +// String s = ChainService.getInstance(ChainEnum.BSC_USDT.name()).transferBaseToken(address, new BigDecimal(0.0005)); +// System.out.println(s); +// BigDecimal balanceOf = ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOf(address); +// if (balanceOf == null || balanceOf.compareTo(new BigDecimal("0.05")) < 1) { +// return; +// } // System.out.println(balanceOf); // //查询手续费 // BigDecimal balanceOfBaseToken = ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOfBaseToken(address); -- Gitblit v1.9.1