From cbc6726bb3a9b68881987e47f966237503973234 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Wed, 25 May 2022 18:39:21 +0800 Subject: [PATCH] bsc tfc --- src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java | 75 +++++++++++++++++++++++++++++++++++++ 1 files changed, 75 insertions(+), 0 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java index 0056af6..c8ba7de 100644 --- a/src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java +++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java @@ -1,15 +1,90 @@ 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; } } -- Gitblit v1.9.1