From 8130bed63a505cf718481c0d95d3fcf7b037db96 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 16 Sep 2025 15:11:45 +0800
Subject: [PATCH] refactor(ai): 优化代码结构和更新时间处理

---
 src/main/java/cc/mrbird/febs/ai/service/AiMemberAnswerService.java               |    4 ++++
 src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java      |   20 +++++++++++++++-----
 src/main/java/cc/mrbird/febs/ai/service/ApiMemberTalkStreamService.java          |    4 ++++
 src/main/java/cc/mrbird/febs/ai/service/impl/ApiMemberTalkStreamServiceImpl.java |   14 ++++++++++++++
 4 files changed, 37 insertions(+), 5 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiMemberAnswerService.java b/src/main/java/cc/mrbird/febs/ai/service/AiMemberAnswerService.java
index 5c5a946..474732c 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/AiMemberAnswerService.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/AiMemberAnswerService.java
@@ -5,6 +5,8 @@
 import cc.mrbird.febs.common.entity.FebsResponse;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -32,4 +34,6 @@
     FebsResponse wrongPage(ApiMemberAnswerWrongPageDto dto);
 
     FebsResponse myWork(ApiMemberProductWorkPageDto dto);
+
+    void updateMemberAnswerUpdateTime(String memberAnswerId, Date updateTime);
 }
diff --git a/src/main/java/cc/mrbird/febs/ai/service/ApiMemberTalkStreamService.java b/src/main/java/cc/mrbird/febs/ai/service/ApiMemberTalkStreamService.java
index e2d593f..0ca15c4 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/ApiMemberTalkStreamService.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/ApiMemberTalkStreamService.java
@@ -7,6 +7,8 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import reactor.core.publisher.Flux;
 
+import java.util.Date;
+
 public interface ApiMemberTalkStreamService extends IService<AiMemberTalk> {
     /**
      * 生成题目(流式)
@@ -26,4 +28,6 @@
     Flux<FebsResponse> answerV2(AiTalkAnswerStreamDto dto);
 
     FebsResponse saveAnswer(ApiMemberTalkAnswerSavaDto dto);
+
+    void updateMemberTalkUpdateTime(String memberTalkId, Date updateTime);
 }
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java
index 56576c6..2434673 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java
@@ -253,11 +253,11 @@
             throw new FebsException("答题记录不存在");
         }
 
-        String companyId = aiMemberAnswer.getCompanyId();
+        Date nowTime = new Date();
 
-        Date createdTime = new Date();
+        String companyId = aiMemberAnswer.getCompanyId();
         AiMemberAnswerItem aiMemberAnswerItem = aiMemberAnswerItemService.getById(memberAnswerItemId);
-        aiMemberAnswerItem.setUpdatedTime(createdTime);
+        aiMemberAnswerItem.setUpdatedTime(nowTime);
         AiProductQuestion aiProductQuestion = aiProductQuestionService.getById(productQuestionId);
 
         LambdaQueryWrapper<AiProductQuestionItem> productQuestionItemLambdaQueryWrapper = Wrappers.lambdaQuery(AiProductQuestionItem.class);
@@ -282,14 +282,14 @@
         }else{
             aiMemberAnswerItem.setIsCollected(0);
         }
+        aiMemberAnswerItem.setCompanyId(companyId);
         aiMemberAnswerItemService.updateById(aiMemberAnswerItem);
 
         aiMemberAnswer.setDoneCnt(aiMemberAnswer.getDoneCnt() + 1);
         if (aiMemberAnswerItem.getMemberAnswerState() == 1){
             aiMemberAnswer.setCorrectCnt(aiMemberAnswer.getCorrectCnt() + 1);
         }
-        aiMemberAnswerItem.setCompanyId(companyId);
-        aiMemberAnswer.setUpdatedTime(createdTime);
+        aiMemberAnswer.setUpdatedTime(nowTime);
         aiMemberAnswerMapper.updateById(aiMemberAnswer);
 
         apiQuestionItemInfoVo.setAnswerAnalysis(aiMemberAnswerItem.getAnswerAnalysis());
@@ -396,4 +396,14 @@
 
         return new FebsResponse().success().data(pageListByQuery);
     }
+
+    @Override
+    public void updateMemberAnswerUpdateTime(String memberAnswerId, Date updateTime) {
+        aiMemberAnswerMapper.update(
+                null,
+                Wrappers.lambdaUpdate(AiMemberAnswer.class)
+                .set(AiMemberAnswer::getUpdatedTime,updateTime)
+                .eq(AiMemberAnswer::getId,memberAnswerId)
+        );
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/ApiMemberTalkStreamServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/ApiMemberTalkStreamServiceImpl.java
index 3c1e6f8..c25e496 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/ApiMemberTalkStreamServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/ApiMemberTalkStreamServiceImpl.java
@@ -130,6 +130,8 @@
         if (ObjectUtil.isNull(aiMemberTalk)){
             throw new FebsException("对话不存在");
         }
+        this.updateMemberTalkUpdateTime(aiMemberTalk.getId(), new Date());
+
         String companyId = aiMemberTalk.getCompanyId();
         aiMemberTalkItemService.add(memberUuid,aiMemberTalk.getId(),companyId,2,content,new Date());
         return new FebsResponse().success();
@@ -277,6 +279,9 @@
         if (ObjectUtil.isNull(aiMemberTalk)){
             throw new FebsException("对话不存在");
         }
+
+        this.updateMemberTalkUpdateTime(aiMemberTalk.getId(), new Date());
+
         String companyId = aiMemberTalk.getCompanyId();
         Integer type = dto.getType();
         String memberTalkItemId;
@@ -306,4 +311,13 @@
         return new FebsResponse().success().data(stringStringHashMap);
     }
 
+    @Override
+    public void updateMemberTalkUpdateTime(String memberTalkId, Date updateTime) {
+        aiMemberTalkMapper.update(null,
+                Wrappers.lambdaUpdate(AiMemberTalk.class)
+                .set(AiMemberTalk::getUpdatedTime,updateTime)
+                .eq(AiMemberTalk::getId,memberTalkId)
+                );
+    }
+
 }

--
Gitblit v1.9.1