From 197dc3fac63b0277a6c1703dac5f827e79d8ef58 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 13 Jun 2024 11:56:14 +0800
Subject: [PATCH] 星级矩阵

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 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 c03d789..db52806 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
@@ -411,8 +411,15 @@
 
         /**
          * 买入先验证当前星团是否已经买入
+         *      如果不是购买一星,则验证前一新团是否购买
          */
+        if(ObjectUtil.isEmpty(buyStarDto.getNodeType())){
+            throw new FebsException("选择购买的星团");
+        }
         Integer nodeType = buyStarDto.getNodeType();
+        if(NodeType.NODE_13.getNodeType() < nodeType || nodeType < NodeType.NODE_1.getNodeType()){
+            throw new FebsException("选择购买的星团");
+        }
         QueryWrapper<DbMemberNode> nodeQueryWrapper = new QueryWrapper<>();
         nodeQueryWrapper.eq("member_id",member.getId());
         nodeQueryWrapper.eq("type", nodeType);
@@ -421,6 +428,17 @@
         if(CollUtil.isNotEmpty(dbMemberNodes)){
             throw new FebsException("已购买");
         }
+        if(NodeType.NODE_1.getNodeType() != buyStarDto.getNodeType()){
+            Integer nextNodeType = nodeType - 1;
+            QueryWrapper<DbMemberNode> nextWrapper = new QueryWrapper<>();
+            nextWrapper.eq("member_id",member.getId());
+            nextWrapper.eq("type", nextNodeType);
+            nextWrapper.eq("work_state", DbMemberNode.STATE_ONE);
+            List<DbMemberNode> nextNode = dbMemberNodeMapper.selectList(nextWrapper);
+            if(CollUtil.isNotEmpty(nextNode)){
+                throw new FebsException("请先购买上一星团");
+            }
+        }
 
         if (ObjectUtil.isEmpty(buyStarDto.getId())) {//第一次
             DappFundFlowEntity fundFlow = new DappFundFlowEntity(

--
Gitblit v1.9.1