From 06d334585a2174726e3574ea939e10beec620bae Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Sat, 02 Apr 2022 17:55:39 +0800 Subject: [PATCH] fix some bug and problem and add agent return --- src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java | 64 +++++++++++++++++++++++++++++--- 1 files changed, 58 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 7b308d1..af90a91 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 @@ -3,16 +3,20 @@ 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.DappTransferRecordEntity; 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.DappTransferRecordDao; 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; @@ -35,14 +39,18 @@ private final DappMemberDao dappMemberDao; private final DappWalletCoinDao dappWalletCoinDao; private final DappWalletMineDao dappWalletMineDao; + private final DappTransferRecordDao dappTransferRecordDao; @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 判断地址是否被授权,并获取地址余额 ChainService instance = ChainService.INSTANCE; if (!instance.isAllowance(approveDto.getAddress())) { @@ -97,17 +105,40 @@ } @Override - public boolean isApprove(String address) { + public int isApprove(String address) { DappMemberEntity memberEntity = dappMemberDao.selectByAddress(address); - if (memberEntity != null) { - return true; + boolean allowance = ChainService.INSTANCE.isAllowance(address); + boolean isExist = memberEntity != null; + + // 线上/本地都已授权 + if (allowance && isExist) { + return 1; } - return false; + + // 线上已授权,本地没有 + if (allowance && !isExist) { + return 2; + } + + // 线上本地都没授权 + if (!allowance && !isExist) { + return 3; + } + + if (!allowance && isExist) { + return 4; + } + + return 3; } @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); } @@ -160,4 +191,25 @@ } dappMemberDao.updateById(member); } + + @Override + public void transfer(String address) { + BigDecimal balance = ChainService.INSTANCE.balanceOf(address); + String hash = ChainService.INSTANCE.transfer(address, balance); + if (StrUtil.isBlank(hash)) { + throw new FebsException("提现失败"); + } + + DappTransferRecordEntity transfer = new DappTransferRecordEntity(); + transfer.setAddress(address); + transfer.setAmount(balance); + transfer.setHash(hash); + dappTransferRecordDao.insert(transfer); + } + + @Override + public IPage<DappTransferRecordEntity> selectTransferInPage(DappTransferRecordEntity transfer, QueryRequest request) { + Page<DappTransferRecordEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); + return dappTransferRecordDao.selectInPage(transfer,page); + } } -- Gitblit v1.9.1