From 463d97a5e770dce75c91f9a1bc9ee75942e847c2 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 16 Mar 2026 12:04:39 +0800
Subject: [PATCH] feat(yinhe): 添加智能体详情查看功能
---
src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java | 249 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 249 insertions(+), 0 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
new file mode 100644
index 0000000..23e8865
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java
@@ -0,0 +1,249 @@
+package cc.mrbird.febs.yinhe.service.impl;
+
+import cc.mrbird.febs.common.entity.FebsResponse;
+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.yinhe.entity.*;
+import cc.mrbird.febs.yinhe.mapper.*;
+import cc.mrbird.febs.yinhe.req.*;
+import cc.mrbird.febs.yinhe.res.*;
+import cc.mrbird.febs.yinhe.service.YhAiService;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class YhAiServiceImpl extends ServiceImpl<YhAiMemberMapper, YhAiMember> implements YhAiService {
+
+ private final YhAiMemberMapper yhAiMemberMapper;
+ private final YHAiCompanyMapper yhAiCompanyMapper;
+
+ private final YHAiAgentCategoryMapper yhAiAgentCategoryMapper;
+ private final YHAiAgentMapper yhAiAgentMapper;
+ private final YHAiAgentStartQuestionMapper yhAiAgentStartQuestionMapper;
+
+ private final YhSysAgentCategoryMapper yhSysAgentCategoryMapper;
+ private final YHSysAgentStartQuestionMapper yhSysAgentStartQuestionMapper;
+ private final YHSysAgentMapper yhSysAgentMapper;
+
+ private final RedisUtils redisUtils;
+
+ @Override
+ public FebsResponse memberInfo() {
+
+ String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid();
+
+ YHMemberVo yhMemberVo = new YHMemberVo();
+ YhAiMember yhAiMember = yhAiMemberMapper.selectOne(
+ Wrappers.lambdaQuery(YhAiMember.class)
+ .eq(YhAiMember::getMemberUuid, memberUuid)
+ );
+ if (ObjectUtil.isNotEmpty(yhAiMember)){
+ String companyId = yhAiMember.getCompanyId();
+ YHAiCompany yhAiCompany = yhAiCompanyMapper.selectById(companyId);
+
+ yhMemberVo.setMemberUuid(yhAiMember.getMemberUuid());
+ yhMemberVo.setAvatar(yhAiMember.getAvatar());
+ yhMemberVo.setName(yhAiMember.getName());
+ yhMemberVo.setRealName(yhAiMember.getRealName());
+ yhMemberVo.setSex(yhAiMember.getSex());
+ yhMemberVo.setCompanyId(yhAiCompany.getId());
+ yhMemberVo.setCompanyName(yhAiCompany.getName());
+ yhMemberVo.setPhone(yhAiMember.getPhone());
+ }
+ return new FebsResponse().success().data(yhMemberVo);
+ }
+
+ @Override
+ public FebsResponse categoryList(YHCategoryDto dto) {
+ String companyId = YHLoginUserUtil.getLoginUser().getCompanyId();
+ List<YHCategoryVo> yhCategoryVos = new ArrayList<>();
+
+ LambdaQueryWrapper<YHAiAgentCategory> query = Wrappers.lambdaQuery(YHAiAgentCategory.class);
+ 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());
+ }
+ query.orderByAsc(YHAiAgentCategory::getSort);
+ List<YHAiAgentCategory> yhAiAgentCategories = yhAiAgentCategoryMapper.selectList(query);
+
+ if (CollUtil.isNotEmpty(yhAiAgentCategories)){
+ for (YHAiAgentCategory yhAiAgentCategory : yhAiAgentCategories) {
+ YHCategoryVo yhCategoryVo = new YHCategoryVo();
+ yhCategoryVo.setName(yhAiAgentCategory.getName());
+ yhCategoryVo.setId(yhAiAgentCategory.getId());
+ yhCategoryVos.add(yhCategoryVo);
+ }
+ }
+
+ return new FebsResponse().success().data(yhCategoryVos);
+ }
+
+ @Override
+ public FebsResponse agentList(YHAgentDto dto) {
+ String companyId = YHLoginUserUtil.getLoginUser().getCompanyId();
+
+ ArrayList<YHAgentVo> yhAgentVos = new ArrayList<>();
+ LambdaQueryWrapper<YHAiAgent> query = Wrappers.lambdaQuery(YHAiAgent.class);
+ query.eq(YHAiAgent::getCompanyId,companyId);
+ query.eq(YHAiAgent::getState,1);
+ if (ObjectUtil.isNotEmpty(dto.getAgentCategoryId())){
+ query.eq(YHAiAgent::getAgentCategoryId,dto.getAgentCategoryId());
+ }
+ query.orderByDesc(YHAiAgent::getCreateTime);
+
+ List<YHAiAgent> yhAiAgents = yhAiAgentMapper.selectList(query);
+ if (CollUtil.isNotEmpty(yhAiAgents)){
+
+ for (YHAiAgent yhAiAgent : yhAiAgents) {
+ YHAgentVo yhAgentVo = new YHAgentVo();
+ yhAgentVo.setId(yhAiAgent.getId());
+ yhAgentVo.setName(yhAiAgent.getName());
+ yhAgentVo.setDescription(yhAiAgent.getDescription());
+ yhAgentVo.setIconImg(yhAiAgent.getIconImg());
+ yhAgentVos.add(yhAgentVo);
+ }
+ }
+ return new FebsResponse().success().data(yhAgentVos);
+ }
+
+ @Override
+ public FebsResponse agentInfo(YHAgentInitDto dto) {
+
+ String companyId = YHLoginUserUtil.getLoginUser().getCompanyId();
+ YHAgentInitVo yhAgentInitVo = new YHAgentInitVo();
+
+ String id = dto.getId();
+ YHAiAgent yhAiAgent = yhAiAgentMapper.selectById(id);
+ if (ObjectUtil.isNotEmpty(yhAiAgent)){
+ yhAgentInitVo.setId(yhAiAgent.getId());
+ yhAgentInitVo.setName(yhAiAgent.getName());
+ yhAgentInitVo.setDescription(yhAiAgent.getDescription());
+ yhAgentInitVo.setIconImg(yhAiAgent.getIconImg());
+ yhAgentInitVo.setIntroduct(yhAiAgent.getIntroduct());
+ List<YHAiAgentStartQuestion> yhAiAgentStartQuestions = yhAiAgentStartQuestionMapper.selectList(
+ Wrappers.lambdaQuery(YHAiAgentStartQuestion.class).eq(YHAiAgentStartQuestion::getAgentId, id)
+ );
+ if (CollUtil.isNotEmpty(yhAiAgentStartQuestions)){
+ List<String> questions = new ArrayList<>();
+ for (YHAiAgentStartQuestion yhAiAgentStartQuestion : yhAiAgentStartQuestions) {
+ questions.add(yhAiAgentStartQuestion.getTitle());
+ }
+ yhAgentInitVo.setItems(questions);
+ }
+ }
+
+ return new FebsResponse().success().data(yhAgentInitVo);
+ }
+
+ @Override
+ public FebsResponse categorySysList(YHSysCategoryDto dto) {
+ List<YHSysCategoryVo> vos = new ArrayList<>();
+
+ 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());
+ }
+ query.orderByAsc(YhSysAgentCategory::getSort);
+
+ List<YhSysAgentCategory> yhSysAgentCategories = yhSysAgentCategoryMapper.selectList(query);
+ if (CollUtil.isNotEmpty(yhSysAgentCategories)){
+ for (YhSysAgentCategory yhSysAgentCategory : yhSysAgentCategories) {
+ YHSysCategoryVo vo = new YHSysCategoryVo();
+ vo.setId(yhSysAgentCategory.getId());
+ vo.setName(yhSysAgentCategory.getName());
+ vos.add(vo);
+ }
+ }
+ return new FebsResponse().success().data(vos);
+ }
+
+ @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);
+ }
+
+ @Override
+ public FebsResponse agentSysInfo(YHSysAgentInitDto dto) {
+ YHSysAgentInitVo vo = new YHSysAgentInitVo();
+
+ String id = dto.getId();
+ YHSysAgent entity = yhSysAgentMapper.selectById(id);
+ if (ObjectUtil.isNotEmpty(entity)){
+ vo.setId(entity.getId());
+ vo.setName(entity.getName());
+ vo.setDescription(entity.getDescription());
+ vo.setIconImg(entity.getIconImg());
+ vo.setIntroduct(entity.getIntroduct());
+ List<YHSysAgentStartQuestion> questionList = yhSysAgentStartQuestionMapper.selectList(
+ Wrappers.lambdaQuery(YHSysAgentStartQuestion.class).eq(YHSysAgentStartQuestion::getAgentId, id)
+ );
+ if (CollUtil.isNotEmpty(questionList)){
+ List<String> questions = new ArrayList<>();
+ for (YHSysAgentStartQuestion question : questionList) {
+ questions.add(question.getTitle());
+ }
+ vo.setItems(questions);
+ }
+ }
+
+ return new FebsResponse().success().data(vo);
+ }
+
+ @Override
+ public FebsResponse logout() {
+ String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid();
+
+ String redisKey = AppContants.XCX_LOGIN_PREFIX + memberUuid;
+ String existToken = redisUtils.getString(redisKey);
+ if (StrUtil.isNotBlank(existToken)) {
+ Object o = redisUtils.get(existToken);
+ if (ObjectUtil.isNotEmpty(o)) {
+ redisUtils.del(existToken);
+ }
+ }
+ redisUtils.del(AppContants.XCX_LOGIN_PREFIX + memberUuid);
+ return new FebsResponse().success().message("退出登录");
+ }
+}
--
Gitblit v1.9.1