xiaoyong931011
2022-12-28 9ba6a1c6cd6bf4d04591a9214abdb5c8c6cbff78
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package cc.mrbird.febs.mall.service.impl;
 
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.utils.LoginUserUtil;
import cc.mrbird.febs.mall.chain.service.EthService;
import cc.mrbird.febs.mall.chain.service.Trc20Service;
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.entity.MemberCoinAddressEntity;
import cc.mrbird.febs.mall.mapper.MallMemberMapper;
import cc.mrbird.febs.mall.mapper.MemberCoinAddressDao;
import cc.mrbird.febs.mall.service.BlockSerive;
import cc.mrbird.febs.rabbit.producter.AgentProducer;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
 
@Slf4j
@Service
public class BlockSeriveImpl implements BlockSerive {
 
    @Resource
    MallMemberMapper memberDao;
 
    @Resource
    MemberCoinAddressDao memberCoinAddressDao;
 
    @Resource
    private AgentProducer agentProducer;
 
    @Override
    public FebsResponse findBlockAddress(String symbol, String lable) {
        //获取用户ID
        Long mId = LoginUserUtil.getLoginUser().getId();
        MallMember member = memberDao.selectById(mId);
        if (member == null) {
            return new FebsResponse().fail().message("用户不存在");
        }
        if(StringUtils.isBlank(lable)){
            lable = "ERC20";
//            lable = "TRC20";
        }
 
        FebsResponse result = new FebsResponse();
        try {
            Map<String, String> map = new HashMap<String, String>();
            MemberCoinAddressEntity memberCoinAddress = new MemberCoinAddressEntity();
 
            if ("USDT".equals(symbol)) {
                memberCoinAddress = memberCoinAddressDao.selectBlockAddressWithTag(mId, symbol, lable);
            } else {
                memberCoinAddress = memberCoinAddressDao.selectBlockAddress(mId, symbol);
            }
 
            if (memberCoinAddress != null) {
                map.put("address", memberCoinAddress.getAddress());
                map.put("lable", memberCoinAddress.getLabel());
                result.data(map);
            } else {
                String address = "";
                String key = "";
                String uuid = member.getInviteId();
                Map<String, String> usdtMap = EthService.createEth();
//                Map<String, String> usdtMap = Trc20Service.createAddress();
                address = usdtMap.get("address");
                key = usdtMap.get("privateKey");
                map.put("address", address);
 
                // 发送新增的地址到监听集合
                agentProducer.sendAddressMsg(address+","+"ERC20");
 
                MemberCoinAddressEntity coinAddress = new MemberCoinAddressEntity();
                coinAddress.setAddress(address);
                coinAddress.setIsBiyict(MemberCoinAddressEntity.IS_BIYICT_YES);
                coinAddress.setMemberId(mId);
                coinAddress.setPrivateKey(key);
                coinAddress.setSymbol(symbol);
                coinAddress.setLabel(uuid);
                if (symbol.equals("USDT")) {
                    coinAddress.setTag(lable);
                }
 
                memberCoinAddressDao.insert(coinAddress);
                result.data(map);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }
 
}