From 32a41e7b04e44a9aba33dd3d71fb79364dc6c851 Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Mon, 25 Aug 2025 18:57:05 +0800
Subject: [PATCH] 消息通知
---
oying-system/src/main/java/com/oying/modules/message/common/MsgStatusEnum.java | 10 ++--
oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java | 5 ++
oying-system/src/main/java/com/oying/modules/message/rest/MesMsgRecordController.java | 6 +-
oying-system/src/main/java/com/oying/modules/message/service/MesMsgRecordService.java | 22 ++++++----
oying-system/src/main/java/com/oying/modules/message/service/impl/MesMsgRecordServiceImpl.java | 58 +++++++++++++++++++---------
5 files changed, 65 insertions(+), 36 deletions(-)
diff --git a/oying-system/src/main/java/com/oying/modules/message/common/OrderStatusEnum.java b/oying-system/src/main/java/com/oying/modules/message/common/MsgStatusEnum.java
similarity index 92%
rename from oying-system/src/main/java/com/oying/modules/message/common/OrderStatusEnum.java
rename to oying-system/src/main/java/com/oying/modules/message/common/MsgStatusEnum.java
index 1fcc66d..7301ecd 100644
--- a/oying-system/src/main/java/com/oying/modules/message/common/OrderStatusEnum.java
+++ b/oying-system/src/main/java/com/oying/modules/message/common/MsgStatusEnum.java
@@ -16,7 +16,7 @@
*/
@Getter
@AllArgsConstructor
-public enum OrderStatusEnum {
+public enum MsgStatusEnum {
//订单消息 通知状态 用于插入
//订单状态需要满足:
/// 商户: 订单类消息,包括买家下单提醒、订单送达通知等
@@ -109,9 +109,9 @@
/**
* 反向映射,提升查找速度
*/
- private static final Map<Integer, OrderStatusEnum> MAP =
+ private static final Map<Integer, MsgStatusEnum> MAP =
Arrays.stream(values())
- .collect(Collectors.toMap(OrderStatusEnum::getKey, Function.identity()));
+ .collect(Collectors.toMap(MsgStatusEnum::getKey, Function.identity()));
private final Integer key;
private final String value;
@@ -120,7 +120,7 @@
/**
* 根据 key 获取枚举
*/
- public static OrderStatusEnum of(Integer key) {
+ public static MsgStatusEnum of(Integer key) {
return key == null ? null : MAP.get(key);
}
@@ -128,7 +128,7 @@
* 根据 key 获取描述
*/
public static String descOf(Integer key) {
- OrderStatusEnum e = of(key);
+ MsgStatusEnum e = of(key);
return e == null ? "" : e.getValue();
}
}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MesMsgRecordController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MesMsgRecordController.java
index eb824ff..702b75a 100644
--- a/oying-system/src/main/java/com/oying/modules/message/rest/MesMsgRecordController.java
+++ b/oying-system/src/main/java/com/oying/modules/message/rest/MesMsgRecordController.java
@@ -1,7 +1,7 @@
package com.oying.modules.message.rest;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.oying.modules.message.common.OrderStatusEnum;
+import com.oying.modules.message.common.MsgStatusEnum;
import com.oying.modules.message.common.PlatFormEnum;
import com.oying.modules.message.domain.dto.MesMsgRecordQueryCriteria;
import com.oying.modules.message.domain.myDto.MesMsgRecordQueryOrderDto;
@@ -168,7 +168,7 @@
@ApiOperation("商户端:用店铺id 获取下单订单消息")
public R<List<MesMsgRecordQueryOrderDto>> getPendingOrders(@RequestParam Long shopId) {
try {
- String content = OrderStatusEnum.MERCHANT_ORDER_SUBMITTED.getValue();
+ String content = MsgStatusEnum.MERCHANT_ORDER_SUBMITTED.getValue();
List<MesMsgRecordQueryOrderDto> res = mesMsgRecordService.queryorderPending(shopId, content);
return R.success(res);
} catch (Exception e) {
@@ -182,7 +182,7 @@
@ApiOperation("商户端:用店铺id 获取订单送达消息")
public R<List<MesMsgRecordQueryOrderDto>> getDeliveredOrders(@RequestParam Long shopId) {
try {
- String content = OrderStatusEnum.BUYER_ORDER_STATUS_CHANGED.getValue();
+ String content = MsgStatusEnum.BUYER_ORDER_STATUS_CHANGED.getValue();
List<MesMsgRecordQueryOrderDto> res = mesMsgRecordService.queryorderPending(shopId, content);
return R.success(res);
} catch (Exception e) {
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MesMsgRecordService.java b/oying-system/src/main/java/com/oying/modules/message/service/MesMsgRecordService.java
index 20e89cd..c7ae0df 100644
--- a/oying-system/src/main/java/com/oying/modules/message/service/MesMsgRecordService.java
+++ b/oying-system/src/main/java/com/oying/modules/message/service/MesMsgRecordService.java
@@ -2,12 +2,14 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
-import com.oying.modules.message.common.OrderStatusEnum;
+import com.oying.modules.message.common.MesTypeEnum;
+import com.oying.modules.message.common.MsgStatusEnum;
import com.oying.modules.message.domain.MesMsgRecord;
import com.oying.modules.message.domain.dto.MesMsgRecordQueryCriteria;
import com.oying.modules.message.domain.myDto.MesMsgRecordQueryOrderDto;
import com.oying.modules.message.domain.myDto.MesMsgRecordQueryPollDto;
import com.oying.modules.message.domain.myDto.MesMsgRecordQuerySystemDto;
+import com.oying.modules.sh.domain.Order;
import com.oying.utils.PageResult;
import javax.servlet.http.HttpServletResponse;
@@ -85,12 +87,14 @@
List<MesMsgRecordQueryPollDto> PollMesAll(Long platform);
+ /**
+ * 插入订单消息通知
+ * @param order 订单信息 {@link com.oying.modules.sh.domain.Order}
+ * @param content 消息内容
+ * @param typeEnum 消息类型
+ */
+ void insertOrderMsg(Order order, MsgStatusEnum content, MesTypeEnum typeEnum);
- //插入订单消息
-
-// 入参 订单编号 订单状态(内容) 店铺id 没有传空值
-
- // void insertOrderMsg(String orderNo, OrderStatusEnum content, Long shopId);
// 设置一个买家状态为下单 买家id name 订单属性 店铺号
void setBuyerStatusOrderSubmitted(String buyerId, String buyerName, String orderNo, Long shopId, String riderId, String riderName);
@@ -98,13 +102,13 @@
void setBuyerStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, String riderId, String riderName);
// 设置一个(订单,买家)的 买家状态
- void setBuyerStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, OrderStatusEnum content, String riderId, String riderName);
+ void setBuyerStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, MsgStatusEnum content, String riderId, String riderName);
//设置商家的状态
- void setSellerStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, OrderStatusEnum content, String riderId, String riderName);
+ void setSellerStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, MsgStatusEnum content, String riderId, String riderName);
//设置骑手状态
- void setRiderStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, OrderStatusEnum content, String riderId, String riderName);
+ void setRiderStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, MsgStatusEnum content, String riderId, String riderName);
}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MesMsgRecordServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MesMsgRecordServiceImpl.java
index be9c78d..f4489d1 100644
--- a/oying-system/src/main/java/com/oying/modules/message/service/impl/MesMsgRecordServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/message/service/impl/MesMsgRecordServiceImpl.java
@@ -4,7 +4,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.oying.modules.message.common.MesReadEnum;
import com.oying.modules.message.common.MesTypeEnum;
-import com.oying.modules.message.common.OrderStatusEnum;
+import com.oying.modules.message.common.MsgStatusEnum;
import com.oying.modules.message.domain.MesMsgRecord;
import com.oying.modules.message.domain.dto.MesMsgRecordQueryCriteria;
import com.oying.modules.message.domain.myDto.MesMsgRecordQueryOrderDto;
@@ -12,6 +12,7 @@
import com.oying.modules.message.domain.myDto.MesMsgRecordQuerySystemDto;
import com.oying.modules.message.mapper.MesMsgRecordMapper;
import com.oying.modules.message.service.MesMsgRecordService;
+import com.oying.modules.sh.domain.Order;
import com.oying.utils.FileUtil;
import com.oying.utils.PageResult;
import com.oying.utils.PageUtil;
@@ -115,7 +116,7 @@
// @Override
// @Transactional(rollbackFor = Exception.class)
-// public void insertOrderMsg(String orderNo, OrderStatusEnum content, Long shopId) {
+// public void insertOrderMsg(String orderNo, MsgStatusEnum content, Long shopId) {
// MesMsgRecord record = new MesMsgRecord();
// record.setOrderNo(orderNo);
// record.setContent(content.getValue()); // 使用枚举的描述作为消息内容
@@ -135,14 +136,33 @@
return mesMsgRecordMapper.PollMesAll(platform);
}
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void insertOrderMsg(Order order, MsgStatusEnum content, MesTypeEnum typeEnum) {
+ MesMsgRecord record = new MesMsgRecord();
+ record.setOrderNo(order.getOrderNum());
+ record.setContent(content.getValue()); // 使用枚举的描述作为消息内容
+ record.setContentKey(String.valueOf(content.getKey()));// 使用枚举的描述作为消息内容key
+ record.setBuyerId(String.valueOf(order.getUserId())); // 处理空值情况
+ record.setBuyerName(order.getUsername());
+ record.setRiderId(order.getRiderId() != null ? String.valueOf(order.getRiderId()) : null);
+ record.setRiderName(order.getRiderName() != null ? order.getRiderName() : null);
+ record.setShopId(order.getStoreId());
+ record.setMsgType(typeEnum.getKey()); // 订单消息类型为2
+ record.setIsRead(MesReadEnum.UNREAD.getKey()); // 默认未读 0
+ record.setCreateTime(new Timestamp(System.currentTimeMillis()));
+ record.setUpdateTime(new Timestamp(System.currentTimeMillis()));
+ mesMsgRecordMapper.insert(record);
+ }
+
// 设置一个买家状态为下单 不存在则插入 买家id name 订单属性 店铺号
@Override
@Transactional(rollbackFor = Exception.class)
public void setBuyerStatusOrderSubmitted(String buyerId, String buyerName, String orderNo, Long shopId, String riderId, String riderName) {
MesMsgRecord record = new MesMsgRecord();
record.setOrderNo(orderNo);
- record.setContent(OrderStatusEnum.MERCHANT_ORDER_SUBMITTED.getValue()); // 使用枚举的描述作为消息内容
- record.setContentKey(String.valueOf(OrderStatusEnum.MERCHANT_ORDER_SUBMITTED.getKey()));// 使用枚举的描述作为消息内容key
+ record.setContent(MsgStatusEnum.MERCHANT_ORDER_SUBMITTED.getValue()); // 使用枚举的描述作为消息内容
+ record.setContentKey(String.valueOf(MsgStatusEnum.MERCHANT_ORDER_SUBMITTED.getKey()));// 使用枚举的描述作为消息内容key
record.setBuyerId(buyerId != null ? buyerId : ""); // 处理空值情况
record.setMsgType(MesTypeEnum.ORDER.getKey()); // 订单消息类型为2
record.setIsRead(MesReadEnum.UNREAD.getKey()); // 默认未读 0
@@ -168,8 +188,8 @@
public void setBuyerStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, String riderId, String riderName) {
MesMsgRecord record = new MesMsgRecord();
record.setOrderNo(orderNo);
- record.setContent(OrderStatusEnum.BUYER_ORDER_STATUS_CHANGED.getValue()); // 使用枚举的描述作为消息内容
- record.setContentKey(String.valueOf(OrderStatusEnum.BUYER_ORDER_STATUS_CHANGED.getKey()));// 使用枚举的描述作为消息内容key
+ record.setContent(MsgStatusEnum.BUYER_ORDER_STATUS_CHANGED.getValue()); // 使用枚举的描述作为消息内容
+ record.setContentKey(String.valueOf(MsgStatusEnum.BUYER_ORDER_STATUS_CHANGED.getKey()));// 使用枚举的描述作为消息内容key
record.setBuyerId(buyerId != null ? buyerId : ""); // 处理空值情况
record.setMsgType(MesTypeEnum.ORDER.getKey()); // 订单消息类型为2
record.setIsRead(MesReadEnum.UNREAD.getKey()); // 默认未读 0
@@ -192,12 +212,12 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public void setBuyerStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, OrderStatusEnum content, String riderId, String riderName) {
+ public void setBuyerStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, MsgStatusEnum content, String riderId, String riderName) {
//content只能设置为如下 "商品已送达" "订单已完成" "订单送达"
if (content == null ||
- (!content.equals(OrderStatusEnum.BUYER_ORDER_STATUS_CHANGED) &&
- !content.equals(OrderStatusEnum.BUYER_ORDER_COMPLETED) &&
- !content.equals(OrderStatusEnum.BUYER_ORDER_DELIVERED))) {
+ (!content.equals(MsgStatusEnum.BUYER_ORDER_STATUS_CHANGED) &&
+ !content.equals(MsgStatusEnum.BUYER_ORDER_COMPLETED) &&
+ !content.equals(MsgStatusEnum.BUYER_ORDER_DELIVERED))) {
throw new IllegalArgumentException("content只能设置为如下 \"商品已送达\" \"订单已完成\" \"订单送达\"");
}
MesMsgRecord record = new MesMsgRecord();
@@ -226,12 +246,12 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public void setSellerStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, OrderStatusEnum content, String riderId, String riderName) {
+ public void setSellerStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, MsgStatusEnum content, String riderId, String riderName) {
//content只能为 "订单已提交" "商家已接单" 商家已备货"
if (content == null ||
- (content != OrderStatusEnum.MERCHANT_ORDER_SUBMITTED &&
- content != OrderStatusEnum.MERCHANT_ACCEPTED &&
- content != OrderStatusEnum.MERCHANT_PREPARED)) {
+ (content != MsgStatusEnum.MERCHANT_ORDER_SUBMITTED &&
+ content != MsgStatusEnum.MERCHANT_ACCEPTED &&
+ content != MsgStatusEnum.MERCHANT_PREPARED)) {
throw new IllegalArgumentException("content只能为 \"订单已提交\" \"商家已接单\" 商家已备货\"");
}
MesMsgRecord record = new MesMsgRecord();
@@ -260,13 +280,13 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public void setRiderStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, OrderStatusEnum content, String riderId, String riderName) {
+ public void setRiderStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, MsgStatusEnum content, String riderId, String riderName) {
//content只能为 "骑手已接单" "骑手已取货" "骑手已到店" "订单已取消" "距离最晚送达时间不足1小时" "距离最晚送达时间不足30分钟"
if (content == null ||
- (content != OrderStatusEnum.RIDER_PENDING_ACCEPTANCE &&
- content != OrderStatusEnum.RIDER_PICKED_UP &&
- content != OrderStatusEnum.RIDER_ARRIVED &&
- content != OrderStatusEnum.RIDER_ORDER_CANCELLED && content != OrderStatusEnum.RIDER_DELIVERY_WARNING)) {
+ (content != MsgStatusEnum.RIDER_PENDING_ACCEPTANCE &&
+ content != MsgStatusEnum.RIDER_PICKED_UP &&
+ content != MsgStatusEnum.RIDER_ARRIVED &&
+ content != MsgStatusEnum.RIDER_ORDER_CANCELLED && content != MsgStatusEnum.RIDER_DELIVERY_WARNING)) {
throw new IllegalArgumentException("content只能为 \"骑手已接单\" \"骑手已取货\" \"骑手已到店\" \"订单已取消\" \"订单已超时\" ");
}
MesMsgRecord record = new MesMsgRecord();
diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java
index a091f1b..41a0607 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java
@@ -2,6 +2,9 @@
import com.alibaba.fastjson2.JSON;
import com.oying.exception.BadRequestException;
+import com.oying.modules.message.common.MesTypeEnum;
+import com.oying.modules.message.common.MsgStatusEnum;
+import com.oying.modules.message.service.MesMsgRecordService;
import com.oying.modules.sh.domain.OrderOperationLog;
import com.oying.modules.sh.domain.vo.OrderResponse;
import com.oying.modules.sh.mapper.OrderMapper;
@@ -35,6 +38,7 @@
private final OrderOperationLogMapper orderOperationLogMapper;
private final OrderMapper orderMapper;
+ private final MesMsgRecordService mesMsgRecordService;
@Override
public PageResult<OrderOperationLog> queryAll(OrderOperationLogQueryCriteria criteria, Page<Object> page) {
@@ -155,6 +159,7 @@
resources.setSnapshotData(JSON.toJSONString(map));
resources.setOperationTime(time);
orderOperationLogMapper.insert(resources);
+ mesMsgRecordService.insertOrderMsg(response.getOrder(), MsgStatusEnum.MERCHANT_ORDER_SUBMITTED, MesTypeEnum.ORDER);
orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), statusEnum.getKey(), statusEnum.getValue());
}
--
Gitblit v1.9.3