From 5f297731cf6afbe4cdb82b0b08a82de4a47d4f4a Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 26 Aug 2026 16:37:55 +0800
Subject: [PATCH] fix(mall): 修复会员查询时可能存在的空指针异常

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |   20 ++++++++++++++++++++
 1 files changed, 20 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 60b726d..a4e07bf 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
@@ -767,6 +767,7 @@
                                 Wrappers.lambdaQuery(YhAiMember.class)
                                         .eq(YhAiMember::getCompanyId, aiCompany.getId())
                                         .isNull(YhAiMember::getRoleId)
+                                        .isNull(YhAiMember::getAccountType)
                         );
                         Integer realNum = CollUtil.isEmpty(yhAiMembers) ? 0 : yhAiMembers.size();
                         log.info("公司会员数:{}", realNum);
@@ -870,6 +871,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