From 28eb26d68f7a2a4e6b316c3ea9f511aa143db66e Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 30 Sep 2024 16:57:18 +0800
Subject: [PATCH] 55测试环境
---
src/main/java/com/xcong/excoin/rabbit/consumer/UsdtUpdateConsumer.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 52 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/rabbit/consumer/UsdtUpdateConsumer.java b/src/main/java/com/xcong/excoin/rabbit/consumer/UsdtUpdateConsumer.java
index 7288fc6..6fab80b 100644
--- a/src/main/java/com/xcong/excoin/rabbit/consumer/UsdtUpdateConsumer.java
+++ b/src/main/java/com/xcong/excoin/rabbit/consumer/UsdtUpdateConsumer.java
@@ -1,16 +1,25 @@
package com.xcong.excoin.rabbit.consumer;
+import cn.hutool.http.HttpException;
import com.alibaba.fastjson.JSONObject;
import com.xcong.excoin.configurations.RabbitMqConfig;
import com.xcong.excoin.modules.blackchain.model.EthUsdtChargeDto;
+import com.xcong.excoin.modules.blackchain.service.Trc20Service;
+import com.xcong.excoin.modules.blackchain.service.TrxUsdtUpdateService;
import com.xcong.excoin.modules.blackchain.service.UsdtErc20UpdateService;
import com.xcong.excoin.modules.coin.service.BlockCoinService;
+import com.xcong.excoin.quartz.job.BlockCoinUpdateJob;
+import com.xcong.excoin.utils.RedisUtils;
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
@@ -25,20 +34,61 @@
@Resource
private BlockCoinService blockCoinService;
+ @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);
// 更新这个用户的余额
- blockCoinService.updateEthUsdtNew(ethUsdtChargeDto);
+ if(EthUsdtChargeDto.Symbol.USDT_ERC20.equals(ethUsdtChargeDto.getSymbol())){
+ blockCoinService.updateEthUsdtNew(ethUsdtChargeDto);
+ }
+ if(EthUsdtChargeDto.Symbol.USDT_TRC20.equals(ethUsdtChargeDto.getSymbol())){
+ blockCoinService.updateTrc20(ethUsdtChargeDto);
+ // 同步完直接归集
+ trxUsdtUpdateService.poolByAddress(ethUsdtChargeDto.getAddress());
+ }
+
}
@RabbitListener(queues = RabbitMqConfig.QUEUE_USDT_ADDRESS)
public void addUsdtAddress(String content) {
if(!UsdtErc20UpdateService.ALL_ADDRESS_LIST.contains(content)){
log.info("#添加新地址---->{}#", content);
- UsdtErc20UpdateService.ALL_ADDRESS_LIST.add(content);
+ if(StringUtils.isBlank(content)){
+ return;
+ }
+ String[] split = content.split(",");
+ if(split.length<2){
+ return;
+ }
+ String address = split[0];
+ String tag = split[1];
+ if("ERC20".equals(tag)){
+ UsdtErc20UpdateService.ALL_ADDRESS_LIST.add(address);
+ }
+ 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