From 5e254c1c8022a10b1297ab3fb38b797177252ba5 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 20 Mar 2026 11:52:06 +0800
Subject: [PATCH] feat(yhAiService): 添加默认公司判断逻辑并优化查询条件

---
 src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java |   92 +++++++++++++++++++++++++++++-----------------
 1 files changed, 58 insertions(+), 34 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java b/src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java
index ec880ab..002c8b6 100644
--- a/src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java
@@ -90,31 +90,45 @@
         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<>();
-
-        List<YHAiAgentCategoryLink> yhAiAgentCategoryLinks = yhAiAgentCategoryLinkMapper.selectList(
-                Wrappers.lambdaQuery(YHAiAgentCategoryLink.class)
-                        .eq(YHAiAgentCategoryLink::getCompanyId, companyId)
-                        .eq(YHAiAgentCategoryLink::getMemberUuid, memberUuid)
-        );
-        if (CollUtil.isEmpty(yhAiAgentCategoryLinks)){
-            return new FebsResponse().success().data(vos);
-        }
+        LambdaQueryWrapper<YHAiAgentCategory> query = Wrappers.lambdaQuery(YHAiAgentCategory.class);
 
         List<String> yhAiAgentCategoryLinksIds = new ArrayList<>();
-        for (YHAiAgentCategoryLink yhAiAgentCategoryLink : yhAiAgentCategoryLinks) {
-            yhAiAgentCategoryLinksIds.add(yhAiAgentCategoryLink.getAgentCategoryId());
+        if (!defaultCompany){
+            List<YHAiAgentCategoryLink> yhAiAgentCategoryLinks = yhAiAgentCategoryLinkMapper.selectList(
+                    Wrappers.lambdaQuery(YHAiAgentCategoryLink.class)
+                            .eq(YHAiAgentCategoryLink::getCompanyId, companyId)
+                            .eq(YHAiAgentCategoryLink::getMemberUuid, memberUuid)
+            );
+            if (CollUtil.isEmpty(yhAiAgentCategoryLinks)){
+                return new FebsResponse().success().data(vos);
+            }
+            for (YHAiAgentCategoryLink yhAiAgentCategoryLink : yhAiAgentCategoryLinks) {
+                yhAiAgentCategoryLinksIds.add(yhAiAgentCategoryLink.getAgentCategoryId());
+            }
+            query.in(YHAiAgentCategory::getId,yhAiAgentCategoryLinksIds);
         }
 
-        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,21 +157,25 @@
 
         ArrayList<YHAgentVo> yhAgentVos = new ArrayList<>();
 
-        List<YHAiAgentLink> yhAiAgentLinks = yhAiAgentLinkMapper.selectList(
-                Wrappers.lambdaQuery(YHAiAgentLink.class)
-                        .eq(YHAiAgentLink::getCompanyId, companyId)
-                        .eq(YHAiAgentLink::getMemberUuid, memberUuid)
-        );
-        if (CollUtil.isEmpty(yhAiAgentLinks)){
-            return new FebsResponse().success().data(yhAgentVos);
-        }
-        List<String> yhAiAgentLinksIds = new ArrayList<>();
-        for (YHAiAgentLink yhAiAgentLink : yhAiAgentLinks) {
-            yhAiAgentLinksIds.add(yhAiAgentLink.getAgentId());
-        }
-
         LambdaQueryWrapper<YHAiAgent> query = Wrappers.lambdaQuery(YHAiAgent.class);
-        query.in(YHAiAgent::getId,yhAiAgentLinksIds);
+
+        boolean defaultCompany = isDefaultCompany(companyId);
+        if (!defaultCompany){
+
+            List<YHAiAgentLink> yhAiAgentLinks = yhAiAgentLinkMapper.selectList(
+                    Wrappers.lambdaQuery(YHAiAgentLink.class)
+                            .eq(YHAiAgentLink::getCompanyId, companyId)
+                            .eq(YHAiAgentLink::getMemberUuid, memberUuid)
+            );
+            if (CollUtil.isEmpty(yhAiAgentLinks)){
+                return new FebsResponse().success().data(yhAgentVos);
+            }
+            List<String> yhAiAgentLinksIds = new ArrayList<>();
+            for (YHAiAgentLink yhAiAgentLink : yhAiAgentLinks) {
+                yhAiAgentLinksIds.add(yhAiAgentLink.getAgentId());
+            }
+            query.in(YHAiAgent::getId,yhAiAgentLinksIds);
+        }
         query.eq(YHAiAgent::getCompanyId,companyId);
         query.eq(YHAiAgent::getState,1);
         if (ObjectUtil.isNotEmpty(dto.getAgentCategoryId())){
@@ -184,19 +202,25 @@
     public FebsResponse agentInfo(YHAgentInitDto dto) {
 
         String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid();
+        String companyId = YHLoginUserUtil.getLoginUser().getCompanyId();
 
         String id = dto.getId();
 
         YHAgentInitVo yhAgentInitVo = new YHAgentInitVo();
 
-        List<YHAiAgentLink> yhAiAgentLinks = yhAiAgentLinkMapper.selectList(
-                Wrappers.lambdaQuery(YHAiAgentLink.class)
-                        .eq(YHAiAgentLink::getAgentId, id)
-                        .eq(YHAiAgentLink::getMemberUuid, memberUuid)
-        );
-        if (CollUtil.isEmpty(yhAiAgentLinks)){
-            throw new FebsException("无权限");
+
+        boolean defaultCompany = isDefaultCompany(companyId);
+        if (!defaultCompany){
+            List<YHAiAgentLink> yhAiAgentLinks = yhAiAgentLinkMapper.selectList(
+                    Wrappers.lambdaQuery(YHAiAgentLink.class)
+                            .eq(YHAiAgentLink::getAgentId, id)
+                            .eq(YHAiAgentLink::getMemberUuid, memberUuid)
+            );
+            if (CollUtil.isEmpty(yhAiAgentLinks)){
+                throw new FebsException("无权限");
+            }
         }
+
         YHAiAgent yhAiAgent = yhAiAgentMapper.selectById(id);
         if (ObjectUtil.isNotEmpty(yhAiAgent)){
             yhAgentInitVo.setId(yhAiAgent.getId());

--
Gitblit v1.9.1