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<DappMemberDao, DappMemberEntity> 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;
|
}
|
}
|