From 5b4cc5d4f7e1d80c7927c879ed576081eafd0a81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8D=92?= Date: Mon, 3 Nov 2025 10:51:02 +0800 Subject: [PATCH] 1 --- .../system/JDOrderListController.java | 41 +++++++++++++++---- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/JDOrderListController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/JDOrderListController.java index ba2c82e..398d194 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/JDOrderListController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/JDOrderListController.java @@ -58,6 +58,12 @@ public class JDOrderListController extends BaseController query.getParams().put("endTime", endTimeStr); } + // 处理完成日期筛选参数 + String hasFinishTime = request.getParameter("hasFinishTime"); + if (hasFinishTime != null && "true".equalsIgnoreCase(hasFinishTime)) { + query.getParams().put("hasFinishTime", true); + } + java.util.List list; if (orderBy != null && !orderBy.isEmpty()) { // 设置排序参数 @@ -70,13 +76,34 @@ public class JDOrderListController extends BaseController TableDataInfo dataTable = getDataTable(list); List rows = (List) dataTable.getRows(); - for (JDOrder jdOrder : rows) { - OrderRows orderRows = orderRowsService.selectOrderRowsByOrderId(jdOrder.getOrderId()); - if (orderRows != null) { - jdOrder.setProPriceAmount(orderRows.getProPriceAmount()); - jdOrder.setFinishTime(orderRows.getFinishTime()); - } else { - jdOrder.setProPriceAmount(0.0); + + // 如果需要筛选完成日期不为空,先过滤后再关联查询 + if (hasFinishTime != null && "true".equalsIgnoreCase(hasFinishTime)) { + // 先关联查询所有订单的完成时间 + for (JDOrder jdOrder : rows) { + OrderRows orderRows = orderRowsService.selectOrderRowsByOrderId(jdOrder.getOrderId()); + if (orderRows != null) { + jdOrder.setProPriceAmount(orderRows.getProPriceAmount()); + jdOrder.setFinishTime(orderRows.getFinishTime()); + } else { + jdOrder.setProPriceAmount(0.0); + jdOrder.setFinishTime(null); + } + } + // 过滤掉完成时间为空的订单 + rows.removeIf(jdOrder -> jdOrder.getFinishTime() == null); + // 更新总数 + dataTable.setTotal(rows.size()); + } else { + // 正常关联查询 + for (JDOrder jdOrder : rows) { + OrderRows orderRows = orderRowsService.selectOrderRowsByOrderId(jdOrder.getOrderId()); + if (orderRows != null) { + jdOrder.setProPriceAmount(orderRows.getProPriceAmount()); + jdOrder.setFinishTime(orderRows.getFinishTime()); + } else { + jdOrder.setProPriceAmount(0.0); + } } }