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/modules/blackchain/service/Impl/BlockSeriveImpl.java | 399 +++++++++++++++++++++++++++++---------------------------
1 files changed, 204 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 7f62bdb..48073ca 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.lang.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,208 @@
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 = member.getInviteId();
- 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,member.getInviteId());
- }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 = "biyicteos123";
+ map.put("address", address);
+ map.put("lable", uuid);
+ break;
+ case "XRP":
+ address = "biyicteos123";
+ 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;
+ case "ROC":
+ address = RocService.createWallet();
+ map.put("address", address);
+ 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