package cc.mrbird.febs.dapp.service.impl; import cc.mrbird.febs.common.utils.ShareCodeUtil; import cc.mrbird.febs.dapp.dto.ApproveDto; import cc.mrbird.febs.dapp.entity.DappMemberEntity; import cc.mrbird.febs.dapp.entity.DappWalletCoinEntity; import cc.mrbird.febs.dapp.entity.DappWalletMineEntity; import cc.mrbird.febs.dapp.mapper.DappMemberDao; import cc.mrbird.febs.dapp.mapper.DappWalletCoinDao; import cc.mrbird.febs.dapp.mapper.DappWalletMineDao; import cc.mrbird.febs.dapp.service.DappMemberService; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import java.math.BigDecimal; /** * @author wzy * @date 2022-03-17 **/ @Service @RequiredArgsConstructor public class DappMemberServiceImpl extends ServiceImpl implements DappMemberService { private final DappMemberDao dappMemberDao; private final DappWalletCoinDao dappWalletCoinDao; private final DappWalletMineDao dappWalletMineDao; @Override public void approve(ApproveDto approveDto) { DappMemberEntity member = new DappMemberEntity(); member.setAddress(approveDto.getAddress()); // TODO 判断地址是否被授权,并获取地址余额 member.setBalance(BigDecimal.ZERO); dappMemberDao.insert(member); member.setInviteId(ShareCodeUtil.toSerialCode(member.getId())); if (StrUtil.isNotBlank(approveDto.getRefererId())){ boolean flag = false; String parentId = approveDto.getRefererId(); String ids = ""; while (!flag && StringUtils.isNotBlank(parentId)) { 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); } DappWalletMineEntity walletMine = new DappWalletMineEntity(); walletMine.setMemberId(member.getId()); dappWalletMineDao.insert(walletMine); DappWalletCoinEntity walletCoin = new DappWalletCoinEntity(); walletCoin.setMemberId(member.getId()); dappWalletCoinDao.insert(walletCoin); } @Override public boolean isApprove(String address) { DappMemberEntity memberEntity = dappMemberDao.selectByAddress(address); if (memberEntity != null) { return true; } return false; } }