seatonwan9
2025-08-28 e5d17ab1bc9e0779b325c53bf23d61ae4a15432e
更新代码
3个文件已修改
36 ■■■■■ 已修改文件
src/main/java/com/webmanage/controller/OrderController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/webmanage/service/OrderInfoService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/webmanage/controller/OrderController.java
@@ -360,4 +360,17 @@
            return Result.error("取消订单失败:" + e.getMessage());
        }
    }
    @GetMapping("/product/{productId}/has-completed-orders")
    @ApiOperation("根据产品ID判断是否存在审核中的关联订单")
    public Result<Boolean> hasCompletedOrdersByProductId(
            @ApiParam("产品ID") @PathVariable @NotBlank String productId) {
        try {
            boolean exists = orderInfoService.existsCompletedNotCancelledOrderByProductId(productId);
            return Result.success(exists);
        } catch (Exception e) {
            log.error("查询产品关联订单存在性失败,产品ID: {}", productId, e);
            return Result.error("查询失败:" + e.getMessage());
        }
    }
}
src/main/java/com/webmanage/service/OrderInfoService.java
@@ -145,4 +145,11 @@
     * @return 是否更新成功
     */
    boolean updateWorkflowId(String orderId, String workflowId);
    /**
     * 根据产品ID判断是否存在未取消且已完成的关联订单
     * @param productId 产品ID
     * @return 存在返回true,不存在返回false
     */
    boolean existsCompletedNotCancelledOrderByProductId(String productId);
}
src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java
@@ -41,6 +41,7 @@
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Arrays;
import java.util.stream.Collectors;
/**
@@ -1183,4 +1184,19 @@
        orderInfo.setUpdatedAt(LocalDateTime.now());
        return this.updateById(orderInfo);
    }
    @Override
    public boolean existsCompletedNotCancelledOrderByProductId(String productId) {
        if (!StringUtils.hasText(productId)) {
            throw new BusinessException("产品ID不能为空");
        }
        QueryWrapper<OrderInfo> wrapper = new QueryWrapper<>();
        wrapper.eq("product_id", productId);
        // 未取消:逻辑未删除
        wrapper.eq("deleted", 0);
        // 审核中:状态不为 已完成 或 已取消
        wrapper.notIn("order_status", Arrays.asList("已完成", "已取消"));
        Integer count = this.baseMapper.selectCount(wrapper);
        return count != null && count > 0;
    }
}