From 35d0c67bb3391d69a8333e5fad664a88a8ccfd0e Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 24 Nov 2021 18:00:40 +0800
Subject: [PATCH] 20211124  fish

---
 src/main/java/com/xcong/excoin/modules/blackchain/service/Impl/BlockSeriveImpl.java |   48 ++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 42 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/blackchain/service/Impl/BlockSeriveImpl.java b/src/main/java/com/xcong/excoin/modules/blackchain/service/Impl/BlockSeriveImpl.java
index 33c2c20..ca6b7b3 100644
--- a/src/main/java/com/xcong/excoin/modules/blackchain/service/Impl/BlockSeriveImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/blackchain/service/Impl/BlockSeriveImpl.java
@@ -1,12 +1,16 @@
 package com.xcong.excoin.modules.blackchain.service.Impl;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import javax.annotation.Resource;
 
+import com.xcong.excoin.common.enumerates.CoinTypeEnum;
 import com.xcong.excoin.modules.blackchain.service.*;
+import com.xcong.excoin.rabbit.producer.UsdtUpdateProducer;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Service;
 
 import com.alibaba.fastjson.JSONObject;
@@ -30,15 +34,21 @@
     @Resource
     MemberCoinAddressDao memberMapper;
 
+    @Resource
+    private UsdtUpdateProducer usdtUpdateProducer;
+
     @Override
-    public Result findBlockAddress(String symbol) {
+    public Result findBlockAddress(String symbol, String lable) {
         //获取用户ID
         String mId = LoginUserUtils.getAppLoginUser().getId().toString();
         MemberEntity member = memberDao.selectById(mId);
         if (member == null) {
             return Result.fail(MessageSourceUtils.getString("member_service_0003"));
         }
-        String lable = "ERC20";
+        if(StringUtils.isBlank(lable)){
+            //lable = "ERC20";
+            lable = "TRC20";
+        }
         Result result = new Result();
         try {
             Map<String, String> map = new HashMap<String, String>();
@@ -157,7 +167,7 @@
                                 memberMapper.insert(coinAddress);
                             }
 
-                        } else {
+                        } else if ("ERC20".equals(lable)) {
                             MemberCoinAddressEntity ethAddress2 = memberMapper.selectBlockAddress(Long.parseLong(mId), "ETH");
                             if (ethAddress2 != null) {
                                 address = ethAddress2.getAddress();
@@ -178,14 +188,40 @@
                                 coinAddress.setLabel(uuid);
                                 memberMapper.insert(coinAddress);
                             }
-                            if(!UsdtErc20UpdateService.ALL_ADDRESS_LIST.contains(address)){
-                                UsdtErc20UpdateService.ALL_ADDRESS_LIST.add(address);
+                            // 发送新增的地址到监听集合
+                            usdtUpdateProducer.sendAddressMsg(address+","+"ERC20");
+                        } else if ("TRC20".equals(lable)) {
+                            MemberCoinAddressEntity coinAddress = memberMapper.selectBlockAddress(Long.parseLong(mId), CoinTypeEnum.XCT.name());
+                            if (coinAddress != null) {
+                                address = coinAddress.getAddress();
+                                key = coinAddress.getPrivateKey();
+                            } else {
+                                Map<String, String> usdtMap = Trc20Service.createAddress();
+                                address = usdtMap.get("address");
+                                key = usdtMap.get("privateKey");
+                                map.put("address", address);
+                                // 发送新增的地址到监听集合
+                                usdtUpdateProducer.sendAddressMsg(address+","+"TRC20");
                             }
                         }
                         break;
                     case "ROC":
                         address = RocService.createWallet();
                         map.put("address", address);
+                        break;
+                    case "XCT" :
+                        MemberCoinAddressEntity trc20Usdt = memberMapper.selectBlockAddressWithTag(Long.parseLong(mId), CoinTypeEnum.USDT.name(), "TRC20");
+                        if (trc20Usdt != null) {
+                            address = trc20Usdt.getAddress();
+                            key = trc20Usdt.getPrivateKey();
+                        } else {
+                            Map<String, String> usdtMap = Trc20Service.createAddress();
+                            address = usdtMap.get("address");
+                            key = usdtMap.get("privateKey");
+                            map.put("address", address);
+                            // 发送新增的地址到监听集合
+                            usdtUpdateProducer.sendAddressMsg(address+","+"TRC20");
+                        }
                         break;
                     default:
                         break;
@@ -197,7 +233,7 @@
                 coinAddress.setPrivateKey(key);
                 coinAddress.setSymbol(symbol);
                 coinAddress.setLabel(uuid);
-                if (symbol.equals("USDT")) {
+                if (symbol.equals("USDT") || "XCT".equals(symbol)) {
                     coinAddress.setTag(lable);
                 }
 

--
Gitblit v1.9.1