From e8c7a97949f5a582ca5e3e5d787bf64f5fa01767 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 20 Mar 2026 10:41:49 +0800
Subject: [PATCH] 9智能体、智能体分类权限到单个用户
---
src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java | 190 ++++++++++++++++++++++++++++++++++++++---------
1 files changed, 153 insertions(+), 37 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 8645a08..ec880ab 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
@@ -1,12 +1,12 @@
package cc.mrbird.febs.yinhe.service.impl;
+import cc.mrbird.febs.ai.res.product.ApiProductVo;
import cc.mrbird.febs.ai.strategy.LlmStrategyFactory;
import cc.mrbird.febs.ai.strategy.enumerates.LlmStrategyEnum;
import cc.mrbird.febs.ai.utils.UUID;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.common.utils.AppContants;
-import cc.mrbird.febs.common.utils.LoginUserUtil;
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.common.utils.YHLoginUserUtil;
import cc.mrbird.febs.rabbit.producter.AgentProducer;
@@ -22,6 +22,7 @@
import com.alibaba.dashscope.common.Role;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -39,12 +40,16 @@
private final YhAiMemberMapper yhAiMemberMapper;
private final YHAiCompanyMapper yhAiCompanyMapper;
+ private final YHAiBannerMapper yhAiBannerMapper;
+ private final YHAiLogoMapper yhAiLogoMapper;
private final YHAiAgentCategoryMapper yhAiAgentCategoryMapper;
private final YHAiAgentMapper yhAiAgentMapper;
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;
@@ -87,15 +92,31 @@
@Override
public FebsResponse categoryList(YHCategoryDto dto) {
- String companyId = YHLoginUserUtil.getLoginUser().getCompanyId();
- List<YHCategoryVo> yhCategoryVos = new ArrayList<>();
+ String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid();
+ YhAiMember yhAiMember = yhAiMemberMapper.selectOne(Wrappers.lambdaQuery(YhAiMember.class).eq(YhAiMember::getMemberUuid, memberUuid));
+ String companyId = yhAiMember.getCompanyId();
+
+
+ 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);
+ }
+
+ 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.getId())){
- query.eq(YHAiAgentCategory::getId,dto.getId());
- }
if (ObjectUtil.isNotEmpty(dto.getHotState())){
query.eq(YHAiAgentCategory::getHotState,dto.getHotState());
}
@@ -107,19 +128,36 @@
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
public FebsResponse agentList(YHAgentDto dto) {
- String companyId = YHLoginUserUtil.getLoginUser().getCompanyId();
+ String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid();
+ YhAiMember yhAiMember = yhAiMemberMapper.selectOne(Wrappers.lambdaQuery(YhAiMember.class).eq(YhAiMember::getMemberUuid, memberUuid));
+ String companyId = yhAiMember.getCompanyId();
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);
query.eq(YHAiAgent::getCompanyId,companyId);
query.eq(YHAiAgent::getState,1);
if (ObjectUtil.isNotEmpty(dto.getAgentCategoryId())){
@@ -145,10 +183,20 @@
@Override
public FebsResponse agentInfo(YHAgentInitDto dto) {
- String companyId = YHLoginUserUtil.getLoginUser().getCompanyId();
- YHAgentInitVo yhAgentInitVo = new YHAgentInitVo();
+ String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid();
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("无权限");
+ }
YHAiAgent yhAiAgent = yhAiAgentMapper.selectById(id);
if (ObjectUtil.isNotEmpty(yhAiAgent)){
yhAgentInitVo.setId(yhAiAgent.getId());
@@ -177,9 +225,6 @@
LambdaQueryWrapper<YhSysAgentCategory> query = Wrappers.lambdaQuery(YhSysAgentCategory.class);
query.eq(YhSysAgentCategory::getState,1);
- if (ObjectUtil.isNotEmpty(dto.getId())){
- query.eq(YhSysAgentCategory::getId,dto.getId());
- }
if (ObjectUtil.isNotEmpty(dto.getHotState())){
query.eq(YhSysAgentCategory::getHotState,dto.getHotState());
}
@@ -199,27 +244,10 @@
@Override
public FebsResponse agentSysList(YHSysAgentDto dto) {
- ArrayList<YHSysAgentVo> vos = new ArrayList<>();
- LambdaQueryWrapper<YHSysAgent> query = Wrappers.lambdaQuery(YHSysAgent.class);
- query.eq(YHSysAgent::getState,1);
- if (ObjectUtil.isNotEmpty(dto.getAgentCategoryId())){
- query.eq(YHSysAgent::getAgentCategoryId,dto.getAgentCategoryId());
- }
- query.orderByDesc(YHSysAgent::getCreateTime);
-
- List<YHSysAgent> list = yhSysAgentMapper.selectList(query);
- if (CollUtil.isNotEmpty(list)){
-
- for (YHSysAgent entity : list) {
- YHSysAgentVo vo = new YHSysAgentVo();
- vo.setId(entity.getId());
- vo.setName(entity.getName());
- vo.setDescription(entity.getDescription());
- vo.setIconImg(entity.getIconImg());
- vos.add(vo);
- }
- }
- return new FebsResponse().success().data(vos);
+ // 创建分页对象,传入当前页和每页大小
+ Page<YHSysAgentVo> page = new Page<>(dto.getPageNow(), dto.getPageSize());
+ Page<YHSysAgentVo> pageListByQuery = yhSysAgentMapper.getPageListByQuery(page, dto);
+ return new FebsResponse().success().data(pageListByQuery);
}
@Override
@@ -251,7 +279,7 @@
@Override
public FebsResponse logout() {
- String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid();
+ String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid();
String redisKey = AppContants.XCX_LOGIN_PREFIX + memberUuid;
String existToken = redisUtils.getString(redisKey);
@@ -267,7 +295,7 @@
@Override
public FebsResponse initSend(YHSendInitDto dto) {
- String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid();
+ String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid();
YHSendInitVo vo = new YHSendInitVo();
@@ -441,4 +469,92 @@
}
return messages;
}
+
+ @Override
+ public FebsResponse bannerList() {
+ List<YHBannerVo> vos = new ArrayList<>();
+ 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);
+ }
+
+ @Override
+ public FebsResponse logoInfo() {
+ YHLogoVo yhLogoVo = new YHLogoVo();
+
+ 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);
+ }
+
+ @Override
+ public FebsResponse loginBannerList() {
+ String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid();
+ YhAiMember yhAiMember = yhAiMemberMapper.selectOne(Wrappers.lambdaQuery(YhAiMember.class).eq(YhAiMember::getMemberUuid, memberUuid));
+ String companyId = yhAiMember.getCompanyId();
+
+ List<YHBannerVo> vos = new ArrayList<>();
+ List<YHAiBanner> list = yhAiBannerMapper.selectList(
+ Wrappers.lambdaQuery(YHAiBanner.class)
+ .eq(YHAiBanner::getState, 1)
+ .eq(YHAiBanner::getCompanyId, companyId)
+ .orderByAsc(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);
+ }
+
+ @Override
+ public FebsResponse loginLogoInfo() {
+ String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid();
+ YhAiMember yhAiMember = yhAiMemberMapper.selectOne(Wrappers.lambdaQuery(YhAiMember.class).eq(YhAiMember::getMemberUuid, memberUuid));
+ String companyId = yhAiMember.getCompanyId();
+
+ YHLogoVo yhLogoVo = new YHLogoVo();
+
+ List<YHAiLogo> yhAiLogos = yhAiLogoMapper.selectList(
+ Wrappers.lambdaQuery(YHAiLogo.class)
+ .eq(YHAiLogo::getState, 1)
+ .eq(YHAiLogo::getCompanyId, companyId)
+ );
+ 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);
+ }
}
--
Gitblit v1.9.1