From dd028e18a12ad9ae7c43ed09b15ddd6bde1a43e9 Mon Sep 17 00:00:00 2001
From: guyue <1721849008@qq.com>
Date: 星期三, 03 九月 2025 11:27:50 +0800
Subject: [PATCH] 采集中状态修改提前,统计数据合并

---
 src/main/resources/mapper/keywordMapper.xml                      |   12 +++++++-----
 src/main/java/com/linghu/service/impl/CollectionServiceImpl.java |    8 ++++++--
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/linghu/service/impl/CollectionServiceImpl.java b/src/main/java/com/linghu/service/impl/CollectionServiceImpl.java
index 5795140..772a0c1 100644
--- a/src/main/java/com/linghu/service/impl/CollectionServiceImpl.java
+++ b/src/main/java/com/linghu/service/impl/CollectionServiceImpl.java
@@ -84,7 +84,12 @@
 
                     // 将新的任务请求加入队列
                     taskQueue.add(searchTaskRequest);
+                    //更新状态为采集中
+                    LambdaUpdateWrapper<Keyword> updateWrapper = new LambdaUpdateWrapper<>();
+                    updateWrapper.eq(Keyword::getKeyword_id, searchTaskRequest.getKeyword_id());
+                    updateWrapper.set(Keyword::getStatus, FinalStatus.SUBMITTED.getValue());
 
+                    keywordService.update(updateWrapper);
                     // 如果当前没有任务在处理中,则启动任务队列的处理
                     if (!isProcessing) {
                         processNextTaskInQueue();
@@ -439,13 +444,12 @@
                                     //更新关键词状态
                                     LambdaUpdateWrapper<Keyword> updateWrapper = new LambdaUpdateWrapper<>();
                                     updateWrapper.eq(Keyword::getKeyword_id, batchRequest.getKeyword_id());
-                                    updateWrapper.set(Keyword::getStatus, FinalStatus.SUBMITTED.getValue());
                                     updateWrapper.set(Keyword::getTask_id, taskResponse.getTask_id());
                                     keywordService.update(updateWrapper);
                                     //设置轮数
                                     Keyword keyword = keywordService.getById(batchRequest.getKeyword_id());
                                     // 更新关键词任务与任务ID的关联
-                                    // 获取与关键词相关的任务,task_id 为 null,确保只取一个任务
+                                    // 获取与关键词相关的任务
                                     List<KeywordTask> keywordTasks = keywordTaskService.list(new LambdaQueryWrapper<KeywordTask>()
                                             .eq(KeywordTask::getKeyword_id, keyword.getKeyword_id())
                                             .eq(KeywordTask::getNum, keyword.getNum())
diff --git a/src/main/resources/mapper/keywordMapper.xml b/src/main/resources/mapper/keywordMapper.xml
index 4827b19..f8fca45 100644
--- a/src/main/resources/mapper/keywordMapper.xml
+++ b/src/main/resources/mapper/keywordMapper.xml
@@ -99,11 +99,11 @@
     </select>
     <select id="getResultByPlatformId" resultType="com.linghu.model.vo.ResultListVO">
         SELECT
-            r.reference_id,
+            MIN(r.reference_id) AS reference_id,
             p.platform_name,
-            r.title,
-            r.repetition_num,
-            r.create_time,
+            MAX(r.title) AS title,  -- 或者使用 GROUP_CONCAT(r.title) 如果你想要所有标题
+            SUM(r.repetition_num) AS repetition_num,
+            MAX(r.create_time) AS create_time,  -- 或者 MIN(r.create_time) 取决于你的需求
             r.url
         FROM
         reference r
@@ -119,8 +119,10 @@
                 AND r.platform_id = #{platformId}
             </if>
 
+        GROUP BY
+        p.platform_name
         ORDER BY
-        r.repetition_num DESC
+        repetition_num DESC
     </select>
     <select id="getTypeIds" resultType="java.lang.Integer">
         SELECT DISTINCT t.type_id  -- 使用 DISTINCT 去重,确保每个 type_id 只出现一次

--
Gitblit v1.7.1