From 3abd19e8cfddd6d7fbfaae331d5b750f55c34794 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 12 Aug 2022 18:23:18 +0800 Subject: [PATCH] fix --- src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java | 23 ++++++++++++++++------- 1 files changed, 16 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 d1b6b1e..fd618a5 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,11 +411,10 @@ nftActivation.setCount(box.getIndex()); nftActivation.setOpenTime(time); nftActivation.setExpireTime(expire); - + nftActivation.setStatus(1); dappNftActivationDao.insert(nftActivation); ActiveNftListVo nft = new ActiveNftListVo(); - nft.setStatus(3); nft.setCount(box.getIndex()); nft.setId(nftActivation.getId()); nft.setRemain(DateUtil.between(time, expire, DateUnit.SECOND)); @@ -437,16 +435,26 @@ throw new FebsException("NFT不足或者正在激活中"); } + if (DateUtil.between(new Date(), nftActive.getExpireTime(), DateUnit.SECOND) < 0) { + throw new FebsException("NFT已过期"); + } + if (nftActive.getStatus() != 1) { throw new FebsException(MessageSourceUtils.getString("nft_active_001")); } 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); - nftActive.setCount(nftActive.getCount() - activeDto.getCount()); + int count = nftActive.getCount() - activeDto.getCount(); + if (count == 0) { + nftActive.setStatus(3); + } + + nftActive.setCount(count); + nftActive.setHash(activeDto.getTxHash()); dappNftActivationDao.updateById(nftActive); } @@ -458,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)) { @@ -468,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