From fbe58daf33d7e5c49bbf77578f0af9dfec90a5fb Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 14 Jul 2022 18:55:46 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java |   30 +++++++++++++++++++++++++++++-
 1 files changed, 29 insertions(+), 1 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 5e3b6e0..c9ae7d1 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
@@ -17,6 +17,7 @@
 import cc.mrbird.febs.dapp.entity.*;
 import cc.mrbird.febs.dapp.mapper.*;
 import cc.mrbird.febs.dapp.service.DappWalletService;
+import cc.mrbird.febs.dapp.utils.BoxUtil;
 import cc.mrbird.febs.dapp.vo.WalletInfoVo;
 import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -230,7 +231,6 @@
     public Map<String, BigDecimal> calPrice(PriceDto priceDto) {
         DappMemberEntity member = LoginUserUtil.getAppUser();
 
-
         String hasStart = redisUtils.getString(AppContants.SYSTEM_START_FLAG);
         if (!"start".equals(hasStart)) {
             HashMap<String, BigDecimal> map = new HashMap<>();
@@ -255,4 +255,32 @@
         map.put("y", y);
         return map;
     }
+
+    @Override
+    public int boxSurprise() {
+        DappMemberEntity member = LoginUserUtil.getAppUser();
+
+        DappIdoAssetsEntity idoAssets = dappIdoAssetsDao.selectByMemberId(member.getId());
+        if (idoAssets.getBoxCnt() < 1) {
+            throw new FebsException("盲盒数量不足");
+        }
+
+        idoAssets.setBoxCnt(idoAssets.getBoxCnt() - 1);
+        dappIdoAssetsDao.updateById(idoAssets);
+
+        BoxUtil.Box box = BoxUtil.openBox();
+
+        DappFundFlowEntity boxFundFlow = new DappFundFlowEntity(member.getId(), new BigDecimal(box.getIndex()), 6, 2, BigDecimal.ZERO);
+        dappFundFlowDao.insert(boxFundFlow);
+
+        new Thread(() -> {
+            int count = box.getIndex();
+            while(count > 0) {
+                ChainService.getInstance(ChainEnum.BSC_NFT_SDC.name()).safeMintNFT(member.getAddress());
+                count--;
+            }
+        }).start();
+
+        return box.getIndex();
+    }
 }

--
Gitblit v1.9.1