Administrator
5 days ago 65530fe055acedee0481c372847e6b874b2609a2
feat(mall): 添加公司会员数量限制功能

- 引入 YHSysCompanyLevel 实体类并添加 memberNum 字段
- 注入 YHSysCompanyLevelMapper 数据访问层
- 在会员注册时检查公司会员数量是否达到上限
- 实现公司会员数量验证逻辑,防止超过配置限制
- 添加公司会员已满的异常提示信息
2 files modified
19 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java 18 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/entity/YHSysCompanyLevel.java 1 ●●●● patch | view | raw | blame | history
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);
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;
}