From 9c48e025319f2a74db779ba98ac953b623b3e664 Mon Sep 17 00:00:00 2001 From: Leo Date: Tue, 8 Apr 2025 15:36:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=BD=E7=A6=BB=E7=A4=BC=E9=87=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/van/business/util/JDUtil.java | 42 ++++++++++++------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/src/main/java/cn/van/business/util/JDUtil.java b/src/main/java/cn/van/business/util/JDUtil.java index 34f65f1..dc38f6b 100644 --- a/src/main/java/cn/van/business/util/JDUtil.java +++ b/src/main/java/cn/van/business/util/JDUtil.java @@ -182,30 +182,44 @@ public class JDUtil { return "地址格式不匹配"; } - public void sendOrderToWxByOrderDefault(String order, String fromWxid) { - logger.info("执行 sendOrderToWxByOrderDefault 方法,order: {}, fromWxid: {}", order, fromWxid); +public void sendOrderToWxByOrderDefault(String order, String fromWxid) { + logger.info("执行 sendOrderToWxByOrderDefault 方法,order: {}, fromWxid: {}", order, fromWxid); + + if ("礼".equals(order)) { + // 确保缓存中有消息内容 + String cachedMessage = cacheMap.get("giftMessage" + fromWxid); + if (cachedMessage == null || cachedMessage.trim().isEmpty()) { + wxUtil.sendTextMessage(fromWxid, "未找到商品链接,请重新输入包含商品链接的消息。", 1, fromWxid, false); + return; + } + handleGiftCommand(fromWxid); + } else { + handleUserInteraction(fromWxid, order); + } +} - if ("礼".equals(order)) { - handleGiftCommand(fromWxid, cacheMap.get("giftMessage" + fromWxid)); - } else { - handleUserInteraction(fromWxid, order); - } - } /** * 处理“礼”指令,直接进入礼金创建流程 */ -private void handleGiftCommand(String fromWxid, String message) { +private void handleGiftCommand(String fromWxid) { try { - // 1. 提取 u.jd.com 链接 - List urls = extractUJDUrls(message); + // 从缓存中获取消息内容 + String cachedMessage = cacheMap.get("giftMessage" + fromWxid); + if (cachedMessage == null || cachedMessage.trim().isEmpty()) { + wxUtil.sendTextMessage(fromWxid, "未找到商品链接,请重新输入包含商品链接的消息。", 1, fromWxid, false); + return; + } + + // 提取 u.jd.com 链接 + List urls = extractUJDUrls(cachedMessage); if (urls.isEmpty()) { wxUtil.sendTextMessage(fromWxid, "未找到有效的商品链接,请检查输入格式。", 1, fromWxid, false); return; } - // 2. 查询商品信息,筛选有效商品 + // 查询商品信息,筛选有效商品 List validProducts = new ArrayList<>(); for (String url : urls) { try { @@ -223,7 +237,7 @@ private void handleGiftCommand(String fromWxid, String message) { return; } - // 3. 缓存商品信息 + // 缓存商品信息 String key = INTERACTION_STATE_PREFIX + fromWxid; UserInteractionState state = loadOrCreateState(key); @@ -236,7 +250,7 @@ private void handleGiftCommand(String fromWxid, String message) { saveState(key, state); - // 4. 提示用户输入金额 + // 提示用户输入金额 wxUtil.sendTextMessage(fromWxid, "请输入开通金额(1-50元,支持小数点后两位):", 1, fromWxid, false); } catch (Exception e) {