From 7c5eb91ce4cc1a02077aeb84941368373278fe1b Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Thu, 11 Aug 2022 14:32:02 +0800 Subject: [PATCH] fix:add active nft function --- src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 53 insertions(+), 7 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java index 0a44401..be99e2a 100644 --- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java @@ -10,17 +10,20 @@ import cc.mrbird.febs.dapp.chain.ChainEnum; import cc.mrbird.febs.dapp.chain.ChainService; import cc.mrbird.febs.dapp.chain.ContractChainService; -import cc.mrbird.febs.dapp.dto.PriceDto; -import cc.mrbird.febs.dapp.dto.RecordInPageDto; -import cc.mrbird.febs.dapp.dto.TransferDto; -import cc.mrbird.febs.dapp.dto.WalletOperateDto; +import cc.mrbird.febs.dapp.dto.*; import cc.mrbird.febs.dapp.entity.*; import cc.mrbird.febs.dapp.mapper.*; import cc.mrbird.febs.dapp.service.DappSystemService; import cc.mrbird.febs.dapp.service.DappWalletService; import cc.mrbird.febs.dapp.utils.BoxUtil; +import cc.mrbird.febs.dapp.vo.ActiveNftListVo; import cc.mrbird.febs.dapp.vo.WalletInfoVo; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; @@ -30,9 +33,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author @@ -51,6 +52,7 @@ private final RedisUtils redisUtils; private final DataDictionaryCustomMapper dataDictionaryCustomMapper; private final DappSystemService dappSystemService; + private final DappNftActivationDao dappNftActivationDao; @Override public WalletInfoVo walletInfo() { @@ -367,6 +369,7 @@ HashMap<String, BigDecimal> map = new HashMap<>(); map.put("x", x); map.put("y", y); + map.put("nft", AppContants.NFT_ACTIVE_PRICE); return map; } @@ -407,4 +410,47 @@ // // return box.getIndex(); } + + @Override + @Transactional(rollbackFor = Exception.class) + public void activeNft(ActiveDto activeDto) { + DappMemberEntity member = LoginUserUtil.getAppUser(); + DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), BigDecimal.ONE, 8, 1, BigDecimal.ZERO, activeDto.getTxHash()); + fundFlow.setNewestPrice(AppContants.NFT_ACTIVE_PRICE); + + dappFundFlowDao.insert(fundFlow); + + DappNftActivation nftActive = dappNftActivationDao.selectById(activeDto.getId()); + if (nftActive.getStatus() != 1) { + throw new FebsException(MessageSourceUtils.getString("nft_active_001")); + } + + nftActive.setStatus(2); + dappNftActivationDao.updateById(nftActive); + } + + @Override + public List<ActiveNftListVo> findUnActiveNftList() { + DappMemberEntity member = LoginUserUtil.getAppUser(); + List<ActiveNftListVo> list = new ArrayList<>(); + + UpdateWrapper<DappNftActivation> query = new UpdateWrapper<>(); + query.eq("status", 3); + query.eq("member_id", member.getId()); + List<DappNftActivation> nftActivations = dappNftActivationDao.selectList(query); + + if (CollUtil.isEmpty(nftActivations)) { + return list; + } + + Date now = new Date(); + nftActivations.forEach(nft -> { + ActiveNftListVo nftVo = new ActiveNftListVo(); + nftVo.setId(nft.getId()); + nftVo.setRemain(DateUtil.between(nft.getOpenTime(), now, DateUnit.SECOND, false)); + list.add(nftVo); + }); + + return list; + } } -- Gitblit v1.9.1