package cc.mrbird.febs.mall.service.impl;
|
|
import cc.mrbird.febs.common.entity.FebsResponse;
|
import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
|
import cc.mrbird.febs.common.utils.LoginUserUtil;
|
import cc.mrbird.febs.mall.chain.service.EthService;
|
import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
|
import cc.mrbird.febs.mall.entity.MallMember;
|
import cc.mrbird.febs.mall.entity.MemberCoinAddressEntity;
|
import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
|
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;
|
|
@Resource
|
private DataDictionaryCustomMapper dataDictionaryCustomMapper;
|
|
@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;
|
}
|
|
@Override
|
public FebsResponse findAddress() {
|
DataDictionaryCustom addressDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
|
DataDictionaryEnum.ADDRESS.getType(), DataDictionaryEnum.ADDRESS.getCode());
|
String value = addressDic.getValue();
|
return new FebsResponse().success().data(value);
|
}
|
|
}
|