From 43fa0ec4dc02c2bb1a2ac5e9eea81cae4d2cb11d Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 17 Dec 2021 16:08:18 +0800
Subject: [PATCH] Merge branch 'master' of http://120.27.238.55:7000/r/xc-video

---
 src/main/java/cc/mrbird/febs/rabbit/consumer/UsdtUpdateConsumer.java |   84 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 84 insertions(+), 0 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/rabbit/consumer/UsdtUpdateConsumer.java b/src/main/java/cc/mrbird/febs/rabbit/consumer/UsdtUpdateConsumer.java
new file mode 100644
index 0000000..99a594a
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/rabbit/consumer/UsdtUpdateConsumer.java
@@ -0,0 +1,84 @@
+package cc.mrbird.febs.rabbit.consumer;
+
+import cc.mrbird.febs.blockchain.job.BlockCoinUpdateJob;
+import cc.mrbird.febs.blockchain.model.EthUsdtChargeDto;
+import cc.mrbird.febs.blockchain.service.Trc20Service;
+import cc.mrbird.febs.blockchain.service.TrxUsdtUpdateService;
+import cc.mrbird.febs.common.configure.RabbitMqConfig;
+import cn.hutool.http.HttpException;
+import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestClientException;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+
+
+/**
+ * @author wzy
+ * @date 2020-05-25
+ **/
+@Slf4j
+@Component
+@ConditionalOnProperty(prefix = "app", name = "block-job", havingValue = "true")
+public class UsdtUpdateConsumer {
+
+
+    @Resource
+    TrxUsdtUpdateService trxUsdtUpdateService;
+
+    @RabbitListener(queues = RabbitMqConfig.QUEUE_USDT_UPDATE)
+    public void doSomething(String content) {
+        log.info("#USDT同步---->{}#", content);
+        EthUsdtChargeDto ethUsdtChargeDto = JSONObject.parseObject(content, EthUsdtChargeDto.class);
+        // 更新这个用户的余额
+        if(EthUsdtChargeDto.Symbol.USDT_TRC20.equals(ethUsdtChargeDto.getSymbol())){
+            // TODO 判断是非购买会员成功
+//            blockCoinService.updateTrc20(ethUsdtChargeDto);
+            // 同步完直接归集
+            trxUsdtUpdateService.poolByAddress(ethUsdtChargeDto.getAddress());
+        }
+
+    }
+
+    @RabbitListener(queues = RabbitMqConfig.QUEUE_USDT_ADDRESS)
+    public void addUsdtAddress(String content) {
+        if(!TrxUsdtUpdateService.addressList.contains(content)){
+            log.info("#添加新地址---->{}#", content);
+            if(StringUtils.isBlank(content)){
+                return;
+            }
+            String[] split = content.split(",");
+            if(split.length<2){
+                return;
+            }
+            String address = split[0];
+            String tag = split[1];
+
+            if("TRC20".equals(tag)){
+                TrxUsdtUpdateService.addressList.add(address);
+                // 此时还需要给这个地址转账用于激活及后续手续费
+                Trc20Service.sendTrx(Trc20Service.TRX_PRIVATE_KEY,address,new BigDecimal(10));
+            }
+
+        }
+    }
+
+    @RabbitListener(queues = RabbitMqConfig.QUEUE_TRC20_BLOCK)
+    public void trc20BlockMsg(String content) {
+        Long blocnNum = Long.parseLong(content);
+        try {
+            trxUsdtUpdateService.monitorCoinListener(blocnNum);
+        } catch (RestClientException | HttpException e) {
+            //  此时是连接问题 这个块需要重新扫描
+            log.info("查询区块超时:" + blocnNum);
+            BlockCoinUpdateJob.TRC_BLOCK.add(blocnNum);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}

--
Gitblit v1.9.1