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