From 6caa44d39e3417a91c81d9bf1eea610719837914 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 09 Oct 2025 15:44:22 +0800
Subject: [PATCH] feat(ai): 新增题目轮播接口- 在 AiTalkService 中添加 questionListV2 方法定义 - 实现 questionListV2 接口逻辑,支持按公司ID查询题目 - 添加 ApiQuestionListDto 请求参数类 - 更新 controller 层,增加 /questionListV2 接口 - 使用通配符导入优化包引用方式

---
 src/main/java/cc/mrbird/febs/ai/controller/talk/ApiAiTalkController.java |   15 +++++--
 src/main/java/cc/mrbird/febs/ai/service/impl/AiTalkServiceImpl.java      |   27 +++++++++++--
 src/main/java/cc/mrbird/febs/ai/req/talk/ApiQuestionListDto.java         |   13 ++++++
 src/main/java/cc/mrbird/febs/ai/service/AiTalkService.java               |    7 +--
 4 files changed, 50 insertions(+), 12 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/ai/controller/talk/ApiAiTalkController.java b/src/main/java/cc/mrbird/febs/ai/controller/talk/ApiAiTalkController.java
index 2cf5a30..6ece427 100644
--- a/src/main/java/cc/mrbird/febs/ai/controller/talk/ApiAiTalkController.java
+++ b/src/main/java/cc/mrbird/febs/ai/controller/talk/ApiAiTalkController.java
@@ -1,9 +1,6 @@
 package cc.mrbird.febs.ai.controller.talk;
 
-import cc.mrbird.febs.ai.req.talk.AiTalkAnswerStream;
-import cc.mrbird.febs.ai.req.talk.ApiTalkDto;
-import cc.mrbird.febs.ai.req.talk.ApiTalkItemPageDto;
-import cc.mrbird.febs.ai.req.talk.ApiTalkPageDto;
+import cc.mrbird.febs.ai.req.talk.*;
 import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkStreamVoOld;
 import cc.mrbird.febs.ai.res.talk.ApiTalkItemPageVo;
 import cc.mrbird.febs.ai.res.talk.ApiTalkPageVo;
@@ -42,6 +39,16 @@
         return aiTalkService.questionList();
     }
 
+    @ApiOperation(value = "题目轮播", notes = "题目轮播")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "success", response = ApiTalkQuestionVo.class)
+    })
+    @PostMapping(value = "/questionListV2")
+    public FebsResponse questionListV2(@RequestBody @Validated ApiQuestionListDto dto) {
+
+        return aiTalkService.questionListV2(dto);
+    }
+
     @ApiOperation(value = "用户AI问答", notes = "用户AI问答")
     @ApiResponses({
             @ApiResponse(code = 200, message = "success", response = ApiTalkVo.class)
diff --git a/src/main/java/cc/mrbird/febs/ai/req/talk/ApiQuestionListDto.java b/src/main/java/cc/mrbird/febs/ai/req/talk/ApiQuestionListDto.java
new file mode 100644
index 0000000..19044e1
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/ai/req/talk/ApiQuestionListDto.java
@@ -0,0 +1,13 @@
+package cc.mrbird.febs.ai.req.talk;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "ApiQuestionListDto", description = "参数")
+public class ApiQuestionListDto {
+
+    @ApiModelProperty(value = "公司ID", example = "1")
+    private String companyId;
+}
diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiTalkService.java b/src/main/java/cc/mrbird/febs/ai/service/AiTalkService.java
index f8fb02b..44105a0 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/AiTalkService.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/AiTalkService.java
@@ -1,10 +1,7 @@
 package cc.mrbird.febs.ai.service;
 
 import cc.mrbird.febs.ai.entity.AiTalk;
-import cc.mrbird.febs.ai.req.talk.AiTalkAnswerStream;
-import cc.mrbird.febs.ai.req.talk.ApiTalkDto;
-import cc.mrbird.febs.ai.req.talk.ApiTalkItemPageDto;
-import cc.mrbird.febs.ai.req.talk.ApiTalkPageDto;
+import cc.mrbird.febs.ai.req.talk.*;
 import cc.mrbird.febs.common.entity.FebsResponse;
 import com.baomidou.mybatisplus.extension.service.IService;
 import reactor.core.publisher.Flux;
@@ -15,6 +12,8 @@
 
     FebsResponse questionList();
 
+    FebsResponse questionListV2(ApiQuestionListDto dto);
+
     FebsResponse talkOpen(ApiTalkDto dto);
 
     AiTalk add(String memberUuid,String companyId, String question, Date date);
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiTalkServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiTalkServiceImpl.java
index 299d64c..1480379 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiTalkServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiTalkServiceImpl.java
@@ -4,10 +4,7 @@
 import cc.mrbird.febs.ai.entity.AiTalk;
 import cc.mrbird.febs.ai.enumerates.AiPromptEnum;
 import cc.mrbird.febs.ai.mapper.AiTalkMapper;
-import cc.mrbird.febs.ai.req.talk.AiTalkAnswerStream;
-import cc.mrbird.febs.ai.req.talk.ApiTalkDto;
-import cc.mrbird.febs.ai.req.talk.ApiTalkItemPageDto;
-import cc.mrbird.febs.ai.req.talk.ApiTalkPageDto;
+import cc.mrbird.febs.ai.req.talk.*;
 import cc.mrbird.febs.ai.res.talk.ApiTalkPageVo;
 import cc.mrbird.febs.ai.res.talk.ApiTalkQuestionVo;
 import cc.mrbird.febs.ai.res.talk.ApiTalkVo;
@@ -70,6 +67,28 @@
     }
 
     @Override
+    public FebsResponse questionListV2(ApiQuestionListDto dto) {
+        List<ApiTalkQuestionVo> list = new ArrayList<>();
+        LambdaQueryWrapper<AiProductQuestion> queryWrapper = Wrappers.lambdaQuery(AiProductQuestion.class);
+        if (StrUtil.isNotEmpty(dto.getCompanyId())){
+            queryWrapper.eq(AiProductQuestion::getCompanyId,dto.getCompanyId());
+        }else{
+            queryWrapper.isNull(AiProductQuestion::getCompanyId);
+        }
+        queryWrapper.orderByDesc(AiProductQuestion::getCreatedTime);
+        queryWrapper.last("limit 30");
+        List<AiProductQuestion> listByQuery = aiProductQuestionService.getListByQuery(queryWrapper);
+        if (CollUtil.isNotEmpty(listByQuery)){
+            for (AiProductQuestion aiProductQuestion : listByQuery){
+                ApiTalkQuestionVo apiTalkQuestionVo = new ApiTalkQuestionVo();
+                apiTalkQuestionVo.setContext(aiProductQuestion.getTitle());
+                list.add(apiTalkQuestionVo);
+            }
+        }
+        return new FebsResponse().success().data(list);
+    }
+
+    @Override
     public FebsResponse talkOpen(ApiTalkDto dto) {
         String talkId = dto.getTalkId();
         String context = dto.getContext();

--
Gitblit v1.9.1