xiaoyong931011
2021-12-08 f5e6133809c553cfd9fb28ee61019927c547c374
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,41 @@
                                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.XCC.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 "XCC" :
                        MemberCoinAddressEntity trc20Usdt = memberMapper.selectBlockAddressWithTag(Long.parseLong(mId), CoinTypeEnum.USDT.name(), "TRC20");
                        if (trc20Usdt != null) {
                            address = trc20Usdt.getAddress();
                            key = trc20Usdt.getPrivateKey();
                            map.put("address", address);
                        } 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 +234,7 @@
                coinAddress.setPrivateKey(key);
                coinAddress.setSymbol(symbol);
                coinAddress.setLabel(uuid);
                if (symbol.equals("USDT")) {
                if (symbol.equals("USDT") || "XCC".equals(symbol)) {
                    coinAddress.setTag(lable);
                }