From 1e62f21db4ea2012ab0133b21682717204056804 Mon Sep 17 00:00:00 2001 From: guyue <1721849008@qq.com> Date: 星期日, 13 七月 2025 20:48:09 +0800 Subject: [PATCH] 修改状态逻辑 --- src/main/java/com/linghu/controller/CollectController.java | 49 ++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 40 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/linghu/controller/CollectController.java b/src/main/java/com/linghu/controller/CollectController.java index 4110880..1ace567 100644 --- a/src/main/java/com/linghu/controller/CollectController.java +++ b/src/main/java/com/linghu/controller/CollectController.java @@ -440,14 +440,19 @@ // keywordTaskService.updateById(taskToUpdate); - //设置订单进入采集状态 - LambdaUpdateWrapper<Orders> updateOrderWrapper = new LambdaUpdateWrapper<>(); - updateOrderWrapper.eq(Orders::getOrder_id, keyword.getOrder_id()) // 确保字段名正确 - .set(Orders::getStatus, 2); // 直接设置状态值 + //所有关键词都在采集中或者已完成或者错误设置订单进入采集状态 + List<Keyword> orderKeywords = keywordService.list(new LambdaQueryWrapper<Keyword>() + .eq(Keyword::getOrder_id, keyword.getOrder_id())); + if (!orderKeywords.isEmpty() && orderKeywords.stream().allMatch(k -> + "completed".equals(k.getStatus()) || "submitted".equals(k.getStatus()) + )) { + Orders orders = orderService.getById(keyword.getOrder_id()); + if (orders != null) { + orders.setStatus(2); + orderService.updateById(orders); - boolean success = orderService.update(updateOrderWrapper); - log.info("订单状态更新结果: {}", success ? "成功" : "失败"); - + } + } }).subscribeOn(Schedulers.boundedElastic()) // 在弹性线程池执行 .thenReturn(taskResponse); } @@ -624,6 +629,7 @@ //把任务id为空的删除 LambdaUpdateWrapper<KeywordTask> updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(KeywordTask::getKeyword_id, keywordId); updateWrapper.isNull(KeywordTask::getTask_id); keywordTaskService.remove(updateWrapper); // 查询该关键词下的所有任务 @@ -640,6 +646,9 @@ keywordService.updateById(keyword); // log.info("关键词 {} 所有任务已完成,更新状态为 completed", keywordId); // } + //更新提问词状态为取消 + + questionService.update(new LambdaUpdateWrapper<Question>().eq(Question::getKeyword_id, keywordId).set(Question::getStatus, "canceled")); // 更新订单状态 String orderId = keyword.getOrder_id(); @@ -651,13 +660,23 @@ // 所有关键词均已完成,则更新订单状态为3 if (!orderKeywords.isEmpty() && orderKeywords.stream().allMatch(k -> - "completed".equals(k.getStatus()) || "false".equals(k.getStatus()) || "canceled".equals(k.getStatus()) + "completed".equals(k.getStatus()) || "false".equals(k.getStatus()) )) { Orders orders = orderService.getById(orderId); if (orders != null) { orders.setStatus(3); orderService.updateById(orders); log.info("订单 {} 所有关键词已完成,更新状态为3", orderId); + } + } + if (!orderKeywords.isEmpty() && orderKeywords.stream().allMatch(k -> + !"completed".equals(k.getStatus()) || "false".equals(k.getStatus()) || "canceled".equals(k.getStatus()) + )) { + Orders orders = orderService.getById(orderId); + if (orders != null) { + orders.setStatus(1); + orderService.updateById(orders); + log.info("订单 {} 所有关键词已完成或者取消,更新状态为1", orderId); } } } @@ -927,7 +946,7 @@ } // 3. 检查所有关键词的状态是否均为 completed 或 false boolean allValid = orderKeywords.stream() - .allMatch(k -> "completed".equals(k.getStatus()) || "false".equals(k.getStatus()) || "canceled".equals(k.getStatus())); + .allMatch(k -> "completed".equals(k.getStatus()) || "false".equals(k.getStatus())); // 4. 若所有关键词状态均有效,更新订单状态为3 if (allValid) { @@ -940,6 +959,18 @@ System.out.println("未找到订单[" + orderId + "],无法更新状态"); } } + boolean allValid2 = orderKeywords.stream() + .allMatch(k -> "completed".equals(k.getStatus()) || "false".equals(k.getStatus()) || "canceled".equals(k.getStatus())); + if (allValid) { + 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 + "],无法更新状态"); + } + } Orders orders = orderService.getById(keyword.getOrder_id()); -- Gitblit v1.7.1