Administrator
3 days ago 5e254c1c8022a10b1297ab3fb38b797177252ba5
feat(yhAiService): 添加默认公司判断逻辑并优化查询条件

- 新增 isDefaultCompany 方法用于判断是否为默认公司
- 在 categoryList 方法中根据是否为默认公司决定是否使用关联查询
- 在 agentList 方法中根据是否为默认公司决定是否使用关联查询
- 在 agentInfo 方法中根据是否为默认公司决定是否进行权限校验
- 优化了查询逻辑,对非默认公司的数据进行限制性查询
1 files modified
36 ■■■■ changed files
src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java 36 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java
@@ -90,15 +90,31 @@
        return new FebsResponse().success().data(yhMemberVo);
    }
    private boolean isDefaultCompany(String companyId){
        String companyCode = yhAiCompanyMapper.selectDictLabel("xcx_register_default","default");
        YHAiCompany yhAiCompany = yhAiCompanyMapper.selectOne(
                Wrappers.lambdaQuery(YHAiCompany.class)
                        .eq(YHAiCompany::getId, companyId)
        );
        if (ObjectUtil.isEmpty(yhAiCompany)){
            return false;
        }
        return companyCode.equals(yhAiCompany.getCode());
    }
    @Override
    public FebsResponse categoryList(YHCategoryDto dto) {
        String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid();
        YhAiMember yhAiMember = yhAiMemberMapper.selectOne(Wrappers.lambdaQuery(YhAiMember.class).eq(YhAiMember::getMemberUuid, memberUuid));
        String companyId = yhAiMember.getCompanyId();
        boolean defaultCompany = isDefaultCompany(companyId);
        List<YHCategoryVo> vos = new ArrayList<>();
        LambdaQueryWrapper<YHAiAgentCategory> query = Wrappers.lambdaQuery(YHAiAgentCategory.class);
        List<String> yhAiAgentCategoryLinksIds = new ArrayList<>();
        if (!defaultCompany){
        List<YHAiAgentCategoryLink> yhAiAgentCategoryLinks = yhAiAgentCategoryLinkMapper.selectList(
                Wrappers.lambdaQuery(YHAiAgentCategoryLink.class)
                        .eq(YHAiAgentCategoryLink::getCompanyId, companyId)
@@ -107,14 +123,12 @@
        if (CollUtil.isEmpty(yhAiAgentCategoryLinks)){
            return new FebsResponse().success().data(vos);
        }
        List<String> yhAiAgentCategoryLinksIds = new ArrayList<>();
        for (YHAiAgentCategoryLink yhAiAgentCategoryLink : yhAiAgentCategoryLinks) {
            yhAiAgentCategoryLinksIds.add(yhAiAgentCategoryLink.getAgentCategoryId());
        }
        LambdaQueryWrapper<YHAiAgentCategory> query = Wrappers.lambdaQuery(YHAiAgentCategory.class);
        query.in(YHAiAgentCategory::getId,yhAiAgentCategoryLinksIds);
        }
        query.eq(YHAiAgentCategory::getCompanyId,companyId);
        query.eq(YHAiAgentCategory::getState,1);
        if (ObjectUtil.isNotEmpty(dto.getHotState())){
@@ -143,6 +157,11 @@
        ArrayList<YHAgentVo> yhAgentVos = new ArrayList<>();
        LambdaQueryWrapper<YHAiAgent> query = Wrappers.lambdaQuery(YHAiAgent.class);
        boolean defaultCompany = isDefaultCompany(companyId);
        if (!defaultCompany){
        List<YHAiAgentLink> yhAiAgentLinks = yhAiAgentLinkMapper.selectList(
                Wrappers.lambdaQuery(YHAiAgentLink.class)
                        .eq(YHAiAgentLink::getCompanyId, companyId)
@@ -155,9 +174,8 @@
        for (YHAiAgentLink yhAiAgentLink : yhAiAgentLinks) {
            yhAiAgentLinksIds.add(yhAiAgentLink.getAgentId());
        }
        LambdaQueryWrapper<YHAiAgent> query = Wrappers.lambdaQuery(YHAiAgent.class);
        query.in(YHAiAgent::getId,yhAiAgentLinksIds);
        }
        query.eq(YHAiAgent::getCompanyId,companyId);
        query.eq(YHAiAgent::getState,1);
        if (ObjectUtil.isNotEmpty(dto.getAgentCategoryId())){
@@ -184,11 +202,15 @@
    public FebsResponse agentInfo(YHAgentInitDto dto) {
        String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid();
        String companyId = YHLoginUserUtil.getLoginUser().getCompanyId();
        String id = dto.getId();
        YHAgentInitVo yhAgentInitVo = new YHAgentInitVo();
        boolean defaultCompany = isDefaultCompany(companyId);
        if (!defaultCompany){
        List<YHAiAgentLink> yhAiAgentLinks = yhAiAgentLinkMapper.selectList(
                Wrappers.lambdaQuery(YHAiAgentLink.class)
                        .eq(YHAiAgentLink::getAgentId, id)
@@ -197,6 +219,8 @@
        if (CollUtil.isEmpty(yhAiAgentLinks)){
            throw new FebsException("无权限");
        }
        }
        YHAiAgent yhAiAgent = yhAiAgentMapper.selectById(id);
        if (ObjectUtil.isNotEmpty(yhAiAgent)){
            yhAgentInitVo.setId(yhAiAgent.getId());