From ac4c6f8771de8148f1ba2292dd8fcb7c986883a4 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Thu, 24 Mar 2022 15:25:16 +0800 Subject: [PATCH] add some limit --- src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java | 25 +++++++++++++++++++------ 1 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java index d238496..e8a5f8e 100644 --- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java @@ -4,6 +4,7 @@ import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.common.exception.FebsException; 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; @@ -38,11 +39,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,10 +102,8 @@ @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 -- Gitblit v1.9.1