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