From d23645e976981bc9b670eea1d469fe8a36be309c Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 17 Apr 2024 17:19:53 +0800
Subject: [PATCH] 55测试环境

---
 src/main/java/com/xcong/excoin/modules/blackchain/service/Impl/BlockSeriveImpl.java |  396 ++++++++++++++++++++++++++++---------------------------
 1 files changed, 201 insertions(+), 195 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 cbdcb1d..3f547ce 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
@@ -5,17 +5,15 @@
 
 import javax.annotation.Resource;
 
+import com.xcong.excoin.modules.blackchain.service.*;
+import com.xcong.excoin.rabbit.producer.UsdtUpdateProducer;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
 import com.alibaba.fastjson.JSONObject;
 import com.xcong.excoin.common.LoginUserUtils;
 import com.xcong.excoin.common.response.Result;
-import com.xcong.excoin.modules.blackchain.service.BlockSerive;
-import com.xcong.excoin.modules.blackchain.service.BtcService;
-import com.xcong.excoin.modules.blackchain.service.EthService;
-import com.xcong.excoin.modules.blackchain.service.LtcService;
-import com.xcong.excoin.modules.blackchain.service.UsdtService;
-import com.xcong.excoin.modules.blackchain.service.XrpService;
 import com.xcong.excoin.modules.member.dao.MemberCoinAddressDao;
 import com.xcong.excoin.modules.member.dao.MemberDao;
 import com.xcong.excoin.modules.member.entity.MemberCoinAddressEntity;
@@ -23,197 +21,205 @@
 import com.xcong.excoin.utils.MessageSourceUtils;
 import com.xcong.excoin.utils.RedisUtils;
 
+@Slf4j
 @Service
 public class BlockSeriveImpl implements BlockSerive {
 
-	@Resource
-	RedisUtils  redisUtil;
-	@Resource
-	MemberDao memberDao;
-	@Resource
-	MemberCoinAddressDao memberMapper;
-	
-	@Override
-	public Result findBlockAddress(String symbol) {
-		
-		//获取用户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";
-		Result result = new Result();
-		try {
-		Map<String, String> map = new HashMap<String, String>();
-		MemberCoinAddressEntity memberCoinAddress = new MemberCoinAddressEntity();
-		
-		if("USDT".equals(symbol)) {
-			memberCoinAddress = memberMapper.selectBlockAddressWithTag(Long.parseLong(mId), symbol, lable);
-		}else {
-			memberCoinAddress = memberMapper.selectBlockAddress(Long.parseLong(mId), symbol);
-		}
-		////System.out.println("symbol  ========== "+symbol);
-		if(memberCoinAddress!=null) {
-			////System.out.println("1===================================");
-			map.put("address", memberCoinAddress.getAddress());
-			map.put("lable", memberCoinAddress.getLabel());
-			result.setData(map);
-			result.setCode(0);
-		}else {
-			////System.out.println("2===================================");
-			String address = "";
-			String key = "";
-			String uuid = member.getInviteId();
-			switch (symbol) {
-			case "BTC":
-				Map<String,String> btcMap = UsdtService.createWallet(mId);
-				address = btcMap.get("address");
-				key = btcMap.get("privateKey");
-				map.put("address", address);
-				break;
-			case "ETH":
-				Map<String,String> ethMap = EthService.createEth();
-				address = ethMap.get("address");
-				key = ethMap.get("privateKey");
-				map.put("address", address);
-				break;
-			case "BCH":
-				MemberCoinAddressEntity btcAddress = memberMapper.selectBlockAddress(Long.parseLong(mId), "BTC");
-				if(btcAddress!=null) {
-					address = btcAddress.getAddress();
-					key = btcAddress.getPrivateKey();
-					map.put("address", address);
-				}else {
-					Map<String,String> bchMap = BtcService.createWallet(mId);
-					address = bchMap.get("address");
-					key = bchMap.get("privateKey");
-					map.put("address", address);
-					
-					MemberCoinAddressEntity coinAddress = new MemberCoinAddressEntity();
-					coinAddress.setAddress(address);
-					coinAddress.setIsBiyict(MemberCoinAddressEntity.IS_BIYICT_YES);
-					coinAddress.setMemberId(Long.parseLong(mId));
-					coinAddress.setPrivateKey(key);
-					coinAddress.setSymbol("BTC");
-					coinAddress.setLabel(uuid);
-					memberMapper.insert(coinAddress);
-				}
-				break;
-			case "EOS":
-				address = "biyicteos123";
-//				lable = member.getUID();
-//				Map<String,String> eosMap = new HashMap<String, String>();
-				map.put("address", address);
-				map.put("lable",uuid);
-				break;
-			case "XRP":
-				JSONObject jSONObject = XrpService.createWallet();
-				address = (String)jSONObject.get("xAddress");
-				key = (String)jSONObject.get("secret");
-//				lable = member.getUID();
-				map.put("address", address);
-				map.put("lable", uuid);
-				break;
-			case "LTC":
-				Map<String,String> ltcMap = LtcService.createWallet(mId);
-				address = ltcMap.get("address");
-				key = ltcMap.get("privateKey");
-				map.put("address", address);
-				break;
-			case "ETC":
-				MemberCoinAddressEntity ethAddress = memberMapper.selectBlockAddress(Long.parseLong(mId), "ETH");
-				if(ethAddress!=null) {
-					address = ethAddress.getAddress();
-					key = ethAddress.getPrivateKey();
-					map.put("address", address);
-				}else {
-					Map<String,String> etcMap = EthService.createEth();
-					address = etcMap.get("address");
-					key = etcMap.get("privateKey");
-					map.put("address", address);
-					
-					MemberCoinAddressEntity coinAddress = new MemberCoinAddressEntity();
-					coinAddress.setAddress(address);
-					coinAddress.setIsBiyict(MemberCoinAddressEntity.IS_BIYICT_YES);
-					coinAddress.setMemberId(Long.parseLong(mId));
-					coinAddress.setPrivateKey(key);
-					coinAddress.setSymbol("ETH");
-					coinAddress.setLabel(uuid);
-					memberMapper.insert(coinAddress);
-				}
-				
-				break;
-			case "USDT":
-				if("OMNI".equals(lable)) {
-					MemberCoinAddressEntity btcAddress2 = memberMapper.selectBlockAddress(Long.parseLong(mId), "BTC");
-					if(btcAddress2!=null) {
-						address = btcAddress2.getAddress();
-						key = btcAddress2.getPrivateKey();
-						map.put("address", address);
-					}else {
-						//如果BTC地址不存在,创建一个BTC地址
-						Map<String,String> usdtMap = UsdtService.createWallet(mId);
-						address = usdtMap.get("address");
-						key = usdtMap.get("privateKey");
-						map.put("address", address);
-						
-						MemberCoinAddressEntity coinAddress = new MemberCoinAddressEntity();
-						coinAddress.setAddress(address);
-						coinAddress.setIsBiyict(MemberCoinAddressEntity.IS_BIYICT_YES);
-						coinAddress.setMemberId(Long.parseLong(mId));
-						coinAddress.setPrivateKey(key);
-						coinAddress.setSymbol("BTC");
-						coinAddress.setLabel(uuid);
-						memberMapper.insert(coinAddress);
-					}
-					
-				}else {
-					MemberCoinAddressEntity ethAddress2 = memberMapper.selectBlockAddress(Long.parseLong(mId), "ETH");
-					if(ethAddress2!=null) {
-						address = ethAddress2.getAddress();
-						key = ethAddress2.getPrivateKey();
-						map.put("address", address);
-					}else {
-						Map<String,String> usdtMap = EthService.createEth();
-						address = usdtMap.get("address");
-						key = usdtMap.get("privateKey");
-						map.put("address", address);
-						
-						MemberCoinAddressEntity coinAddress = new MemberCoinAddressEntity();
-						coinAddress.setAddress(address);
-						coinAddress.setIsBiyict(MemberCoinAddressEntity.IS_BIYICT_YES);
-						coinAddress.setMemberId(Long.parseLong(mId));
-						coinAddress.setPrivateKey(key);
-						coinAddress.setSymbol("ETH");
-						coinAddress.setLabel(uuid);
-						memberMapper.insert(coinAddress);
-					}
-				}
-				break;
-			default:
-				break;
-			}
-			MemberCoinAddressEntity coinAddress = new MemberCoinAddressEntity();
-			coinAddress.setAddress(address);
-			coinAddress.setIsBiyict(MemberCoinAddressEntity.IS_BIYICT_YES);
-			coinAddress.setMemberId(Long.parseLong(mId));
-			coinAddress.setPrivateKey(key);
-			coinAddress.setSymbol(symbol);
-			coinAddress.setLabel(uuid);
-			if(symbol.equals("USDT")) {
-				coinAddress.setTag(lable);
-			}
-			
-			memberMapper.insert(coinAddress);
-			////System.out.println("生成的地址:"+address+"  密钥:"+key);
-			result.setData(map);
-			result.setCode(0);
-		}
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return result;
-	}
+    @Resource
+    RedisUtils redisUtil;
+    @Resource
+    MemberDao memberDao;
+    @Resource
+    MemberCoinAddressDao memberMapper;
+
+    @Resource
+    private UsdtUpdateProducer usdtUpdateProducer;
+
+    @Override
+    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"));
+        }
+        if(StringUtils.isBlank(lable)){
+            //lable = "ERC20";
+            lable = "TRC20";
+        }
+
+        Result result = new Result();
+        try {
+            Map<String, String> map = new HashMap<String, String>();
+            MemberCoinAddressEntity memberCoinAddress = new MemberCoinAddressEntity();
+
+            if ("USDT".equals(symbol)) {
+                memberCoinAddress = memberMapper.selectBlockAddressWithTag(Long.parseLong(mId), symbol, lable);
+            } else {
+                memberCoinAddress = memberMapper.selectBlockAddress(Long.parseLong(mId), symbol);
+            }
+            //log.info("--->{}", memberCoinAddress);
+            if (memberCoinAddress != null) {
+                map.put("address", memberCoinAddress.getAddress());
+                map.put("lable", memberCoinAddress.getLabel());
+                result.setData(map);
+                result.setCode(0);
+            } else {
+                String address = "";
+                String key = "";
+                String uuid = member.getInviteId();
+                switch (symbol) {
+                    case "BTC":
+                        Map<String, String> btcMap = UsdtService.createWallet(mId);
+                        address = btcMap.get("address");
+                        key = btcMap.get("privateKey");
+                        map.put("address", address);
+                        break;
+                    case "ETH":
+                        Map<String, String> ethMap = EthService.createEth();
+                        address = ethMap.get("address");
+                        key = ethMap.get("privateKey");
+                        map.put("address", address);
+                        break;
+                    case "BCH":
+                        MemberCoinAddressEntity btcAddress = memberMapper.selectBlockAddress(Long.parseLong(mId), "BTC");
+                        if (btcAddress != null) {
+                            address = btcAddress.getAddress();
+                            key = btcAddress.getPrivateKey();
+                            map.put("address", address);
+                        } else {
+                            Map<String, String> bchMap = BtcService.createWallet(mId);
+                            address = bchMap.get("address");
+                            key = bchMap.get("privateKey");
+                            map.put("address", address);
+
+                            MemberCoinAddressEntity coinAddress = new MemberCoinAddressEntity();
+                            coinAddress.setAddress(address);
+                            coinAddress.setIsBiyict(MemberCoinAddressEntity.IS_BIYICT_YES);
+                            coinAddress.setMemberId(Long.parseLong(mId));
+                            coinAddress.setPrivateKey(key);
+                            coinAddress.setSymbol("BTC");
+                            coinAddress.setLabel(uuid);
+                            memberMapper.insert(coinAddress);
+                        }
+                        break;
+                    case "EOS":
+                        address = "hibitdeposit";
+                        map.put("address", address);
+                        map.put("lable", uuid);
+                        break;
+                    case "XRP":
+                        address = "rUzWJkXyEtT8ekSSxkBYPqCvHpngcy6Fks";
+                        map.put("address", address);
+                        map.put("lable", uuid);
+                        break;
+                    case "LTC":
+                        Map<String, String> ltcMap = LtcService.createWallet(mId);
+                        address = ltcMap.get("address");
+                        key = ltcMap.get("privateKey");
+                        map.put("address", address);
+                        break;
+                    case "ETC":
+                        MemberCoinAddressEntity ethAddress = memberMapper.selectBlockAddress(Long.parseLong(mId), "ETH");
+                        if (ethAddress != null) {
+                            address = ethAddress.getAddress();
+                            key = ethAddress.getPrivateKey();
+                            map.put("address", address);
+                        } else {
+                            Map<String, String> etcMap = EthService.createEth();
+                            address = etcMap.get("address");
+                            key = etcMap.get("privateKey");
+                            map.put("address", address);
+
+                            MemberCoinAddressEntity coinAddress = new MemberCoinAddressEntity();
+                            coinAddress.setAddress(address);
+                            coinAddress.setIsBiyict(MemberCoinAddressEntity.IS_BIYICT_YES);
+                            coinAddress.setMemberId(Long.parseLong(mId));
+                            coinAddress.setPrivateKey(key);
+                            coinAddress.setSymbol("ETH");
+                            coinAddress.setLabel(uuid);
+                            memberMapper.insert(coinAddress);
+                        }
+
+                        break;
+                    case "USDT":
+                        if ("OMNI".equals(lable)) {
+                            MemberCoinAddressEntity btcAddress2 = memberMapper.selectBlockAddress(Long.parseLong(mId), "BTC");
+                            if (btcAddress2 != null) {
+                                address = btcAddress2.getAddress();
+                                key = btcAddress2.getPrivateKey();
+                                map.put("address", address);
+                            } else {
+                                //如果BTC地址不存在,创建一个BTC地址
+                                Map<String, String> usdtMap = UsdtService.createWallet(mId);
+                                address = usdtMap.get("address");
+                                key = usdtMap.get("privateKey");
+                                map.put("address", address);
+
+                                MemberCoinAddressEntity coinAddress = new MemberCoinAddressEntity();
+                                coinAddress.setAddress(address);
+                                coinAddress.setIsBiyict(MemberCoinAddressEntity.IS_BIYICT_YES);
+                                coinAddress.setMemberId(Long.parseLong(mId));
+                                coinAddress.setPrivateKey(key);
+                                coinAddress.setSymbol("BTC");
+                                coinAddress.setLabel(uuid);
+                                memberMapper.insert(coinAddress);
+                            }
+
+                        } else if ("ERC20".equals(lable)) {
+                            MemberCoinAddressEntity ethAddress2 = memberMapper.selectBlockAddress(Long.parseLong(mId), "ETH");
+                            if (ethAddress2 != null) {
+                                address = ethAddress2.getAddress();
+                                key = ethAddress2.getPrivateKey();
+                                map.put("address", address);
+                            } else {
+                                Map<String, String> usdtMap = EthService.createEth();
+                                address = usdtMap.get("address");
+                                key = usdtMap.get("privateKey");
+                                map.put("address", address);
+
+                                MemberCoinAddressEntity coinAddress = new MemberCoinAddressEntity();
+                                coinAddress.setAddress(address);
+                                coinAddress.setIsBiyict(MemberCoinAddressEntity.IS_BIYICT_YES);
+                                coinAddress.setMemberId(Long.parseLong(mId));
+                                coinAddress.setPrivateKey(key);
+                                coinAddress.setSymbol("ETH");
+                                coinAddress.setLabel(uuid);
+                                memberMapper.insert(coinAddress);
+                            }
+                            // 发送新增的地址到监听集合
+                            usdtUpdateProducer.sendAddressMsg(address+","+"ERC20");
+                        } else if ("TRC20".equals(lable)) {
+                            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;
+                }
+                MemberCoinAddressEntity coinAddress = new MemberCoinAddressEntity();
+                coinAddress.setAddress(address);
+                coinAddress.setIsBiyict(MemberCoinAddressEntity.IS_BIYICT_YES);
+                coinAddress.setMemberId(Long.parseLong(mId));
+                coinAddress.setPrivateKey(key);
+                coinAddress.setSymbol(symbol);
+                coinAddress.setLabel(uuid);
+                if (symbol.equals("USDT")) {
+                    coinAddress.setTag(lable);
+                }
+
+                memberMapper.insert(coinAddress);
+                result.setData(map);
+                result.setCode(0);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
 
 }

--
Gitblit v1.9.1