From 1599c832fb3267afdd6672871c116c66b6106fc7 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 22 Apr 2024 11:13:27 +0800
Subject: [PATCH] 滑点权重改成U计算
---
src/main/java/cc/mrbird/febs/dapp/service/impl/AsyncCjServiceImpl.java | 30 ++++++++++++++++++++++++------
1 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/AsyncCjServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/AsyncCjServiceImpl.java
index 6f04777..c884515 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/AsyncCjServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/AsyncCjServiceImpl.java
@@ -247,9 +247,10 @@
BigDecimal usdtAmount = new BigDecimal(
redisUtils.getString(DataDicEnum.GFA_HUA_DIAN_WALLET_USDT_AMOUNT.getValue())
).setScale(2,BigDecimal.ROUND_DOWN);
- BigDecimal coinAmount = new BigDecimal(
- redisUtils.getString(DataDicEnum.GFA_HUA_DIAN_WALLET_COIN_AMOUNT.getValue())
- ).setScale(2,BigDecimal.ROUND_DOWN);
+ BigDecimal coinAmount = BigDecimal.ZERO;
+// BigDecimal coinAmount = new BigDecimal(
+// redisUtils.getString(DataDicEnum.GFA_HUA_DIAN_WALLET_COIN_AMOUNT.getValue())
+// ).setScale(2,BigDecimal.ROUND_DOWN);
if(BigDecimal.ZERO.compareTo(usdtAmount) > 0){
return;
}
@@ -318,6 +319,19 @@
}else if(FlowTypeEnum.DAI_BI_OUT.getValue() == type){
//代币转账
String transfer = ChainService.getInstance(ChainEnum.BSC_GFA.name()).transfer(dappMemberEntity.getAddress(), amount);
+ int retryTime = 0;//重试次数
+ while (StrUtil.isEmpty(transfer)) {
+ // 休眠2s
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ if(retryTime < 3){
+ transfer = ChainService.getInstance(ChainEnum.BSC_USDT.name()).transfer(dappMemberEntity.getAddress(), amount);
+ }
+ retryTime ++ ;
+ }
if(StrUtil.isNotEmpty(transfer)){
dappFundFlowEntity.setFromHash(transfer);
dappFundFlowEntity.setStatus(2);
@@ -428,7 +442,7 @@
queryWrapper.eq("state",DappAchieve.STATUS_ING);
List<DappAchieve> dappAchieveSumList = dappAchieveMapper.selectList(queryWrapper);
//个人团队总业绩
- BigDecimal teamAchieveMemberSum = dappAchieveSumList.stream().map(DappAchieve::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+ BigDecimal teamAchieveMemberSum = dappAchieveSumList.stream().map(item-> item.getAmount().multiply(item.getPrice())).reduce(BigDecimal.ZERO, BigDecimal::add);
if(BigDecimal.ZERO.compareTo(teamAchieveMemberSum) >= 0){
continue;
}
@@ -503,10 +517,13 @@
BigDecimal multiplyDivideEveryUsdt = divideEveryUsdt.multiply(selfPercentMultiply);
BigDecimal multiplyDivideEveryCoin = divideEveryCoin.multiply(selfPercentMultiply);
//当前生效中的质押总数
- BigDecimal amountMemberTotal = dappAchieves.stream().map(DappAchieve::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+ BigDecimal amountMemberTotal = dappAchieves.stream().map(item-> item.getAmount().multiply(item.getPrice())).reduce(BigDecimal.ZERO, BigDecimal::add);
if(BigDecimal.ZERO.compareTo(amountMemberTotal) >= 0){
return;
}
+
+
+
BigDecimal everyUsdt = multiplyDivideEveryUsdt.divide(amountMemberTotal,8,BigDecimal.ROUND_DOWN);
BigDecimal everyCoin = multiplyDivideEveryCoin.divide(amountMemberTotal,8,BigDecimal.ROUND_DOWN);
@@ -514,7 +531,8 @@
Set<Long> set = collect.keySet(); // 得到所有key的集合
for (Long memberId : set) {
//当前每个人生效中的质押总数
- BigDecimal amountMember = collect.get(memberId).stream().map(DappAchieve::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+// BigDecimal amountMember = collect.get(memberId).stream().map(DappAchieve::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+ BigDecimal amountMember = collect.get(memberId).stream().map(item-> item.getAmount().multiply(item.getPrice())).reduce(BigDecimal.ZERO, BigDecimal::add);
//这个人实际可以分到的数量USDT
BigDecimal multiplyUsdt = amountMember.multiply(everyUsdt).setScale(8, BigDecimal.ROUND_DOWN);
if(BigDecimal.ZERO.compareTo(multiplyUsdt) >= 0){
--
Gitblit v1.9.1