From 1ea6fad18342c1a06901552784de38bfad06c808 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 15 Jul 2022 10:39:58 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java |   64 ++++++++++++++++++++++++++++----
 1 files changed, 56 insertions(+), 8 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
index c73c96b..ef65601 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -50,20 +50,26 @@
     private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
     private final DappOnlineTransferDao dappOnlineTransferDao;
     private final ChainProducer chainProducer;
+    private final DappIdoAssetsDao dappIdoAssetsDao;
 
 
     @Override
     public Map<String, Object> findTotalInComeAndList() {
-        List<DappMemberEntity> addresses = dappMemberDao.selectList(null);
-        DappMemberEntity mineAddress = dappMemberDao.selectByAddress(ChainEnum.BSC_TFC.getAddress(), null);
-        BigDecimal coinCnt = dappMemberDao.selectAllBalance("normal");
+//        List<DappMemberEntity> addresses = dappMemberDao.selectList(null);
+//        DappMemberEntity mineAddress = dappMemberDao.selectByAddress(ChainEnum.BSC_TFC.getAddress(), null);
+//        BigDecimal coinCnt = dappMemberDao.selectAllBalance("normal");
 
         Map<String, Object> result = new HashMap<>();
-        result.put("total", mineAddress.getBalance());
-        result.put("addreessCnt", addresses.size());
-        result.put("coinCnt", coinCnt);
-        result.put("sourceTFC", ChainService.getInstance(ChainEnum.BSC_TFC.name()).balanceOf(ChainEnum.BSC_TFC_SOURCE.getAddress()));
-        result.put("sourceUSDT", ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOf(ChainEnum.BSC_USDT_SOURCE.getAddress()));
+        List<DappIdoAssetsEntity> hasAssets = dappIdoAssetsDao.selectListHasAssets();
+        if (CollUtil.isNotEmpty(hasAssets)) {
+            result.put("buyCnt", hasAssets.size());
+        } else {
+            result.put("buyCnt", 0);
+        }
+//        result.put("addreessCnt", addresses.size());
+//        result.put("coinCnt", coinCnt);
+//        result.put("sourceTFC", ChainService.getInstance(ChainEnum.BSC_TFC.name()).balanceOf(ChainEnum.BSC_TFC_SOURCE.getAddress()));
+//        result.put("sourceUSDT", ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOf(ChainEnum.BSC_USDT_SOURCE.getAddress()));
         return result;
     }
 
@@ -507,4 +513,46 @@
         redisUtils.set(AppContants.REDIS_KEY_USDT_OUT_LIMIT, total);
         redisUtils.set(AppContants.REDIS_KEY_USDT_OUT_LIMIT_REMAIN, total);
     }
+
+    @Override
+    public void idoBuy(DappMemberEntity member, BigDecimal amount) {
+        DappIdoAssetsEntity idoAssets = dappIdoAssetsDao.selectByMemberId(member.getId());
+        BigDecimal count = amount.divide(new BigDecimal(50), 0, RoundingMode.HALF_UP);
+        BigDecimal coinAmount = new BigDecimal(1000).multiply(count);
+        idoAssets.setCoinAmount(idoAssets.getCoinAmount().add(coinAmount));
+        idoAssets.setUsdtAmount(idoAssets.getUsdtAmount().add(amount));
+        dappIdoAssetsDao.updateById(idoAssets);
+
+        DappMemberEntity parent = dappMemberDao.selectMemberInfoByInviteId(member.getRefererId());
+        if (parent == null) {
+            return;
+        }
+
+        int box = 0;
+        Object parentRecommend = redisUtils.hget(AppContants.IDO_MEMBER_RECOMMEND_CNT, parent.getAddress());
+        if (parentRecommend == null) {
+            redisUtils.hset(AppContants.IDO_MEMBER_RECOMMEND_CNT, parent.getAddress(), 1);
+        } else {
+            int i = (int) parentRecommend;
+
+            // 如果超过10个,则新增一个盲盒,并重置推荐人数
+            if (++i == 10) {
+                box = 1;
+                redisUtils.hset(AppContants.IDO_MEMBER_RECOMMEND_CNT, parent.getAddress(), 1);
+            } else {
+                redisUtils.hset(AppContants.IDO_MEMBER_RECOMMEND_CNT, parent.getAddress(), i);
+            }
+        }
+
+        if (box > 0) {
+            DappFundFlowEntity boxFundFlow = new DappFundFlowEntity(parent.getId(), new BigDecimal(box), 5, 2, BigDecimal.ZERO);
+            dappFundFlowDao.insert(boxFundFlow);
+        }
+
+        BigDecimal returnCoin = coinAmount.multiply(new BigDecimal(5).divide(new BigDecimal(100), 2, RoundingMode.UP));
+        DappIdoAssetsEntity parentIdoAssets = dappIdoAssetsDao.selectById(parent.getId());
+        parentIdoAssets.setBoxCnt(parentIdoAssets.getBoxCnt() + box);
+        parentIdoAssets.setCoinAmount(parentIdoAssets.getCoinAmount().add(returnCoin));
+        dappIdoAssetsDao.updateById(parentIdoAssets);
+    }
 }

--
Gitblit v1.9.1