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