From 46236454fdc29f1786fd8876438bf38e651037e6 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 19 Jul 2022 15:14:23 +0800
Subject: [PATCH] add idoAchieve.html
---
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java | 154 +++++++++++++++++++--------------------------------
1 files changed, 57 insertions(+), 97 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 3b2b748..d43960c 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
@@ -1,5 +1,6 @@
package cc.mrbird.febs.dapp.service.impl;
+import cc.mrbird.febs.common.configure.i18n.MessageSourceUtils;
import cc.mrbird.febs.common.contants.AppContants;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.common.exception.FebsException;
@@ -16,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;
@@ -43,6 +45,7 @@
private final DappMemberDao dappMemberDao;
private final DappWalletMineDao dappWalletMineDao;
private final DappWalletCoinDao dappWalletCoinDao;
+ private final DappIdoAssetsDao dappIdoAssetsDao;
private final DappFundFlowDao dappFundFlowDao;
private final DappAccountMoneyChangeDao dappAccountMoneyChangeDao;
private final RedisUtils redisUtils;
@@ -52,17 +55,11 @@
public WalletInfoVo walletInfo() {
DappMemberEntity member = LoginUserUtil.getAppUser();
- Map<String, BigDecimal> map = dappFundFlowDao.selectAmountTotalByType(member.getId());
+ DappIdoAssetsEntity idoAssets = dappIdoAssetsDao.selectByMemberId(member.getId());
WalletInfoVo walletInfo = new WalletInfoVo();
- List<DappMemberEntity> direct = dappMemberDao.selectChildMemberDirectOrNot(member.getInviteId(), 1);
- List<DappMemberEntity> notDirect = dappMemberDao.selectChildMemberDirectOrNot(member.getInviteId(), 2);
- BigDecimal childHoldAmount = dappMemberDao.selectChildHoldAmount(member.getInviteId());
-
- walletInfo.setTotalChild(notDirect.size());
- walletInfo.setDirectCnt(direct.size());
- walletInfo.setTotalChildCoin(childHoldAmount);
- walletInfo.setTeamReward(map.get("teamReward"));
- walletInfo.setMiningAmount(map.get("mine"));
+ walletInfo.setBoxCnt(idoAssets.getBoxCnt());
+ walletInfo.setCoinAmount(idoAssets.getCoinAmount());
+ walletInfo.setUsdtAmount(idoAssets.getUsdtAmount());
walletInfo.setInviteId(member.getInviteId());
return walletInfo;
}
@@ -209,102 +206,26 @@
public Long transfer(TransferDto transferDto) {
DappMemberEntity member = LoginUserUtil.getAppUser();
- if (member.getActiveStatus() == 2) {
- throw new FebsException("请联系邀请人转币激活");
- }
-
- // 每日出U剩余量(卖币)
- BigDecimal usdtRemain = (BigDecimal) redisUtils.get(AppContants.REDIS_KEY_USDT_OUT_LIMIT_REMAIN);
- // 用户24小时可出售量
- BigDecimal saleCoinRemain = (BigDecimal) redisUtils.get(AppContants.REDIS_KEY_COIN_REMAIN + member.getAddress());
- BigDecimal buyCoinRemain = (BigDecimal) redisUtils.get(AppContants.REDIS_KEY_TRANSFER_POOL_VOL_REMAIN);
- // 铸池中的币的剩余量
- BigDecimal makeCoinRemain = (BigDecimal) redisUtils.get(AppContants.REDIS_KEY_MAKE_POOL_CNT);
-
- String hasStart = redisUtils.getString(AppContants.SYSTEM_START_FLAG);
if (transferDto.getId() == null) {
- if (DappFundFlowEntity.TYPE_SALE == transferDto.getType()) {
- if (!"start".equals(hasStart)) {
- throw new FebsException("系统还未启动");
- }
-
- if (transferDto.getAmount().multiply(transferDto.getPrice()).compareTo(usdtRemain) > 0) {
- throw new FebsException("超过当日出U剩余量");
- }
-
- if (transferDto.getAmount().compareTo(saleCoinRemain) > 0) {
- throw new FebsException("超出24小时内可售量");
- }
-
- usdtRemain = usdtRemain.subtract(transferDto.getAmount().multiply(transferDto.getPrice()));
- saleCoinRemain = saleCoinRemain.subtract(transferDto.getAmount());
-
- // 修改当日U剩余量
- redisUtils.set(AppContants.REDIS_KEY_USDT_OUT_LIMIT_REMAIN, usdtRemain);
- // 修改用户24小时可售量
- redisUtils.set(AppContants.REDIS_KEY_COIN_REMAIN + member.getAddress(), saleCoinRemain);
- } else if (DappFundFlowEntity.TYPE_BUY == transferDto.getType()) {
- if ("start".equals(hasStart)) {
- if (transferDto.getAmount().compareTo(buyCoinRemain) > 0) {
- throw new FebsException("超过当日可购买量");
- }
- buyCoinRemain = buyCoinRemain.subtract(transferDto.getAmount());
-
- // 修改当日可购买量
- redisUtils.set(AppContants.REDIS_KEY_TRANSFER_POOL_VOL_REMAIN, buyCoinRemain);
- // 如果系统还没有启动,则判断铸池中的剩余量
- } else {
- DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.DIC_TYPE_SYSTEM_SETTING, AppContants.DIC_VALUE_MAKER_MIN_LIMIT);
- if (transferDto.getAmount().compareTo(new BigDecimal(dic.getValue())) < 0) {
- throw new FebsException("未达到最低购买要求");
- }
-
- if (transferDto.getAmount().compareTo(makeCoinRemain) > 0) {
- throw new FebsException("可购数量不足");
- }
- makeCoinRemain = makeCoinRemain.subtract(transferDto.getAmount());
-
- // 修改铸池量
- redisUtils.set(AppContants.REDIS_KEY_MAKE_POOL_CNT, makeCoinRemain);
- }
+ if (new BigDecimal(300).compareTo(transferDto.getAmount()) < 0) {
+ throw new FebsException("Do Not More Than 300 USDT");
}
DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), transferDto.getAmount(), transferDto.getType(), 1, transferDto.getFee(), transferDto.getTxHash());
fundFlow.setNewestPrice(transferDto.getPrice());
dappFundFlowDao.insert(fundFlow);
return fundFlow.getId();
- }
-
- if ("success".equals(transferDto.getFlag())) {
- DappFundFlowEntity flow = dappFundFlowDao.selectById(transferDto.getId());
-
- flow.setFromHash(transferDto.getTxHash());
- dappFundFlowDao.updateById(flow);
} else {
- DappFundFlowEntity flow = dappFundFlowDao.selectById(transferDto.getId());
- if (flow.getStatus() == 1) {
- if (DappFundFlowEntity.TYPE_BUY == flow.getType()) {
- if ("start".equals(hasStart)) {
- buyCoinRemain = buyCoinRemain.add(flow.getAmount());
+ if ("success".equals(transferDto.getFlag())) {
+ DappFundFlowEntity flow = dappFundFlowDao.selectById(transferDto.getId());
- // 修改当日可购买量
- redisUtils.set(AppContants.REDIS_KEY_TRANSFER_POOL_VOL_REMAIN, buyCoinRemain);
- } else {
- makeCoinRemain = makeCoinRemain.add(flow.getAmount());
-
- // 修改铸池量
- redisUtils.set(AppContants.REDIS_KEY_MAKE_POOL_CNT, makeCoinRemain);
- }
- } else {
- usdtRemain = usdtRemain.add(transferDto.getAmount().multiply(transferDto.getPrice()));
- saleCoinRemain = saleCoinRemain.add(transferDto.getAmount());
-
- // 修改当日U剩余量
- redisUtils.set(AppContants.REDIS_KEY_USDT_OUT_LIMIT_REMAIN, usdtRemain);
- // 修改用户24小时可售量
- redisUtils.set(AppContants.REDIS_KEY_COIN_REMAIN + member.getAddress(), saleCoinRemain);
+ flow.setFromHash(transferDto.getTxHash());
+ dappFundFlowDao.updateById(flow);
+ } else {
+ DappFundFlowEntity flow = dappFundFlowDao.selectById(transferDto.getId());
+ if (flow.getStatus() == 1) {
+ dappFundFlowDao.deleteById(transferDto.getId());
}
- dappFundFlowDao.deleteById(transferDto.getId());
}
}
return null;
@@ -313,7 +234,6 @@
@Override
public Map<String, BigDecimal> calPrice(PriceDto priceDto) {
DappMemberEntity member = LoginUserUtil.getAppUser();
-
String hasStart = redisUtils.getString(AppContants.SYSTEM_START_FLAG);
if (!"start".equals(hasStart)) {
@@ -339,4 +259,44 @@
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(() -> {
+ 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();
+
+ return box.getIndex();
+ }
+
+ @Override
+ public IPage<DappIdoAssetsEntity> selectIdoAchieveInPage(DappIdoAssetsEntity dappIdoAssetsEntity, QueryRequest request) {
+ Page<DappIdoAssetsEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ return this.dappIdoAssetsDao.selectAchieveListInPage(dappIdoAssetsEntity, page);
+ }
}
--
Gitblit v1.9.1