guyue
2025-09-03 dd028e18a12ad9ae7c43ed09b15ddd6bde1a43e9
采集中状态修改提前,统计数据合并
2个文件已修改
20 ■■■■■ 已修改文件
src/main/java/com/linghu/service/impl/CollectionServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/keywordMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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())
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 只出现一次