package cc.mrbird.febs.dapp.service.impl;
|
|
import cc.mrbird.febs.common.utils.ShareCodeUtil;
|
import cc.mrbird.febs.dapp.chain.ChainEnum;
|
import cc.mrbird.febs.dapp.chain.ChainService;
|
import cc.mrbird.febs.dapp.chain.ContractEventService;
|
import cc.mrbird.febs.dapp.chain.EthUsdtContract;
|
import cc.mrbird.febs.dapp.entity.DappMemberEntity;
|
import cc.mrbird.febs.dapp.mapper.DappMemberDao;
|
import cn.hutool.core.util.StrUtil;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.math.BigInteger;
|
|
@Service
|
public class BscCoinContractEvent implements ContractEventService {
|
|
@Autowired
|
private DappMemberDao dappMemberDao;
|
|
private final String ADDRESS = "0x977a9ddfb965a9a3416fa72ca7f91c4949c18f25";
|
int decimals = ChainService.getInstance(ChainEnum.BSC_TFC.name()).decimals();
|
|
@Override
|
public void compile(EthUsdtContract.TransferEventResponse e) {
|
if (e.to != null) {
|
if ("0x0000000000000000000000000000000000000000".equals(e.from)) {
|
return;
|
}
|
|
DappMemberEntity fromMember = dappMemberDao.selectByAddress(e.from, null);
|
if (fromMember == null) {
|
fromMember = insertMember(e.from, null);
|
}
|
|
if (!e.to.equals(ADDRESS)) {
|
DappMemberEntity toMember = dappMemberDao.selectByAddress(e.to, null);
|
if (toMember == null) {
|
toMember = insertMember(e.to, fromMember.getInviteId());
|
}
|
}
|
|
// 卖币
|
if (e.to.equals(ADDRESS)) {
|
BigInteger tokens = e.tokens;
|
}
|
|
}
|
}
|
|
private DappMemberEntity insertMember(String address, String refererId) {
|
DappMemberEntity member = new DappMemberEntity();
|
member.setAddress(address);
|
|
dappMemberDao.insert(member);
|
|
member.setInviteId(ShareCodeUtil.toSerialCode(member.getId()));
|
member.setRefererId(refererId);
|
if (StrUtil.isNotBlank(refererId)){
|
boolean flag = false;
|
String parentId = refererId;
|
String ids = "";
|
while (!flag && StringUtils.isNotBlank(parentId)) {
|
if (StrUtil.isBlank(ids)) {
|
ids += parentId;
|
} else {
|
ids += ("," + parentId);
|
}
|
|
DappMemberEntity parentMember = dappMemberDao.selectMemberInfoByInviteId(parentId);
|
if (parentMember == null) {
|
break;
|
}
|
parentId = parentMember.getRefererId();
|
if(StringUtils.isBlank(parentId)){
|
break;
|
}
|
if (parentMember.getRefererId().equals(parentMember.getInviteId())) {
|
flag = true;
|
}
|
}
|
member.setRefererIds(ids);
|
}
|
dappMemberDao.updateById(member);
|
|
return member;
|
}
|
}
|