From 5e0c0bacadab898152518437ceb63bf8b54c6652 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 12 Aug 2022 22:27:34 +0800 Subject: [PATCH] finish NFT Active --- src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java | 19 ++++++++++++------- 1 files changed, 12 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 c82b5b8..4696bee 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 @@ -370,7 +370,6 @@ HashMap<String, BigDecimal> map = new HashMap<>(); map.put("x", x); map.put("y", y); - map.put("nft", AppContants.NFT_ACTIVE_PRICE); return map; } @@ -412,7 +411,7 @@ nftActivation.setCount(box.getIndex()); nftActivation.setOpenTime(time); nftActivation.setExpireTime(expire); - + nftActivation.setStatus(1); dappNftActivationDao.insert(nftActivation); ActiveNftListVo nft = new ActiveNftListVo(); @@ -429,11 +428,15 @@ DappNftActivation nftActive = dappNftActivationDao.selectById(activeDto.getId()); if (nftActive == null) { - throw new FebsException("NFT不存在"); + throw new FebsException(MessageSourceUtils.getString("nft_active_003")); } if (nftActive.getCount() < activeDto.getCount()) { - throw new FebsException("NFT不足或者正在激活中"); + throw new FebsException(MessageSourceUtils.getString("nft_active_004")); + } + + if (DateUtil.between(new Date(), nftActive.getExpireTime(), DateUnit.SECOND) < 0) { + throw new FebsException(MessageSourceUtils.getString("nft_active_005")); } if (nftActive.getStatus() != 1) { @@ -442,7 +445,7 @@ DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), new BigDecimal(activeDto.getCount()), 8, 1, BigDecimal.ZERO, activeDto.getTxHash()); - fundFlow.setNewestPrice(AppContants.NFT_ACTIVE_PRICE); + fundFlow.setNewestPrice(AppContants.NFT_ACTIVE_PRICE.multiply(BigDecimal.valueOf(nftActive.getCount()))); dappFundFlowDao.insert(fundFlow); int count = nftActive.getCount() - activeDto.getCount(); @@ -451,6 +454,7 @@ } nftActive.setCount(count); + nftActive.setHash(activeDto.getTxHash()); dappNftActivationDao.updateById(nftActive); } @@ -462,6 +466,7 @@ UpdateWrapper<DappNftActivation> query = new UpdateWrapper<>(); query.eq("status", 1); query.eq("member_id", member.getId()); + query.ge("expire_time", new Date()); List<DappNftActivation> nftActivations = dappNftActivationDao.selectList(query); if (CollUtil.isEmpty(nftActivations)) { @@ -472,8 +477,8 @@ nftActivations.forEach(nft -> { ActiveNftListVo nftVo = new ActiveNftListVo(); nftVo.setId(nft.getId()); - nftVo.setRemain(DateUtil.between(nft.getOpenTime(), now, DateUnit.SECOND, false)); - + nftVo.setRemain(DateUtil.between(now, nft.getExpireTime(), DateUnit.SECOND, false)); + nftVo.setCount(nft.getCount()); list.add(nftVo); }); -- Gitblit v1.9.1