From ef49bcedc5f787cbf47fca657b751a6727189f5e Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 15 Jul 2022 10:25:54 +0800
Subject: [PATCH] fix
---
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java | 43 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 43 insertions(+), 0 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..5723b06 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,6 +50,7 @@
private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
private final DappOnlineTransferDao dappOnlineTransferDao;
private final ChainProducer chainProducer;
+ private final DappIdoAssetsDao dappIdoAssetsDao;
@Override
@@ -507,4 +508,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