guyue
昨天 1e62f21db4ea2012ab0133b21682717204056804
修改状态逻辑
3个文件已修改
59 ■■■■ 已修改文件
src/main/java/com/linghu/controller/CollectController.java 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/linghu/controller/KeywordController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/linghu/controller/OrderController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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());
src/main/java/com/linghu/controller/KeywordController.java
@@ -580,8 +580,8 @@
    @PostMapping("/updateKeyword")
    @ApiOperation(value = "修改关键词")
    public ResponseResult<String> updateKeyword(@RequestBody Keyword keyword) {
        if(!"notSubmitted".equals(keyword.getStatus())){
            return ResponseResult.error("关键词已开始采集或采集完成不允许修改!");
        if("submitted".equals(keyword.getStatus())){
            return ResponseResult.error("关键词已开始采集不允许修改!");
        }
        keywordService.updateById(keyword);
        return ResponseResult.success("修改成功");
@@ -594,8 +594,8 @@
    @ApiOperation(value = "删除关键词")
    public ResponseResult<String> deleteKeyword(@RequestParam("keywordId") Integer keywordId) {
        Keyword keyword = keywordService.getById(keywordId);
        if(!"notSubmitted".equals(keyword.getStatus())){
            return ResponseResult.error("关键词已开始采集或采集完成不允许删除!");
        if("submitted".equals(keyword.getStatus())){
            return ResponseResult.error("关键词已开始采集或不允许删除!");
        }
        keywordService.removeById(keywordId);
        return ResponseResult.success("删除成功");
src/main/java/com/linghu/controller/OrderController.java
@@ -132,6 +132,8 @@
            if (!saveOrderWithKeywords) {
                return ResponseResult.error("添加关键词失败");
            }
            //更新订单状态,新增关键词
            orderDto.setStatus(1);
        }
        //更新关键词数量
        LambdaQueryWrapper<Keyword> queryKeywordsQueryWrapper =  new LambdaQueryWrapper<>();