From 66374e858d838e4b87882cb291f546f1b8ce0eef Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Sat, 26 Jul 2025 01:55:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E4=BE=9D=E8=B5=96=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=8C=E5=A4=AA=E9=9A=BE=E6=90=9E=E4=BA=86=EF=BC=8C?= =?UTF-8?q?fix=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/listener/DelayMessageReceiver.java | 26 ++++++++++++------- .../order/listener/OrderPayedListener.java | 1 - 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/listener/DelayMessageReceiver.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/listener/DelayMessageReceiver.java index 26bca3f3..c9b24ef8 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/listener/DelayMessageReceiver.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/listener/DelayMessageReceiver.java @@ -8,6 +8,7 @@ package com.suisung.mall.shop.order.listener; +import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; import com.rabbitmq.client.Channel; import com.suisung.mall.common.constant.CommonConstant; @@ -53,7 +54,6 @@ public class DelayMessageReceiver { processDeadMessage(message, channel, msg); } catch (Exception e) { log.error("处理过期消息时发生异常,消息将重新入队,消息内容: {}", message, e); - rejectMessage(channel, msg); } } @@ -69,6 +69,7 @@ public class DelayMessageReceiver { // 检查消息是否为空 if (message == null) { log.warn("收到空消息,无法处理"); + ackMessage(channel, msg); return false; } @@ -84,10 +85,12 @@ public class DelayMessageReceiver { // 根据消息分类处理不同类型的消息 if (category == MqConstant.DEAD_EVENT_CATE_ORDER_EXPIRED) { // 处理订单超时消息 - return handleOrderExpiredMessage(message, channel, msg); + handleOrderExpiredMessage(message, channel, msg); + return true; } else if (category == MqConstant.DEAD_EVENT_CATE_PRE_ORDER) { // 处理预订单消息 - return handlePreOrderMessage(message); + handlePreOrderMessage(message); + return true; } else { log.warn("未知的消息分类: {},消息内容: {}", category, message); ackMessage(channel, msg); @@ -106,12 +109,19 @@ public class DelayMessageReceiver { * @param message 消息内容 * @return 处理结果 */ - private boolean handleOrderExpiredMessage(JSONObject message, Channel channel, Message msg) { + private void handleOrderExpiredMessage(JSONObject message, Channel channel, Message msg) { try { String orderId = message.getStr("orderId"); Integer storeId = message.getInt("storeId"); + String title = message.getStr("title"); + String content = message.getStr("message"); - log.info("处理订单超时消息,订单号: {}, 店铺ID: {}", orderId, storeId); + if (StrUtil.isBlank(title)) { + title = "有一笔已超时的订单!"; + } + if (StrUtil.isBlank(content)) { + content = "您有一笔已超时的订单[" + orderId + "],请及时处理。"; // 消息内容 + } // 构造推送消息内容 JSONObject payload = new JSONObject(); @@ -120,16 +130,14 @@ public class DelayMessageReceiver { // 发送推送消息给商家员工 pushMessageService.noticeMerchantEmployeeOrderAction( - storeId, orderId, message.getStr("title"), - message.getStr("message"), payload); + storeId, orderId, title, + content, payload); log.info("订单超时消息处理完成,订单号: {}, 店铺ID: {}", orderId, storeId); ackMessage(channel, msg); - return true; } catch (Exception e) { log.error("处理订单超时消息时发生异常,消息内容: {}", message, e); ackMessage(channel, msg); - return false; } } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/listener/OrderPayedListener.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/listener/OrderPayedListener.java index 14c51b61..7713f0a0 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/listener/OrderPayedListener.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/listener/OrderPayedListener.java @@ -146,7 +146,6 @@ public class OrderPayedListener { jsonObject.put("storeId", orderInfoOld.getStore_id()); // 店铺ID jsonObject.put("title", "有一笔已超时的订单!"); // 消息标题 jsonObject.put("message", "您有一笔已超时的订单[" + orderId + "],请及时处理。"); // 消息内容 - // 发送延迟消息 mqMessageService.sendDelayMessage(jsonObject.toString(), 1500L * 1000); // 转换为毫秒