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