From b3b3baf9a3b0147ca38476450ca1823c291abd20 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 21 Jun 2024 23:02:46 +0800
Subject: [PATCH] 后台矩阵列表

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java |   77 +++++++++++++++++++++++++++++++++-----
 1 files changed, 66 insertions(+), 11 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 f5d03db..13c2722 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
@@ -28,6 +28,7 @@
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -52,7 +53,6 @@
     private final ChainProducer chainProducer;
     private final DappSystemDao dappSystemDao;
     private final DbMemberNodeMapper dbMemberNodeMapper;
-    private final DappWalletService dappWalletService;
 
     @Override
     public WalletInfoVo walletInfo() {
@@ -60,13 +60,18 @@
 
         DappMemberEntity memberInfo = dappMemberDao.selectById(member.getId());
         WalletInfoVo walletInfo = new WalletInfoVo();
-//        List<DappMemberEntity> direct = dappMemberDao.selectChildMemberDirectOrNot(member.getInviteId(), 1, 1);
+        List<DappMemberEntity> inviteList = dappMemberDao.selectChildMemberDirectOrNot(member.getInviteId(), 1, null);
         List<DappMemberEntity> direct = dappMemberDao.selectChildMemberDirectOrNot(member.getInviteId(), 2, null);
         DappWalletCoinEntity walletCoin = dappWalletCoinDao.selectByMemberId(member.getId());
         DappWalletMineEntity walletMine = dappWalletMineDao.selectByMemberId(member.getId());
 
         DappMineDataEntity mineData = dappSystemDao.selectMineDataForOne();
-        walletInfo.setDirectCnt(direct.size());
+        walletInfo.setDirectCnt(CollUtil.isEmpty(direct) ? 0 : direct.size());
+        walletInfo.setInviteCnt(CollUtil.isEmpty(inviteList) ? 0 : inviteList.size());
+
+        List<DappMemberEntity> collect = dappMemberDao.selectChildMemberDirectOrNot(member.getInviteId(), 2, 1);
+//        List<DappMemberEntity> collect = direct.stream().filter(dappMemberEntity -> dappMemberEntity.getActiveStatus() == 1).collect(Collectors.toList());
+        walletInfo.setActiveCnt(CollUtil.isEmpty(collect) ? 0 : collect.size());
 //        walletInfo.setInviteId(member.getActiveStatus() == 1 ? member.getInviteId() : "-");
         walletInfo.setInviteId(member.getInviteId());
         walletInfo.setBalance(walletCoin.getAvailableAmount());
@@ -98,6 +103,27 @@
 
         BigDecimal bigDecimal = dappFundFlowDao.selectSumAmountByMemberIdAndType(member.getId(), 14);
         walletInfo.setBuyNodePerk(bigDecimal);
+
+        int i = memberInfo.getBuyNode() * 2000;
+        int teamCnt = CollUtil.isEmpty(direct) ? 0 : direct.size();
+        int i1 = teamCnt * 15;
+        QueryWrapper<DbMemberNode> objectQueryWrapper = new QueryWrapper<>();
+        objectQueryWrapper.eq("member_id",member.getId());
+        List<DbMemberNode> dbMemberNodes1 = dbMemberNodeMapper.selectList(objectQueryWrapper);
+        walletInfo.setScoreCnt(i+i1+(CollUtil.isEmpty(dbMemberNodes1) ? 0 : dbMemberNodes1.size())*300);
+//        Integer activeStatus = ObjectUtil.isEmpty(member.getActiveStatus()) ? 2 : member.getActiveStatus();
+//        if(1 == activeStatus){
+//            int i = memberInfo.getBuyNode() * 2000;
+//            int teamCnt = CollUtil.isEmpty(direct) ? 0 : direct.size();
+//            int i1 = teamCnt * 15;
+//            QueryWrapper<DbMemberNode> objectQueryWrapper = new QueryWrapper<>();
+//            objectQueryWrapper.eq("member_id",member.getId());
+//            List<DbMemberNode> dbMemberNodes1 = dbMemberNodeMapper.selectList(objectQueryWrapper);
+//            walletInfo.setScoreCnt(i+i1+(CollUtil.isEmpty(dbMemberNodes1) ? 0 : dbMemberNodes1.size())*300);
+//        }else{
+//            walletInfo.setScoreCnt(0);
+//        }
+
         return walletInfo;
     }
 
@@ -232,13 +258,13 @@
             throw new FebsException("Balance Not Enough");
         }
 
-        DappWalletMineEntity walletMine = dappWalletMineDao.selectByMemberId(member.getId());
-        if (walletMine.getAvailableAmount().compareTo(withdrawDto.getFee()) < 0) {
-            throw new FebsException("Fee Not Enough");
-        }
+//        DappWalletMineEntity walletMine = dappWalletMineDao.selectByMemberId(member.getId());
+//        if (walletMine.getAvailableAmount().compareTo(withdrawDto.getFee()) < 0) {
+//            throw new FebsException("Fee Not Enough");
+//        }
 
         updateWalletCoinWithLock(withdrawDto.getAmount(), member.getId(), 2);
-        updateWalletMineWithLock(withdrawDto.getFee(), member.getId(), 2);
+//        updateWalletMineWithLock(withdrawDto.getFee(), member.getId(), 2);
 
 
         DappFundFlowEntity feeFlow = new DappFundFlowEntity(member.getId(), withdrawDto.getFee().negate(), 20, 2, null, null);
@@ -379,6 +405,23 @@
         if (buyNode >= Integer.parseInt(buyNodeCodeCntDic.getValue())) {
             throw new FebsException("Do not repeat purchase");
         }
+        /**
+         * 限购总数200
+         */
+
+        DataDictionaryCustom perKNumDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.PERK_NUM.getType(),
+                DataDictionaryEnum.PERK_NUM.getCode()
+        );
+        int perKNum = Integer.parseInt(ObjectUtil.isEmpty(perKNumDic) ? "200" : perKNumDic.getValue());
+
+        List<DappMemberEntity> dappMemberEntities = dappMemberDao.selectList(null);
+        if(CollUtil.isNotEmpty(dappMemberEntities)){
+            int sum1 = dappMemberEntities.stream().mapToInt(DappMemberEntity::getBuyNode).sum();
+            if(perKNum < sum1 + 1){
+                throw new FebsException("节点已售完");
+            }
+        }
 
         if (ObjectUtil.isEmpty(transferDto.getId())) {
             DappFundFlowEntity fundFlow = new DappFundFlowEntity(
@@ -449,6 +492,18 @@
         }
 
         if (ObjectUtil.isEmpty(buyStarDto.getId())) {//第一次
+            List<DbMemberNode> dbMemberNodesDone = dbMemberNodeMapper.selectListByDate(new Date());
+            if(CollUtil.isNotEmpty(dbMemberNodesDone)){
+                DataDictionaryCustom buyNodeNumDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                        DataDictionaryEnum.BUY_NODE_NUM.getType(),
+                        DataDictionaryEnum.BUY_NODE_NUM.getCode()
+                );
+                int buyNodeNum = Integer.parseInt(buyNodeNumDic.getValue());
+                if(buyNodeNum < dbMemberNodesDone.size()){
+                    throw new FebsException("今日已满,请明日再来");
+                }
+            };
+
             DappFundFlowEntity fundFlow = new DappFundFlowEntity(
                     member.getId(),
                     buyStarDto.getAmount().negate(),
@@ -585,10 +640,10 @@
         dappFundFlowEntity.setStatus(DappFundFlowEntity.WITHDRAW_STATUS_DISAGREE);
         dappFundFlowDao.updateById(dappFundFlowEntity);
 
-        dappWalletService.updateWalletCoinWithLock(memberCoinWithdrawEntity.getAmount(), memberCoinWithdrawEntity.getMemberId(), 1);
-        dappWalletService.updateWalletMineWithLock(memberCoinWithdrawEntity.getFeeAmount(), memberCoinWithdrawEntity.getMemberId(), 1);
+        this.updateWalletCoinWithLock(memberCoinWithdrawEntity.getAmount(), memberCoinWithdrawEntity.getMemberId(), 1);
+//        this.updateWalletMineWithLock(memberCoinWithdrawEntity.getFeeAmount(), memberCoinWithdrawEntity.getMemberId(), 1);
 
-        DappFundFlowEntity feeFlow = new DappFundFlowEntity(memberCoinWithdrawEntity.getMemberId(), memberCoinWithdrawEntity.getFeeAmount(), 22, 2, null, null);
+        DappFundFlowEntity feeFlow = new DappFundFlowEntity(memberCoinWithdrawEntity.getMemberId(), memberCoinWithdrawEntity.getAmount(), 22, 2, null, null);
         dappFundFlowDao.insert(feeFlow);
         return new FebsResponse().success();
     }

--
Gitblit v1.9.1