Administrator
7 days ago 463d97a5e770dce75c91f9a1bc9ee75942e847c2
feat(yinhe): 添加智能体详情查看功能

- 在WebMvcConfigure中添加/api/yh/agent/agentSysInfo路径排除
- 在YhAiService接口中新增agentSysInfo方法定义
- 在YhAiServiceImpl实现类中注入YHSysAgentStartQuestionMapper并实现详情查询逻辑
- 在YHApiAgentController中新增agentSysInfo接口用于获取智能体详细信息
- 新增YHSysAgentInitDto请求参数类和YHSysAgentInitVo响应结果类
- 新增YHSysAgentStartQuestion实体类和对应的数据访问层
- 实现智能体基本信息及开场白预设问题的查询功能
4 files added
4 files modified
117 ■■■■■ changed files
src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java 1 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/controller/YHApiAgentController.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/entity/YHSysAgentStartQuestion.java 27 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/mapper/YHSysAgentStartQuestionMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/req/YHSysAgentInitDto.java 16 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/res/YHSysAgentInitVo.java 26 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/service/YhAiService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java 28 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
@@ -71,5 +71,6 @@
        registration.excludePathPatterns("/api/yh/agent/categorySysList");
        registration.excludePathPatterns("/api/yh/agent/agentSysList");
        registration.excludePathPatterns("/api/yh/agent/agentSysInfo");
    }
}
src/main/java/cc/mrbird/febs/yinhe/controller/YHApiAgentController.java
@@ -92,6 +92,16 @@
        return service.agentSysList(dto);
    }
    @ApiOperation(value = "首页-智能体-查看详情", notes = "首页-智能体-查看详情")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = YHSysAgentInitVo.class)
    })
    @PostMapping(value = "/agentSysInfo")
    public FebsResponse agentSysInfo(@RequestBody @Validated YHSysAgentInitDto dto) {
        return service.agentSysInfo(dto);
    }
    @ApiOperation(value = "退出", notes = "退出")
    @PostMapping(value = "/logout")
    public FebsResponse logout() {
src/main/java/cc/mrbird/febs/yinhe/entity/YHSysAgentStartQuestion.java
New file
@@ -0,0 +1,27 @@
package cc.mrbird.febs.yinhe.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
 * 智能体起始问题表 ai_sys_agent_start_question
 *
 * @author ruoyi
 */
@Data
@TableName("sys_agent_start_question")
public class YHSysAgentStartQuestion extends YhBaseEntity
{
    /** 主键 */
    private String id;
    /** 公司ID */
    private String companyId;
    /** 智能体ID */
    private String agentId;
    /** 问题内容 */
    private String title;
}
src/main/java/cc/mrbird/febs/yinhe/mapper/YHSysAgentStartQuestionMapper.java
New file
@@ -0,0 +1,7 @@
package cc.mrbird.febs.yinhe.mapper;
import cc.mrbird.febs.yinhe.entity.YHSysAgentStartQuestion;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface YHSysAgentStartQuestionMapper extends BaseMapper<YHSysAgentStartQuestion> {
}
src/main/java/cc/mrbird/febs/yinhe/req/YHSysAgentInitDto.java
New file
@@ -0,0 +1,16 @@
package cc.mrbird.febs.yinhe.req;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
@ApiModel(value = "YHSysAgentInitDto", description = "参数")
public class YHSysAgentInitDto {
    @NotBlank(message = "智能体不能为空")
    @ApiModelProperty(value = "智能体ID", example = "you_ke_*****")
    private String id;
}
src/main/java/cc/mrbird/febs/yinhe/res/YHSysAgentInitVo.java
New file
@@ -0,0 +1,26 @@
package cc.mrbird.febs.yinhe.res;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel(value = "YHSysAgentInitVo", description = "详情响应")
public class YHSysAgentInitVo {
    @ApiModelProperty(value = "智能体ID*", example = "1")
    private String id;
    @ApiModelProperty(value = "名称*", example = "1")
    private String name;
    @ApiModelProperty(value = "描述*", example = "1")
    private String description;
    @ApiModelProperty(value = "小图标*", example = "1")
    private String iconImg;
    @ApiModelProperty(value = "开场白*", example = "1")
    private String introduct;
    @ApiModelProperty(value = "开场白预设问题", example = "1")
    private List<String> items;
}
src/main/java/cc/mrbird/febs/yinhe/service/YhAiService.java
@@ -23,5 +23,7 @@
    FebsResponse agentSysList(YHSysAgentDto dto);
    FebsResponse agentSysInfo(YHSysAgentInitDto dto);
    FebsResponse logout();
}
src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java
@@ -36,6 +36,7 @@
    private final YHAiAgentStartQuestionMapper yhAiAgentStartQuestionMapper;
    private final YhSysAgentCategoryMapper yhSysAgentCategoryMapper;
    private final YHSysAgentStartQuestionMapper yhSysAgentStartQuestionMapper;
    private final YHSysAgentMapper yhSysAgentMapper;
    private final RedisUtils redisUtils;
@@ -204,6 +205,33 @@
    }
    @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();