From a8a6d57a727d94131299d3599443700d598b856c Mon Sep 17 00:00:00 2001 From: van Date: Tue, 26 May 2026 13:00:25 +0800 Subject: [PATCH] 1 --- .../system/JDOrderListController.java | 36 +++++++++++++++++-- .../java/com/ruoyi/jarvis/domain/JDOrder.java | 2 +- .../resources/mapper/jarvis/JDOrderMapper.xml | 12 +++++-- 3 files changed, 44 insertions(+), 6 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 3d442df..5120eab 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 @@ -115,6 +115,8 @@ public class JDOrderListController extends BaseController query.getParams().put("rebateWithoutUploadLink", true); } + applyModelNumberExcludeFilter(query); + java.util.List list; if (orderBy != null && !orderBy.isEmpty()) { // 设置排序参数 @@ -269,6 +271,8 @@ public class JDOrderListController extends BaseController { String fileName = "JD订单数据"; + applyModelNumberExcludeFilter(jdOrder); + List list = jdOrderService.selectJDOrderList(jdOrder); // 设置响应头,指定文件名 @@ -571,9 +575,7 @@ public class JDOrderListController extends BaseController if (query.getModelNumber() != null && !query.getModelNumber().trim().isEmpty()) { query.setModelNumber(query.getModelNumber().trim()); } - if (query.getModelNumberExclude() != null && !query.getModelNumberExclude().trim().isEmpty()) { - query.setModelNumberExclude(query.getModelNumberExclude().trim()); - } + applyModelNumberExcludeFilter(query); if (query.getBuyer() != null && !query.getBuyer().trim().isEmpty()) { query.setBuyer(query.getBuyer().trim()); } @@ -688,4 +690,32 @@ public class JDOrderListController extends BaseController return AjaxResult.error("生成失败: " + e.getMessage()); } } + + /** + * 型号不含:支持逗号、中文逗号、空格、换行分隔的多个关键词,型号不得包含任一关键词。 + */ + private void applyModelNumberExcludeFilter(JDOrder query) { + if (query == null) { + return; + } + List terms = parseModelNumberExcludeTerms(query.getModelNumberExclude()); + if (!terms.isEmpty()) { + query.getParams().put("modelNumberExcludeList", terms); + } + query.setModelNumberExclude(null); + } + + private static List parseModelNumberExcludeTerms(String raw) { + List out = new ArrayList<>(); + if (StringUtils.isEmpty(raw)) { + return out; + } + for (String part : raw.split("[,,\\s\\n]+")) { + String t = part.trim(); + if (!t.isEmpty() && !out.contains(t)) { + out.add(t); + } + } + return out; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/jarvis/domain/JDOrder.java b/ruoyi-system/src/main/java/com/ruoyi/jarvis/domain/JDOrder.java index 766e2c5..2175bb0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/jarvis/domain/JDOrder.java +++ b/ruoyi-system/src/main/java/com/ruoyi/jarvis/domain/JDOrder.java @@ -31,7 +31,7 @@ public class JDOrder extends BaseEntity { @Excel(name = "型号") private String modelNumber; - /** 列表筛选:型号不含此子串(对应 SQL NOT LIKE %值%),不入库 */ + /** 列表筛选:型号不含这些子串(逗号/空格分隔,对应 SQL 多条 NOT LIKE),不入库 */ @Transient private String modelNumberExclude; diff --git a/ruoyi-system/src/main/resources/mapper/jarvis/JDOrderMapper.xml b/ruoyi-system/src/main/resources/mapper/jarvis/JDOrderMapper.xml index 03b6879..8edfc05 100644 --- a/ruoyi-system/src/main/resources/mapper/jarvis/JDOrderMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/jarvis/JDOrderMapper.xml @@ -68,7 +68,11 @@ and distribution_mark = #{distributionMark} and model_number like concat('%', #{modelNumber}, '%') - and (model_number is null or model_number not like concat('%', #{modelNumberExclude}, '%')) + + + and (model_number is null or model_number not like concat('%', #{ex}, '%')) + + and link like concat('%', #{link}, '%') and payment_amount = #{paymentAmount} and rebate_amount = #{rebateAmount} @@ -117,7 +121,11 @@ and distribution_mark = #{distributionMark} and model_number like concat('%', #{modelNumber}, '%') - and (model_number is null or model_number not like concat('%', #{modelNumberExclude}, '%')) + + + and (model_number is null or model_number not like concat('%', #{ex}, '%')) + + and link like concat('%', #{link}, '%') and payment_amount = #{paymentAmount} and rebate_amount = #{rebateAmount}