From efb9b41a57dba8d9421a3aed9a9057de4041ac19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E6=AC=A7=EF=BC=88=E6=9E=97=E5=B9=B3=E5=87=A1?= =?UTF-8?q?=EF=BC=89?= Date: Wed, 11 Jun 2025 17:40:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BD=95=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/JDOrderRepository.java | 5 ++++ .../java/cn/van/business/util/JDUtil.java | 29 ++++++++++++++++++- .../van/business/util/WxMessageConsumer.java | 13 ++------- 3 files changed, 35 insertions(+), 12 deletions(-) diff --git a/src/main/java/cn/van/business/repository/JDOrderRepository.java b/src/main/java/cn/van/business/repository/JDOrderRepository.java index 8dc7a44..78c86a3 100644 --- a/src/main/java/cn/van/business/repository/JDOrderRepository.java +++ b/src/main/java/cn/van/business/repository/JDOrderRepository.java @@ -2,6 +2,7 @@ package cn.van.business.repository; import cn.van.business.model.jd.JDOrder; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; import java.util.Date; @@ -40,4 +41,8 @@ public interface JDOrderRepository extends JpaRepository { // 并且按日期降序排序 List findByAddressOrderByOrderTimeDesc(String address); + + //select * from jd_order jo where jo.address like "%江苏%" or jo.remark like "%150%" or jo.order_id like "%320%" or jo.buyer like "兽" + @Query("select jo from JDOrder jo where jo.address like %?1% or jo.remark like %?1% or jo.orderId like %?1% or jo.buyer like %?1%") + List searchOrder(String order); } diff --git a/src/main/java/cn/van/business/util/JDUtil.java b/src/main/java/cn/van/business/util/JDUtil.java index 3748b29..6ae50d0 100644 --- a/src/main/java/cn/van/business/util/JDUtil.java +++ b/src/main/java/cn/van/business/util/JDUtil.java @@ -2078,7 +2078,7 @@ public class JDUtil { return null; // 没有带日期或格式错误,返回 null } - public void LD(String input, String fromWxid) { + public void manman(String input, String fromWxid) { // 1️⃣ 调用封装好的方法提取日期 LocalDate userDate = parseUserDateIfPresent(input); @@ -2378,6 +2378,33 @@ public class JDUtil { // 发送给微信 sendOrderToWxByOrderD(order.toString(), fromWxid); + }else if (input.startsWith("慢搜")) { + String order = input.replace("慢搜", ""); + List jdOrders = jdOrderRepository.searchOrder(order); + StringBuilder sb = new StringBuilder(); + if (!jdOrders.isEmpty()) { + if (jdOrders.size() > 10){ + sb.append("搜索结果过多,请缩小搜索范围。只输出10条最新信息:\n\r"); + jdOrders = jdOrders.subList(0, 10); + } + for (JDOrder jdOrder : jdOrders) { + sb.append("单:").append(jdOrder.getOrderId()).append("\n") + .append("分销标记:").append(jdOrder.getDistributionMark()).append("\n") + .append("型号:").append(jdOrder.getModelNumber()).append("\n") + .append("链接:").append(jdOrder.getLink()).append("\n") + .append("下单付款:").append(jdOrder.getPaymentAmount()).append("\n") + .append("后返金额:").append(jdOrder.getRebateAmount()).append("\n") + .append("地址:").append(jdOrder.getAddress()).append("\n") + .append("物流链接:").append(jdOrder.getLogisticsLink()).append("\n") + .append("订单号:").append(jdOrder.getOrderId()).append("\n") + .append("下单人:").append(jdOrder.getBuyer()).append("\n") + .append("下单时间:").append(jdOrder.getOrderTime()).append("\n") + .append("备注:").append(jdOrder.getRemark()).append("\n"); + } + }else { + sb.append("未找到匹配的订单。"); + } + wxUtil.sendTextMessage(fromWxid, sb.toString(), 1, fromWxid, false); } diff --git a/src/main/java/cn/van/business/util/WxMessageConsumer.java b/src/main/java/cn/van/business/util/WxMessageConsumer.java index 39c5736..23eb3de 100644 --- a/src/main/java/cn/van/business/util/WxMessageConsumer.java +++ b/src/main/java/cn/van/business/util/WxMessageConsumer.java @@ -3,11 +3,7 @@ package cn.van.business.util; import cn.van.business.enums.FromType; import cn.van.business.model.wx.WxMessage; -import cn.van.business.repository.SettingRepository; -import cn.van.business.repository.WxMessageDataForChatRepository; -import cn.van.business.repository.WxUserRepository; import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONArray; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -15,11 +11,6 @@ import org.springframework.context.annotation.Lazy; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; -import java.math.BigDecimal; -import java.util.HashMap; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - import static cn.van.business.util.WXUtil.*; @@ -112,9 +103,9 @@ public class WxMessageConsumer { } // 录单群 if ((chatRoom_JD_Order.contains(fromWxid))){ - if (msg.startsWith("单") || msg.startsWith("慢单") || msg.startsWith("录单") || msg.startsWith("TF") || msg.startsWith("H")) { + if (msg.startsWith("单") || msg.startsWith("慢单") || msg.startsWith("录单") || msg.startsWith("TF") || msg.startsWith("H") || msg.startsWith("慢搜")) { //logger.info("录单"); - jdUtils.LD(msg, fromWxid); + jdUtils.manman(msg, fromWxid); return; } }