From 83b6ee65a7d3c1f37d8ec896902b5189132d59c7 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 27 Aug 2025 15:00:38 +0800
Subject: [PATCH] feat(ai): 添加再练一次(重新回答)功能

---
 src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkServiceImpl.java |   35 +++++++++++++++++++++++++++++++----
 1 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkServiceImpl.java
index 690d80c..b921f93 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkServiceImpl.java
@@ -1,16 +1,15 @@
 package cc.mrbird.febs.ai.service.impl;
 
-import cc.mrbird.febs.ai.controller.enumerates.AiTypeEnum;
+import cc.mrbird.febs.ai.enumerates.AiTypeEnum;
 import cc.mrbird.febs.ai.entity.AiMemberTalk;
 import cc.mrbird.febs.ai.entity.AiMemberTalkItem;
 import cc.mrbird.febs.ai.entity.AiProductRoleLink;
 import cc.mrbird.febs.ai.mapper.AiMemberTalkMapper;
 import cc.mrbird.febs.ai.req.ai.AiMessage;
 import cc.mrbird.febs.ai.req.ai.AiRequest;
-import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkAnswerDto;
-import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkDto;
-import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkItemPageDto;
+import cc.mrbird.febs.ai.req.memberTalk.*;
 import cc.mrbird.febs.ai.res.ai.AiResponse;
+import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkReloadVo;
 import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkVo;
 import cc.mrbird.febs.ai.service.AiMemberTalkItemService;
 import cc.mrbird.febs.ai.service.AiMemberTalkService;
@@ -30,6 +29,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import reactor.core.publisher.Flux;
 
 import java.util.Date;
 import java.util.List;
@@ -96,6 +96,25 @@
         apiMemberTalkVo.setType(1);
         apiMemberTalkVo.setContext(aiResponse.getResContext());
         return new FebsResponse().success().data(apiMemberTalkVo);
+    }
+
+    @Override
+    public FebsResponse reload(ApiMemberTalkReloadDto dto) {
+
+        String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid();
+        ApiMemberTalkReloadVo apiMemberTalkReloadVo = new ApiMemberTalkReloadVo();
+        String memberTalkId = dto.getMemberTalkId();
+        LambdaQueryWrapper<AiMemberTalkItem> queryWrapper = Wrappers.lambdaQuery(AiMemberTalkItem.class);
+        queryWrapper.eq(AiMemberTalkItem::getMemberTalkId,memberTalkId);
+        queryWrapper.eq(AiMemberTalkItem::getType,AiTypeEnum.QUESTION_ANSWER.getCode());
+        queryWrapper.orderByDesc(AiMemberTalkItem::getCreatedTime);
+        AiMemberTalkItem byQuery = aiMemberTalkItemService.getByQuery(queryWrapper);
+        if (ObjectUtil.isNotNull(byQuery)){
+            apiMemberTalkReloadVo.setContext(byQuery.getContext());
+            apiMemberTalkReloadVo.setMemberTalkId(memberTalkId);
+            apiMemberTalkReloadVo.setType(AiTypeEnum.QUESTION_ANSWER.getCode());
+        }
+        return new FebsResponse().success().data(apiMemberTalkReloadVo);
     }
 
     @Override
@@ -256,4 +275,12 @@
         dto.setMemberUuid(memberUuid);
         return aiMemberTalkItemService.historyPage(dto);
     }
+
+    @Override
+    public Flux<FebsResponse> answerStream(String question) {
+
+//        String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid();
+        return aiService.answerStream(question);
+    }
+
 }

--
Gitblit v1.9.1