From 88dacff076efef9e562a6d0ca479c084f96da155 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 24 Mar 2026 17:17:29 +0800
Subject: [PATCH] feat(mall): 添加公司会员数量限制验证功能

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 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 cfade23..905bc42 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
@@ -747,6 +747,8 @@
                     entity.setSessionKey(sessionKey);
 
                     entity.setMemberUuid(UUID.getSimpleUUIDString());
+
+                    log.info("公司编码={}", apiXcxLoginDto.getCompanyId());
                     if (StrUtil.isNotEmpty(apiXcxLoginDto.getCompanyId())){
                         YHAiCompany aiCompany = yhAiCompanyMapper.selectOne(
                                 Wrappers.lambdaQuery(YHAiCompany.class)
@@ -788,7 +790,7 @@
                     entity.setInviteId(inviteId);
                     yhAiMemberMapper.updateById(entity);
                 } else {
-                    if ("1".equals(entity.getAccountStatus())) {
+                    if (entity.getAccountStatus() == 1) {
                         throw new FebsException("账号已停用");
                     }
                     entity.setSessionKey(sessionKey);
@@ -868,6 +870,25 @@
                 throw new FebsException("公司编码不存在");
             }
             if (ObjectUtil.isNotEmpty(aiCompany)){
+                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();
+                log.info("公司会员数:{}", realNum);
+                log.info("公司会员数:{}", memberNum);
+                log.info("公司会员数:{}", realNum >= memberNum);
+                if (realNum >= memberNum){
+                    throw new FebsException("公司会员已满");
+                }
+
                 companyId = aiCompany.getId();
             }
             entity.setCompanyId(companyId);

--
Gitblit v1.9.1