Administrator
2 days ago 52be44e34ef35e4adda162e6f65e96384ff4e351
feat(yinhe): 根据公司等级控制banner和logo显示权限

- 新增公司等级配置判断逻辑,支持限制banner和logo的显示
- 在banner查询方法中添加公司等级验证,仅允许特定等级查看公共资源
- 在logo查询方法中添加公司等级验证,仅允许特定等级查看公共资源
- 修改YHSysCompanyLevel实体类,为limitLogo字段添加注释说明
- 实现基于levelCode的动态权限控制机制
2 files modified
58 ■■■■■ changed files
src/main/java/cc/mrbird/febs/yinhe/entity/YHSysCompanyLevel.java 1 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java 57 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/entity/YHSysCompanyLevel.java
@@ -12,5 +12,6 @@
    private Integer agentNum;
    private Integer token;
    private Integer memberNum;
    //是否允许换LOGO,banner 0-允许 1-不允许
    private Integer limitLogo;
}
src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java
@@ -549,7 +549,38 @@
        YhAiMember yhAiMember = yhAiMemberMapper.selectOne(Wrappers.lambdaQuery(YhAiMember.class).eq(YhAiMember::getMemberUuid, memberUuid));
        String companyId = yhAiMember.getCompanyId();
        List<YHBannerVo> vos = new ArrayList<>();
        YHAiCompany yhAiCompany = yhAiCompanyMapper.selectById(companyId);
        String levelCode = yhAiCompany.getLevelCode();
        if (StrUtil.isNotEmpty(levelCode)){
            YHSysCompanyLevel sysCompanyLevel = yhSysCompanyLevelMapper.selectOne(
                    Wrappers.lambdaQuery(YHSysCompanyLevel.class)
                            .eq(YHSysCompanyLevel::getCode, levelCode)
            );
            Integer limitLogo = sysCompanyLevel.getLimitLogo();
            if ("1".equals(limitLogo)){
                List<YHAiBanner> list = yhAiBannerMapper.selectList(
                        Wrappers.lambdaQuery(YHAiBanner.class)
                                .eq(YHAiBanner::getState, 1)
                                .isNull(YHAiBanner::getCompanyId)
                                .orderByDesc(YHAiBanner::getSort)
                );
                if (CollUtil.isNotEmpty(list)){
                    for (YHAiBanner aiBanner : list){
                        YHBannerVo vo = new YHBannerVo();
                        vo.setName(aiBanner.getName());
                        vo.setImageUrl(aiBanner.getImageUrl());
                        vo.setSort(aiBanner.getSort());
                        vos.add(vo);
                    }
                }
                return new FebsResponse().success().data(vos);
            }
        }
        List<YHAiBanner> list = yhAiBannerMapper.selectList(
                Wrappers.lambdaQuery(YHAiBanner.class)
                        .eq(YHAiBanner::getState, 1)
@@ -576,6 +607,32 @@
        YHLogoVo yhLogoVo = new YHLogoVo();
        YHAiCompany yhAiCompany = yhAiCompanyMapper.selectById(companyId);
        String levelCode = yhAiCompany.getLevelCode();
        if (StrUtil.isNotEmpty(levelCode)){
            YHSysCompanyLevel sysCompanyLevel = yhSysCompanyLevelMapper.selectOne(
                    Wrappers.lambdaQuery(YHSysCompanyLevel.class)
                            .eq(YHSysCompanyLevel::getCode, levelCode)
            );
            Integer limitLogo = sysCompanyLevel.getLimitLogo();
            if ("1".equals(limitLogo)){
                List<YHAiLogo> yhAiLogos = yhAiLogoMapper.selectList(
                        Wrappers.lambdaQuery(YHAiLogo.class)
                                .eq(YHAiLogo::getState, 1)
                                .isNull(YHAiLogo::getCompanyId)
                );
                if (CollUtil.isNotEmpty(yhAiLogos)){
                    YHAiLogo yhAiLogo = yhAiLogos.get(0);
                    yhLogoVo.setName(yhAiLogo.getName());
                    yhLogoVo.setImageUrl(yhAiLogo.getImageUrl());
                    yhLogoVo.setDesription(yhAiLogo.getDesription());
                }
                return new FebsResponse().success().data(yhLogoVo);
            }
        }
        List<YHAiLogo> yhAiLogos = yhAiLogoMapper.selectList(
                Wrappers.lambdaQuery(YHAiLogo.class)
                        .eq(YHAiLogo::getState, 1)