From 65f10033448a07535d610ad56a628d7b3f137480 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 27 Aug 2025 17:22:14 +0800
Subject: [PATCH] feat(ai): 优化对话项添加逻辑并增强接口返回值

---
 src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java |   33 ++++++++++++++++++++++++++++-----
 1 files changed, 28 insertions(+), 5 deletions(-)

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 a13c68e..58c9830 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
@@ -57,7 +57,6 @@
     public FebsResponse startAnswerV2(ApiMemberAnswerDto dto) {
         String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid();
         ApiMemberAnswerVoV2 apiMemberAnswerVoV2 = new ApiMemberAnswerVoV2();
-        Integer current = 1;
 
         String productId = dto.getId();
         AiProduct aiProduct = aiProductService.getById(productId);
@@ -114,11 +113,15 @@
                 aiMemberAnswerItems.add(aiMemberAnswerItem);
             }
             aiMemberAnswerItemService.saveBatch(aiMemberAnswerItems);
-            current = 1;
+            apiMemberAnswerVoV2.setCurrent(1);
         }else{
-            current = aiMemberAnswer.getDoneCnt();
+            if (aiMemberAnswer.getQuestionCnt() > aiMemberAnswer.getDoneCnt()){
+                apiMemberAnswerVoV2.setCurrent(aiMemberAnswer.getDoneCnt() + 1);
+            }else{
+                apiMemberAnswerVoV2.setCurrent(aiMemberAnswer.getDoneCnt());
+            }
         }
-        apiMemberAnswerVoV2.setCurrent(current);
+        apiMemberAnswerVoV2.setMemberAnswerId(aiMemberAnswer.getId());
 
         return new FebsResponse().success().data(apiMemberAnswerVoV2);
     }
@@ -273,7 +276,7 @@
         }else{
             aiMemberAnswerItem.setIsCollected(0);
         }
-        aiMemberAnswerItemService.save(aiMemberAnswerItem);
+        aiMemberAnswerItemService.updateById(aiMemberAnswerItem);
 
         aiMemberAnswer.setDoneCnt(aiMemberAnswer.getDoneCnt() + 1);
         if (aiMemberAnswerItem.getMemberAnswerState() == 1){
@@ -310,6 +313,15 @@
 
         long between = DateUtil.between(createdTime, updatedTime, DateUnit.MINUTE);
         apiMemberAnswerInsureVo.setUseTime(between);
+        apiMemberAnswerInsureVo.setProductId(aiMemberAnswer.getProductId());
+
+        aiMemberAnswerMapper.update(null,
+                Wrappers.lambdaUpdate(AiMemberAnswer.class)
+                .set(AiMemberAnswer::getUpdatedTime, new Date())
+                .set(AiMemberAnswer::getState, 1)
+                .set(AiMemberAnswer::getScore, percentage.intValue())
+                .eq(AiMemberAnswer::getId, memberAnswerId)
+                );
         return new FebsResponse().success().data(apiMemberAnswerInsureVo);
     }
 
@@ -366,4 +378,15 @@
         dto.setMemberUuid(memberUuid);
         return aiMemberAnswerItemService.wrongPage(dto);
     }
+
+    @Override
+    public FebsResponse myWork(ApiMemberProductWorkPageDto dto) {
+        String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid();
+        dto.setMemberUuid(memberUuid);
+        // 创建分页对象,传入当前页和每页大小
+        Page<ApiMemberProductWorkVo> page = new Page<>(dto.getPageNow(), dto.getPageSize());
+        Page<ApiMemberProductWorkVo> pageListByQuery = this.getBaseMapper().getPageMyWorkListByQuery(page, dto);
+
+        return new FebsResponse().success().data(pageListByQuery);
+    }
 }

--
Gitblit v1.9.1