From 77288d1663cd9f04956522e416b7db9dca3ccf58 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 20 Mar 2026 17:23:00 +0800
Subject: [PATCH] refactor(common): 优化字符串分割方法调用
---
src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java | 77 ++++++++++++++++++++++++++++++++++++--
1 files changed, 73 insertions(+), 4 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 8e21916..b3a34d8 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
@@ -48,6 +48,8 @@
private final YHAiAgentStartQuestionMapper yhAiAgentStartQuestionMapper;
private final YHAiAgentKnowledgeMapper yhAiAgentKnowledgeMapper;
private final YHAiKnowledgeMapper yhAiKnowledgeMapper;
+ private final YHAiAgentLinkMapper yhAiAgentLinkMapper;
+ private final YHAiAgentCategoryLinkMapper yhAiAgentCategoryLinkMapper;
private final YhSysAgentCategoryMapper yhSysAgentCategoryMapper;
private final YHSysAgentStartQuestionMapper yhSysAgentStartQuestionMapper;
@@ -88,15 +90,47 @@
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();
- List<YHCategoryVo> yhCategoryVos = new ArrayList<>();
+ boolean defaultCompany = isDefaultCompany(companyId);
+ List<YHCategoryVo> vos = new ArrayList<>();
LambdaQueryWrapper<YHAiAgentCategory> query = Wrappers.lambdaQuery(YHAiAgentCategory.class);
+
+ List<String> yhAiAgentCategoryLinksIds = new ArrayList<>();
+
+ log.info("开始查询智能体分类{}",defaultCompany);
+ 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);
+ }
+
query.eq(YHAiAgentCategory::getCompanyId,companyId);
query.eq(YHAiAgentCategory::getState,1);
if (ObjectUtil.isNotEmpty(dto.getHotState())){
@@ -110,11 +144,11 @@
YHCategoryVo yhCategoryVo = new YHCategoryVo();
yhCategoryVo.setName(yhAiAgentCategory.getName());
yhCategoryVo.setId(yhAiAgentCategory.getId());
- yhCategoryVos.add(yhCategoryVo);
+ vos.add(yhCategoryVo);
}
}
- return new FebsResponse().success().data(yhCategoryVos);
+ return new FebsResponse().success().data(vos);
}
@Override
@@ -124,7 +158,26 @@
String companyId = yhAiMember.getCompanyId();
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)
+ .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())){
@@ -151,9 +204,25 @@
public FebsResponse agentInfo(YHAgentInitDto dto) {
String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid();
- YHAgentInitVo yhAgentInitVo = new YHAgentInitVo();
+ 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)
+ .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