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