From ed4d8807978a6eed32d2b2e1273fdcaa89c6d9a4 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 09 May 2024 17:38:14 +0800
Subject: [PATCH] 合约监听
---
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java | 30 ++++++++++++++++++++----------
1 files changed, 20 insertions(+), 10 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 b4c3daf..1161fdd 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
@@ -87,10 +87,9 @@
BigDecimal ccToday = BigDecimal.ZERO;
if(CollUtil.isNotEmpty(ccTodays)){
for(DappMemberFund dappMemberFund : ccTodays){
- BigDecimal sameCoin = dappMemberFund.getSameCoin();
- BigDecimal finxMineCoin = dappMemberFund.getFinxMineCoin();
- BigDecimal price = dappMemberFund.getPrice();
- BigDecimal add = sameCoin.divide(price, 8, BigDecimal.ROUND_DOWN).add(finxMineCoin);
+ BigDecimal usdtCoin = dappMemberFund.getUsdtCoin();
+ BigDecimal coinTarget = dappMemberFund.getCoinTarget();
+ BigDecimal add = coinTarget.add(usdtCoin);
ccToday = ccToday.add(add);
}
}
@@ -98,23 +97,23 @@
List<DappMemberFund> dappMemberFunds = dappMemberFundMapper.selectList(null);
walletInfo.setCcTotal(CollUtil.isEmpty(dappMemberFunds) ? BigDecimal.ZERO :
- dappMemberFunds.stream().map(item-> item.getAmount()).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(8,BigDecimal.ROUND_DOWN));
+ dappMemberFunds.stream().map(DappMemberFund::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(8,BigDecimal.ROUND_DOWN));
List<DappAchieve> dappAchieves = dappAchieveMapper.selectListByMemberId(memberId);
BigDecimal goldAmountDone = dappAchieveMapper.selectGoldAmountByMemberId(memberId);
BigDecimal coinAmountDone = dappAchieveMapper.selectCoinAmountByMemberId(memberId);
if(CollUtil.isNotEmpty(dappAchieves)){
- BigDecimal goldAmount = dappAchieves.stream().map(item-> item.getGoldAmount()).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(8,BigDecimal.ROUND_DOWN);
- BigDecimal coinAmount = dappAchieves.stream().map(item-> item.getCoinAmount()).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(8,BigDecimal.ROUND_DOWN);
+ BigDecimal goldAmount = dappAchieves.stream().map(DappAchieve::getGoldAmount).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(8,BigDecimal.ROUND_DOWN);
+ BigDecimal coinAmount = dappAchieves.stream().map(DappAchieve::getCoinAmount).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(8,BigDecimal.ROUND_DOWN);
BigDecimal goldAmountAva = goldAmount.subtract(goldAmountDone);//金本位剩余
BigDecimal coinAmountAva = coinAmount.subtract(coinAmountDone);//币本位剩余
- if(goldAmountAva.compareTo(BigDecimal.ZERO) > 0){
+ if(goldAmountAva.compareTo(new BigDecimal(0.001)) > 0){
walletInfo.setGoldAmount(goldAmountAva);
}else{
walletInfo.setGoldAmount(BigDecimal.ZERO);
}
- if(coinAmountAva.compareTo(BigDecimal.ZERO) > 0){
+ if(coinAmountAva.compareTo(new BigDecimal(0.001)) > 0){
walletInfo.setCoinAmount(coinAmountAva);
}else{
walletInfo.setCoinAmount(BigDecimal.ZERO);
@@ -374,10 +373,21 @@
dappAchieve.setAmountMax(achieveOut.multiply(amount).setScale(2,BigDecimal.ROUND_DOWN));
dappAchieve.setState(DappAchieve.STATUS_ING);
dappAchieve.setAmountDone(BigDecimal.ZERO);
+
+ /**
+ * 计算金本位和币本位
+ * 金本位:数量*价格*70*产矿百分比
+ * 币本位:数量*30*产矿百分比
+ */
+ BigDecimal price = dappAchieve.getPrice();
+ BigDecimal goldAmount = amount.multiply(price).multiply(new BigDecimal("0.7")).multiply(achieveOut).setScale(8, BigDecimal.ROUND_DOWN);
+ BigDecimal coinAmount = amount.multiply(new BigDecimal("0.3")).multiply(achieveOut).setScale(8, BigDecimal.ROUND_DOWN);
+ dappAchieve.setGoldAmount(goldAmount);
+ dappAchieve.setCoinAmount(coinAmount);
dappAchieveMapper.insert(dappAchieve);
asyncCjService.insertTeamPerk(flow.getId(), dappAchieve.getId());
- asyncCjService.calculateAchieve(dappAchieve);
+// asyncCjService.calculateAchieve(dappAchieve);
//发送一个延时队列消息。24小时之后产生第一次的质押产出
// chainProducer.sendZhiYaDelayMsg(dappAchieve.getId(), 24 * 60 * 60 * 1000L);
--
Gitblit v1.9.1