From e298c9a3d7dc23624bf0b79a0bc18ebd1b8219ce Mon Sep 17 00:00:00 2001
From: guyue <1721849008@qq.com>
Date: 星期三, 06 八月 2025 11:05:47 +0800
Subject: [PATCH] 删掉之前的注释

---
 src/main/java/com/linghu/controller/CollectController.java |  317 ----------------------------------------------------
 1 files changed, 0 insertions(+), 317 deletions(-)

diff --git a/src/main/java/com/linghu/controller/CollectController.java b/src/main/java/com/linghu/controller/CollectController.java
index 0200878..8ec7990 100644
--- a/src/main/java/com/linghu/controller/CollectController.java
+++ b/src/main/java/com/linghu/controller/CollectController.java
@@ -644,323 +644,6 @@
         }
     }
     //更新提问词和引用数据
-//    private Mono<Void> updateQuestionAndReference(TaskResultResponse result) {
-//        return Mono.fromRunnable(() -> {
-//            try {
-//                //查看每个账号信息的status是否正常
-//
-//                // 1. 根据KeywordTask更新关键词状态
-//                // 查询关键词ID
-//                LambdaQueryWrapper<KeywordTask> keywordTaskWrapper = new LambdaQueryWrapper<>();
-//                keywordTaskWrapper.eq(KeywordTask::getTask_id, result.getTask_id());
-//                KeywordTask keywordTask = keywordTaskService.getOne(keywordTaskWrapper);
-//                keywordTask.setStatus("completed");
-//                keywordTaskService.updateById(keywordTask);
-//                Keyword keyword = keywordService.getById(keywordTask.getKeyword_id());
-//
-//                if (keyword == null) {
-//                    System.out.println("未找到关联的关键词,task_id: " + result.getTask_id());
-//                    //报错
-//                    throw new Exception("未找到关联的关键词,task_id: " + result.getTask_id());
-//
-//                }
-//                LambdaQueryWrapper<KeywordTask> keywordTaskWrapper2 = new LambdaQueryWrapper<>();
-//                keywordTaskWrapper2.eq(KeywordTask::getKeyword_id, keyword.getKeyword_id());
-//                List<KeywordTask> keywordTasks = keywordTaskService.list(keywordTaskWrapper2);
-//
-//                //如果全部为completed 或者错误、取消、任务不存在 关键词也为completed  ,如果关联关系没有任务id,或者状态为running  ,关键词为submitted,
-//                if (keywordTasks.stream().allMatch(task -> "completed".equals(task.getStatus()) || "false".equals(task.getStatus()) || "cancelled".equals(task.getStatus()) ||"canceled".equals(task.getStatus()) || "nonentity".equals(task.getStatus())) ) {
-//                    keyword.setStatus("completed");
-//                    keywordService.updateById(keyword);
-//
-//                }
-//
-//                    String orderId = keyword.getOrder_id();
-//                    if (orderId == null || orderId.isEmpty()) {
-//                        System.out.println("关键词[" + keyword.getKeyword_id() + "]未关联订单,跳过订单状态更新");
-//                        return;
-//                    }
-//
-//                    // 2.更新订单状态为待处理 查询该订单下的所有关键词,更新订单状态(有取消)
-//                    LambdaQueryWrapper<Keyword> orderKeywordsWrapper = new LambdaQueryWrapper<>();
-//                    orderKeywordsWrapper.eq(Keyword::getOrder_id, orderId);
-//                    List<Keyword> orderKeywords = keywordService.list(orderKeywordsWrapper);
-//
-//                    if (orderKeywords.isEmpty()) {
-//                        System.out.println("订单[" + orderId + "]下无关键词,跳过状态更新");
-//                        return;
-//                    }
-//                    boolean  allValid2 = orderKeywords.stream()
-//                            .allMatch(k -> "completed".equals(k.getStatus()) || "false".equals(k.getStatus()) || "cancelled".equals(k.getStatus()));
-//                    if (allValid2) {
-//                        Orders orders = orderService.getById(orderId);
-//                        if (orders != null) {
-//                            orders.setStatus(1); // 假设Orders有Integer类型的status字段
-//                            orderService.updateById(orders);
-//                            System.out.println("订单[" + orderId + "]所有关键词采集完成或者取消,已更新状态为1");
-//                        } else {
-//                            System.out.println("未找到订单[" + orderId + "],无法更新状态");
-//                        }
-//                    }
-//                    // 3.更新订单状态为完成 检查所有关键词的状态是否均为 completed 或 false
-//                    boolean allValid = orderKeywords.stream()
-//                            .allMatch(k -> "completed".equals(k.getStatus()) || "false".equals(k.getStatus()));
-//
-//                    // 4. 若所有关键词状态均有效,更新订单状态为3
-//                    if (allValid) {
-//                        Orders orders = orderService.getById(orderId);
-//                        if (orders != null) {
-//                            orders.setStatus(3); // 假设Orders有Integer类型的status字段
-//                            orderService.updateById(orders);
-//                            System.out.println("订单[" + orderId + "]所有关键词状态符合条件,已更新状态为3");
-//                        } else {
-//                            System.out.println("未找到订单[" + orderId + "],无法更新状态");
-//                        }
-//                    }
-//
-//
-//                Orders orders = orderService.getById(keyword.getOrder_id());
-//
-//                // 2. 批量查询所有问题
-//                LambdaQueryWrapper<Question> queryWrapper = new LambdaQueryWrapper<>();
-//                queryWrapper.eq(Question::getKeyword_id, keyword.getKeyword_id());
-//                List<Question> questions = questionService.list(queryWrapper);
-//
-//                // 构建问题映射表,用于快速查找
-//                Map<String, Question> questionMap = questions.stream()
-//                        .collect(Collectors.toMap(Question::getQuestion, q -> q));
-//
-//                // 3. 收集所有需要更新的问题和引用
-//                List<Question> questionsToUpdate = new ArrayList<>();
-//                List<Reference> allReferences = new ArrayList<>();
-//                List<Reference> resultList = new ArrayList<>();
-//
-//                // 遍历账号
-//                for (UserResult userResult : result.getResults()) {
-//                    //更新账号状态
-//                    if ( "failed".equals(userResult.getStatus())){
-//                        if (userResult.getError().contains("登录失败")){
-//                            LambdaUpdateWrapper<User> userWrapper =  new LambdaUpdateWrapper<>();
-//                            userWrapper.eq(User::getUser_email, userResult.getUser_email());
-//                            userWrapper.set(User::getStatus, "无法登录");
-//                            userService.update(userWrapper);
-//                            //更新所有提问词的状态
-//                            questionService.update(new LambdaUpdateWrapper<Question>().eq(Question::getKeyword_id, keyword.getKeyword_id())
-//                                    .set(Question::getStatus, "failed")
-//                                    .set(Question::getError, "账户登录失败"));
-//
-//                        }else if (userResult.getError().contains("信息错误")){
-//                            LambdaUpdateWrapper<User> userWrapper =  new LambdaUpdateWrapper<>();
-//                            userWrapper.eq(User::getUser_email, userResult.getUser_email());
-//                            userWrapper.set(User::getStatus, "信息错误");
-//                            userService.update(userWrapper);
-//                        }
-//                    }
-//                    for (QuestionResult questionResult : userResult.getQuestions_results()) {
-//                        try {
-//                            Question question = questionMap.get(questionResult.getQuestion());
-//                            if (question != null) {
-//
-//
-//                                //保存问题结果
-//                                QuestionResultList questionResultList = new QuestionResultList();
-//                                questionResultList.setKeyword_id(keyword.getKeyword_id());
-//                                questionResultList.setQuestion(questionResult.getQuestion());
-//                                questionResultList.setResponse(questionResult.getResponse());
-//                                questionResultList.setStatus(questionResult.getStatus());
-//                                questionResultList.setExtracted_count(questionResult.getExtracted_count());
-//                                questionResultList.setKeyword_task_id(result.getTask_id());
-//                                questionResultList.setError(questionResult.getError());
-//                                questionResultList.setNum(keyword.getNum());
-//                                if (questionResult.getTimestamp() != null) {
-//                                    DateTimeFormatter formatter = DateTimeFormatter
-//                                            .ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSS");
-//                                    questionResultList.setTimestamp(
-//                                            LocalDateTime.parse(questionResult.getTimestamp(), formatter));
-//                                }
-//                                // 保存问题结果列表(新增保存逻辑)
-//                                questionResultService.save(questionResultList);
-//                                // 查询当前轮次下该提问词的所有结果
-//                                List<QuestionResultList> allResults = questionResultService.list(
-//                                        new LambdaQueryWrapper<QuestionResultList>()
-//                                                .eq(QuestionResultList::getKeyword_id, keyword.getKeyword_id())
-//                                                .eq(QuestionResultList::getQuestion, question.getQuestion())
-//                                                .eq(QuestionResultList::getNum, keyword.getNum())
-//                                );
-//
-//                                // 判断最终状态
-//                                String finalStatus = determineFinalStatus(allResults);
-//                                if ("success".equals(finalStatus)){
-//                                    question.setStatus("success");
-//                                    question.setError("");
-//                                }else if ("no_results".equals(finalStatus)){
-//                                    question.setStatus("success");
-//                                    question.setError("采集结果无引用数据");
-//                                }else if ("busyness".equals(finalStatus)){
-//                                    question.setStatus("failed");
-//                                    question.setError("DeepSeek繁忙,请稍后尝试");
-//                                }
-//
-//                                // 更新问题对象
-//                                question.setResponse(questionResult.getResponse());
-//                                question.setExtracted_count(questionResult.getExtracted_count());
-////                                question.setError(questionResult.getError());
-//                                question.setKeyword_id(keyword.getKeyword_id());
-//
-//                                if (questionResult.getTimestamp() != null) {
-//                                    DateTimeFormatter formatter = DateTimeFormatter
-//                                            .ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSS");
-//                                    question.setTimestamp(
-//                                            LocalDateTime.parse(questionResult.getTimestamp(), formatter));
-//                                }
-//
-//                                questionsToUpdate.add(question);
-//                                // 初始化引用列表(避免null)
-//                                List<Reference> references = new ArrayList<>();
-//                                List<TaskResultResponse.Reference> originalReferences = questionResult.getReferences();
-//                                if (originalReferences == null) {
-//                                    originalReferences = Collections.emptyList();
-//                                }
-//
-//                                // 遍历原始引用列表,转换为Reference对象
-//                                for (TaskResultResponse.Reference ref : originalReferences) {
-//                                    Reference reference = new Reference();
-//                                    // 设置基本字段
-//                                    reference.setQuestion_id(question.getQuestion_id());
-//                                    reference.setTitle(ref.getTitle());
-//                                    reference.setUrl(ref.getUrl());
-//                                    reference.setDomain(ref.getDomain());
-//                                    reference.setNum(keyword.getNum());
-//                                    reference.setTask_id(result.getTask_id());
-//                                    reference.setKeyword_id(keyword.getKeyword_id());
-//                                    if (null!=ref.getPublish_time()) {
-//                                        reference.setCreate_time(ref.getPublish_time().atStartOfDay());
-//                                    }
-//
-//                                    // 关键:使用优化后的方法获取平台,避免重复创建
-//                                    Platform platform = getOrCreatePlatform(ref.getDomain(),ref.getPlatform_name());
-//                                    reference.setPlatform_id(platform.getPlatform_id());
-//                                    reference.setType_id(platform.getType_id()); // 直接从平台获取类型ID,更可靠
-//                                    // 添加到结果列表
-//                                    references.add(reference);
-//                                }
-//                                // 添加到总引用列表
-//                                if (!references.isEmpty()) {
-//                                    allReferences.addAll(references);
-//                                }
-//
-//                                //取数据库中当前关键词的当前轮次的当前问题id结果拿出来
-//                                List<Reference> dbList = referenceService.list(new LambdaQueryWrapper<Reference>().eq(Reference::getKeyword_id, keyword.getKeyword_id())
-//                                        .eq(Reference::getNum, keyword.getNum())
-//                                        .eq(Reference::getQuestion_id, question.getQuestion_id())
-//                                );
-//
-//                                // 1. 合并两个列表
-//                                List<Reference> combinedList = new ArrayList<>();
-//                                combinedList.addAll(allReferences);
-//                                combinedList.addAll(dbList);
-//
-//                                // 2. 创建复合键的Map,用于统计完全匹配的记录
-//                                Map<String, List<Reference>> compositeKeyMap = combinedList.stream()
-//                                        .collect(Collectors.groupingBy(
-//                                                ref -> ref.getTitle() + "|" + ref.getUrl() + "|" + ref.getDomain()
-//                                        ));
-//
-//                                // 3. 处理每组重复记录
-//                                compositeKeyMap.forEach((key, refGroup) -> {
-//                                    // 3.1 找出组内有ID的记录(优先从dbList中获取)
-//                                    Optional<Reference> existingRecord = refGroup.stream()
-//                                            .filter(ref -> ref.getReference_id() != null)
-//                                            .findFirst();
-//
-//                                    // 3.2 统计该组的重复次数(总数-1)
-//                                    int repetitionCount = refGroup.size() - 1;
-//
-//                                    // 3.3 决定最终保留的记录
-//                                    Reference recordToSave = new Reference();
-//                                    if (existingRecord.isPresent()) {
-//                                        // 使用已有ID的记录并更新重复次数
-//                                        recordToSave = existingRecord.get();
-//                                        recordToSave.setRepetition_num(
-//                                                (recordToSave.getRepetition_num() == null ? 1 : recordToSave.getRepetition_num())
-//                                                        + repetitionCount
-//                                        );
-//                                    } else {
-//                                        // 没有ID记录则取第一条并设置重复次数
-//                                        recordToSave = refGroup.get(0);
-//                                        recordToSave.setRepetition_num(1+repetitionCount);
-//                                    }
-//
-//                                    resultList.add(recordToSave);
-//                                });
-//                                referenceService.saveOrUpdateBatch(resultList);
-//                            }
-//                        } catch (Exception e) {
-//                            log.error(e.getMessage(), e);
-//                            System.out.println("处理问题结果失败: " + e.getMessage());
-//                        }
-//                    }
-//
-//
-//                }
-//
-//                // 4. 批量更新问题
-//                System.out.println(questionsToUpdate);
-//                if (!questionsToUpdate.isEmpty()) {
-//                    questionService.updateBatchById(questionsToUpdate);
-//                    System.out.println("成功批量更新 " + questionsToUpdate.size() + " 个问题");
-//                }
-//
-//            } catch (Exception e) {
-//                log.error("更新问题和引用数据失败: " ,e.getMessage(), e);
-//                throw new RuntimeException("更新问题和引用数据失败", e);
-//            }
-//        });
-//    }
-//    // 根据所有批次的结果判断最终状态
-//    private String determineFinalStatus(List<QuestionResultList> results) {
-//        if (results.isEmpty()) {
-//            return "no_results"; // 无结果
-//        }
-//
-//        // 统计关键指标
-//        int totalCount = results.size();
-//        int emptyResponseCount = 0;
-//        int systemBusyCount = 0;
-//
-//        for (QuestionResultList result : results) {
-//            // 判断回答是否为空
-//            if (result.getExtracted_count() == 0 ) {
-//                emptyResponseCount++;
-//            }
-//
-//            // 判断是否为系统繁忙
-//            if ("success".equals(result.getStatus())  && (result.getResponse().isEmpty()|| result.getResponse().contains("WebDriver连接中断") || result.getResponse().contains("响应超时"))) {
-//                systemBusyCount++;
-//            }
-//
-//        }
-//
-//        // 全返回系统繁忙
-//        if (systemBusyCount == totalCount) {
-//            return "busyness";
-//        }
-//        // 全返回信息为空
-//        if (emptyResponseCount == totalCount) {
-//            return "no_results";
-//        }
-//
-//
-//        // 系统繁忙比例超过阈值(可配置,这里设为70%)
-////        double busyRate = (double) systemBusyCount / totalCount;
-////        if (busyRate >= 0.7) {
-////            return "系统繁忙,请稍后尝试";
-////        }
-//
-//        // 其他情况返回成功
-//        return "success";
-//    }
-
     private Mono<Void> updateQuestionAndReference(TaskResultResponse result) {
         return Mono.fromRunnable(() -> doUpdateQuestionAndReference(result))
                 .onErrorResume(e -> {

--
Gitblit v1.7.1