fix
Helius
2022-08-29 807abaa768db7dc8605216abffdb185739bb2d2e
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -387,25 +387,8 @@
        BoxUtil.Box box = BoxUtil.openBox();
//        DappFundFlowEntity boxFundFlow = new DappFundFlowEntity(member.getId(), new BigDecimal(box.getIndex()), 6, 2, BigDecimal.ZERO);
//        dappFundFlowDao.insert(boxFundFlow);
//
//        new Thread(() -> {
//            try {
//                int count = box.getIndex();
//                while (count > 0) {
//                    ChainService.getInstance(ChainEnum.BSC_NFT_SDC.name()).safeMintNFT(member.getAddress());
//                    Thread.sleep(5000);
//                    count--;
//                }
//            } catch (Exception e) {
//                e.printStackTrace();
//                log.error("发放卡牌错误", e);
//            }
//        }).start();
        Date time = new Date();
        Date expire = DateUtil.offset(time, DateField.HOUR, 2);
        Date expire = DateUtil.offset(time, DateField.HOUR, 48);
        DappNftActivation nftActivation = new DappNftActivation();
        nftActivation.setMemberId(member.getId());
        nftActivation.setCount(box.getIndex());
@@ -428,20 +411,28 @@
        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) {
            throw new FebsException(MessageSourceUtils.getString("nft_active_001"));
        }
        PriceDto priceDto = new PriceDto();
        priceDto.setAmount(BigDecimal.ZERO);
        Map<String, BigDecimal> price = calPrice(priceDto);
        DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), new BigDecimal(activeDto.getCount()), 8, 1, BigDecimal.ZERO, activeDto.getTxHash());
        fundFlow.setNewestPrice(AppContants.NFT_ACTIVE_PRICE.multiply(BigDecimal.valueOf(nftActive.getCount())));
        fundFlow.setTargetAmount(AppContants.NFT_ACTIVE_PRICE.multiply(BigDecimal.valueOf(nftActive.getCount())).multiply(price.get("x")));
        fundFlow.setNewestPrice(price.get("x"));
        dappFundFlowDao.insert(fundFlow);
        int count = nftActive.getCount() - activeDto.getCount();
@@ -462,6 +453,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)) {