Helius
2022-08-11 7c5eb91ce4cc1a02077aeb84941368373278fe1b
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;
    }
}