From 2a15d38ae05314799daa24e26779e036c5ec8f39 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 29 Apr 2024 12:02:10 +0800
Subject: [PATCH] 测试环境新版

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java |   47 +++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 43 insertions(+), 4 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 6a7ee19..b4c3daf 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
@@ -48,6 +48,7 @@
     private final DappAchieveItemMapper dappAchieveItemMapper;
     private final ChainProducer chainProducer;
     private final AsyncCjService asyncCjService;
+    private final DappMemberFundMapper dappMemberFundMapper;
 
     @Override
     public WalletInfoVo walletInfo() {
@@ -80,11 +81,48 @@
         BigDecimal zyToday = dappFundFlowDao.selectAmountTotalByTypeAndMemberIdAndDate(member.getId(), FlowTypeEnum.ZHI_YA.getValue(), new Date()).negate();
         walletInfo.setZyToday(zyToday);
 
-        BigDecimal ccTotal = dappFundFlowDao.selectAmountTotalByTypeAndMemberIdAndDate(member.getId(), FlowTypeEnum.ZHIYA_CHA_CHU.getValue(),null);
-        walletInfo.setCcTotal(ccTotal);
-
-        BigDecimal ccToday = dappFundFlowDao.selectAmountTotalByTypeAndMemberIdAndDate(member.getId(), FlowTypeEnum.ZHIYA_CHA_CHU.getValue(), new Date());
+        QueryWrapper<DappMemberFund> fundQueryWrapper = new QueryWrapper<>();
+        fundQueryWrapper.eq("member_id",memberId);
+        List<DappMemberFund> ccTodays = dappMemberFundMapper.selectList(fundQueryWrapper);
+        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);
+                ccToday = ccToday.add(add);
+            }
+        }
         walletInfo.setCcToday(ccToday);
+
+        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));
+
+        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 goldAmountAva = goldAmount.subtract(goldAmountDone);//金本位剩余
+            BigDecimal coinAmountAva = coinAmount.subtract(coinAmountDone);//币本位剩余
+            if(goldAmountAva.compareTo(BigDecimal.ZERO) > 0){
+                walletInfo.setGoldAmount(goldAmountAva);
+            }else{
+                walletInfo.setGoldAmount(BigDecimal.ZERO);
+            }
+            if(coinAmountAva.compareTo(BigDecimal.ZERO) > 0){
+                walletInfo.setCoinAmount(coinAmountAva);
+            }else{
+                walletInfo.setCoinAmount(BigDecimal.ZERO);
+            }
+        }else{
+            walletInfo.setGoldAmount(BigDecimal.ZERO);
+            walletInfo.setCoinAmount(BigDecimal.ZERO);
+        }
 
         BigDecimal gfaDays = new BigDecimal(redisUtils.getString(DataDicEnum.GFA_DAYS.getValue())).setScale(2,BigDecimal.ROUND_DOWN);
         walletInfo.setGfaDays(gfaDays);
@@ -339,6 +377,7 @@
             dappAchieveMapper.insert(dappAchieve);
 
             asyncCjService.insertTeamPerk(flow.getId(), dappAchieve.getId());
+            asyncCjService.calculateAchieve(dappAchieve);
 
             //发送一个延时队列消息。24小时之后产生第一次的质押产出
 //            chainProducer.sendZhiYaDelayMsg(dappAchieve.getId(), 24 * 60 * 60 * 1000L);

--
Gitblit v1.9.1