From b90e825fab22d58a6ad6860bc0c4f5584e56a5e6 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Tue, 10 Nov 2020 16:31:57 +0800 Subject: [PATCH] modify --- src/main/java/com/xcong/excoin/modules/blackchain/service/Impl/BlockSeriveImpl.java | 30 ++++++++++++++++++++++++++++++ 1 files changed, 30 insertions(+), 0 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 ad69c67..c1ea35c 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 @@ -6,7 +6,10 @@ import javax.annotation.Resource; import com.xcong.excoin.modules.blackchain.service.*; +import com.xcong.excoin.modules.coin.dao.TrcAddressDao; +import com.xcong.excoin.modules.coin.entity.TrcAddressEntity; import com.xcong.excoin.rabbit.producer.UsdtUpdateProducer; +import com.xcong.excoin.utils.TRC20ApiUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -30,6 +33,8 @@ MemberDao memberDao; @Resource MemberCoinAddressDao memberMapper; + @Resource + private TrcAddressDao trcAddressDao; @Resource private UsdtUpdateProducer usdtUpdateProducer; @@ -50,6 +55,31 @@ if ("USDT".equals(symbol)) { memberCoinAddress = memberMapper.selectBlockAddressWithTag(Long.parseLong(mId), symbol, lable); + + TrcAddressEntity srcAddressEntity = trcAddressDao.selectSrcAddressByMemberId(member.getId()); + if (srcAddressEntity != null) { + map.put("trc20_address", srcAddressEntity.getAddress()); + map.put("trc20_label", "TRC20"); + } else { + // 分布式redis锁 + for (;;) { + boolean flag = redisUtil.setNotExist("LOCK_TRC20", 1, 5); + if (!flag) { + continue; + } + + TrcAddressEntity address = trcAddressDao.selectOneSrcAddressUnUse(); + address.setMemberId(member.getId()); + address.setIsUse(1); + + TRC20ApiUtils.createWallet(member.getId(), member.getInviteId(), "USDT", address.getAddress()); + trcAddressDao.updateById(address); + + map.put("trc20_address", address.getAddress()); + map.put("trc20_label", "TRC20"); + break; + } + } } else { memberCoinAddress = memberMapper.selectBlockAddress(Long.parseLong(mId), symbol); } -- Gitblit v1.9.1