From 65530fe055acedee0481c372847e6b874b2609a2 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 18 Mar 2026 15:02:33 +0800
Subject: [PATCH] feat(mall): 添加公司会员数量限制功能

---
 src/main/java/cc/mrbird/febs/yinhe/entity/YHSysCompanyLevel.java             |    1 +
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |   18 ++++++++++++++++++
 2 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index 42452f9..5d7d762 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -34,8 +34,10 @@
 import cc.mrbird.febs.vip.entity.MallVipConfig;
 import cc.mrbird.febs.vip.mapper.MallVipConfigMapper;
 import cc.mrbird.febs.yinhe.entity.YHAiCompany;
+import cc.mrbird.febs.yinhe.entity.YHSysCompanyLevel;
 import cc.mrbird.febs.yinhe.entity.YhAiMember;
 import cc.mrbird.febs.yinhe.mapper.YHAiCompanyMapper;
+import cc.mrbird.febs.yinhe.mapper.YHSysCompanyLevelMapper;
 import cc.mrbird.febs.yinhe.mapper.YhAiMemberMapper;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
@@ -702,6 +704,7 @@
     private final XcxProperties xcxProperties = SpringContextHolder.getBean(XcxProperties.class);
     private final YhAiMemberMapper yhAiMemberMapper;
     private final YHAiCompanyMapper yhAiCompanyMapper;
+    private final YHSysCompanyLevelMapper yhSysCompanyLevelMapper;
 
     @Override
     @Transactional
@@ -747,6 +750,21 @@
                         if (ObjectUtil.isEmpty(aiCompany)){
                             throw new FebsException("公司编码错误");
                         }
+                        String levelCode = aiCompany.getLevelCode();
+                        YHSysCompanyLevel yhSysCompanyLevel = yhSysCompanyLevelMapper.selectOne(
+                                Wrappers.lambdaQuery(YHSysCompanyLevel.class)
+                                        .eq(YHSysCompanyLevel::getCode, levelCode)
+                        );
+                        Integer memberNum = yhSysCompanyLevel.getMemberNum();
+                        List<YhAiMember> yhAiMembers = yhAiMemberMapper.selectList(
+                                Wrappers.lambdaQuery(YhAiMember.class)
+                                        .eq(YhAiMember::getCompanyId, aiCompany.getId())
+                                        .isNull(YhAiMember::getRoleId)
+                        );
+                        Integer realNum = CollUtil.isEmpty(yhAiMembers) ? 0 : yhAiMembers.size();
+                        if (realNum >= memberNum){
+                            throw new FebsException("公司会员已满");
+                        }
                         entity.setCompanyId(aiCompany.getId());
                     }
                     entity.setCreateTime(systemTime);
diff --git a/src/main/java/cc/mrbird/febs/yinhe/entity/YHSysCompanyLevel.java b/src/main/java/cc/mrbird/febs/yinhe/entity/YHSysCompanyLevel.java
index 92d483c..89c608a 100644
--- a/src/main/java/cc/mrbird/febs/yinhe/entity/YHSysCompanyLevel.java
+++ b/src/main/java/cc/mrbird/febs/yinhe/entity/YHSysCompanyLevel.java
@@ -11,4 +11,5 @@
     private String code;
     private Integer agentNum;
     private Integer token;
+    private Integer memberNum;
 }

--
Gitblit v1.9.1