From 9471f6e4286ce7e9f2d879951603d14c578d839f Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 01 Apr 2024 18:19:21 +0800
Subject: [PATCH] 每人每日质押设置

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java |   30 ++++++++++++++++++++++++------
 1 files changed, 24 insertions(+), 6 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 b58d543..2e6060e 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
@@ -17,6 +17,7 @@
 import cc.mrbird.febs.rabbit.producer.ChainProducer;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
@@ -235,6 +236,23 @@
     @Transactional(rollbackFor = Exception.class)
     public Long transfer(TransferDto transferDto) {
         DappMemberEntity member = LoginUserUtil.getAppUser();
+        QueryWrapper<DappFundFlowEntity> objectQueryWrapper = new QueryWrapper<>();
+        objectQueryWrapper.eq("type" ,FlowTypeEnum.ZHI_YA.getValue());
+        objectQueryWrapper.eq("status" ,DappFundFlowEntity.WITHDRAW_STATUS_AGREE);
+        List<DappFundFlowEntity> dappFundFlowEntities = dappFundFlowDao.selectList(objectQueryWrapper);
+        BigDecimal zhiyaAmount = new BigDecimal(redisUtils.getString(DataDicEnum.MEMBER_ZHIYA_AMOUNT.getValue()));
+
+        Integer zhiyaTime = Integer.parseInt(redisUtils.getString(DataDicEnum.MEMBER_ZHIYA_TIME.getValue()));
+        if(CollUtil.isNotEmpty(dappFundFlowEntities)){
+            if(dappFundFlowEntities.size() >= zhiyaTime){
+                throw new FebsException("今日暂停质押");
+            }
+            BigDecimal teamAchieveMemberSum = dappFundFlowEntities.stream().map(DappFundFlowEntity::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add).negate();
+            if(zhiyaAmount.compareTo(teamAchieveMemberSum.add(transferDto.getAmount())) < 0){
+                throw new FebsException("今日最多质押"+zhiyaAmount.subtract(teamAchieveMemberSum).setScale(4,BigDecimal.ROUND_DOWN));
+            }
+        }
+
 
         String hasStart = redisUtils.getString(DataDicEnum.SYSTEM_START_FLAG.getValue());
         BigDecimal minAmount = new BigDecimal(redisUtils.getString(DataDicEnum.GFA_BUY_MIN_AMOUNT.getValue()));
@@ -253,12 +271,12 @@
                     if (transferDto.getAmount().compareTo(minAmount) < 0) {
                         throw new FebsException("超过购买限制");
                     }
-                    if (BigDecimal.ZERO.compareTo(gfaDays) >= 0) {
-                        throw new FebsException("今日暂停质押");
-                    }
-                    if (transferDto.getAmount().compareTo(gfaDays) > 0) {
-                        throw new FebsException("今日最多质押"+gfaDays);
-                    }
+//                    if (BigDecimal.ZERO.compareTo(gfaDays) >= 0) {
+//                        throw new FebsException("今日暂停质押");
+//                    }
+//                    if (transferDto.getAmount().compareTo(gfaDays) > 0) {
+//                        throw new FebsException("今日最多质押"+gfaDays);
+//                    }
                 } else {
                     throw new FebsException("暂停质押");
                 }

--
Gitblit v1.9.1