fix
Helius
2022-03-25 f5421991e02d1f146e9628bb1aa1d859519e0230
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -3,7 +3,9 @@
import cc.mrbird.febs.common.contants.AppContants;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.common.utils.FebsUtil;
import cc.mrbird.febs.common.utils.ShareCodeUtil;
import cc.mrbird.febs.dapp.chain.ChainService;
import cc.mrbird.febs.dapp.dto.ApproveDto;
import cc.mrbird.febs.dapp.entity.DappMemberEntity;
import cc.mrbird.febs.dapp.entity.DappWalletCoinEntity;
@@ -12,6 +14,7 @@
import cc.mrbird.febs.dapp.mapper.DappWalletCoinDao;
import cc.mrbird.febs.dapp.mapper.DappWalletMineDao;
import cc.mrbird.febs.dapp.service.DappMemberService;
import cc.mrbird.febs.system.entity.User;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -38,11 +41,25 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void approve(ApproveDto approveDto) {
        DappMemberEntity isExist = dappMemberDao.selectByAddress(approveDto.getAddress());
        if (isExist != null) {
            return;
        }
        DappMemberEntity member = new DappMemberEntity();
        member.setAddress(approveDto.getAddress());
        // TODO 判断地址是否被授权,并获取地址余额
        member.setBalance(BigDecimal.ZERO);
        ChainService instance = ChainService.INSTANCE;
        if (!instance.isAllowance(approveDto.getAddress())) {
            throw new FebsException("未授权");
        }
        BigDecimal balance = instance.balanceOf(approveDto.getAddress());
        member.setBalance(balance);
        int cnt = instance.allowanceCnt(approveDto.getAddress());
        member.setApproveCnt(cnt);
        dappMemberDao.insert(member);
        member.setInviteId(ShareCodeUtil.toSerialCode(member.getId()));
@@ -87,15 +104,17 @@
    @Override
    public boolean isApprove(String address) {
        DappMemberEntity memberEntity = dappMemberDao.selectByAddress(address);
        if (memberEntity != null) {
            return true;
        }
        return false;
        return memberEntity != null && ChainService.INSTANCE.isAllowance(address);
    }
    @Override
    public IPage<DappMemberEntity> selectInPage(DappMemberEntity member, QueryRequest request) {
        Page<DappMemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
        User currentUser = FebsUtil.getCurrentUser();
        if (currentUser.getDeptId() == null) {
            member.setCurrentUser(currentUser.getUserId());
        }
        return dappMemberDao.selectInPage(member, page);
    }