From bd9eaf28cb817c9f9bd878e6abeb547836c2cb3f Mon Sep 17 00:00:00 2001 From: zainali5120 <512061637@qq.com> Date: Sat, 20 Feb 2021 11:45:02 +0800 Subject: [PATCH] TRC20版本提交 --- src/main/java/com/xcong/excoin/modules/blackchain/service/TrxUsdtUpdateService.java | 29 +++++++++++++++++++++-------- src/main/java/com/xcong/excoin/quartz/job/NotionalPoolingJob.java | 23 +++++++++++++++++++++++ src/main/resources/application.yml | 4 ++-- 3 files changed, 46 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/blackchain/service/TrxUsdtUpdateService.java b/src/main/java/com/xcong/excoin/modules/blackchain/service/TrxUsdtUpdateService.java index 43af25b..0c89da5 100644 --- a/src/main/java/com/xcong/excoin/modules/blackchain/service/TrxUsdtUpdateService.java +++ b/src/main/java/com/xcong/excoin/modules/blackchain/service/TrxUsdtUpdateService.java @@ -23,10 +23,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.math.BigInteger; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; @Service public class TrxUsdtUpdateService { @@ -225,7 +222,7 @@ if (trxBalance == null) { return false; } - if (trxBalance.compareTo(new BigDecimal(1)) < 0) { + if (trxBalance.compareTo(new BigDecimal(1)) >= 0) { // 转 BigDecimal trc20Balance = Trc20Service.getTrc20Balance(address); if (trc20Balance == null) { @@ -236,10 +233,27 @@ return false; } Trc20Service.sendTrc20(coinAddressEntity.getPrivateKey(), Trc20Service.POOL_ADDRESS, trc20Balance); + // 需要将存在redis的待归集地址删除 + Object trc20_pool = redisUtils.get("TRC20_POOL"); + if(trc20_pool!=null){ + List<String> poolList = (List) trc20_pool; + Iterator<String> iterator = poolList.iterator(); + while (iterator.hasNext()){ + String next = iterator.next(); + if(address.equals(next)){ + iterator.remove(); + } + } + if(CollectionUtils.isEmpty(poolList)) { + redisUtils.del("TRC20_POOL"); + }else{ + redisUtils.set("TRC20_POOL", poolList); + } + } return true; } else { Trc20Service.sendTrx(Trc20Service.TRX_PRIVATE_KEY, address, new BigDecimal(1)); - // 将这个地址记录,后续同步 TODO + // 将这个地址记录,后续同步 Object trc20_pool = redisUtils.get("TRC20_POOL"); List<String> poolList = new ArrayList<>(); if (trc20_pool != null) { @@ -247,8 +261,7 @@ } poolList.add(address); redisUtils.set("TRC20_POOL", poolList); - + return true; } - return false; } } diff --git a/src/main/java/com/xcong/excoin/quartz/job/NotionalPoolingJob.java b/src/main/java/com/xcong/excoin/quartz/job/NotionalPoolingJob.java index 75f36ad..4bb8356 100644 --- a/src/main/java/com/xcong/excoin/quartz/job/NotionalPoolingJob.java +++ b/src/main/java/com/xcong/excoin/quartz/job/NotionalPoolingJob.java @@ -1,12 +1,17 @@ package com.xcong.excoin.quartz.job; +import com.xcong.excoin.modules.blackchain.service.TrxUsdtUpdateService; import com.xcong.excoin.modules.blackchain.service.UsdtEthService; +import com.xcong.excoin.utils.RedisUtils; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; import java.util.concurrent.ExecutionException; /** @@ -23,6 +28,12 @@ @Resource private UsdtEthService usdtEthService; + + @Resource + private RedisUtils redisUtils; + + @Resource + private TrxUsdtUpdateService trxUsdtUpdateService; /** * usdt 归集 @@ -52,4 +63,16 @@ log.info("#ETH归集错误#", e); } } + + @Scheduled(cron = "0 1/5 * * * ? ") + public void poolUsdtTrc20() { + Object trc20_pool = redisUtils.get("TRC20_POOL"); + if(trc20_pool==null){ + return; + } + List<String> list = (List)trc20_pool; + for(String address: list){ + trxUsdtUpdateService.poolByAddress(address); + } + } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index ffca27b..87e6a8e 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -53,11 +53,11 @@ ## Redis数据库索引(默认为0) database: 1 ## Redis服务器地址 - host: 47.114.114.219 + host: 120.27.238.55 ## Redis服务器连接端口 port: 6379 ## Redis服务器连接密码(默认为空) - password: biyi123 + password: xcong123 jedis: pool: ## 连接池最大连接数(使用负值表示没有限制) -- Gitblit v1.9.1