package com.oying.modules.message.common;
|
|
import lombok.AllArgsConstructor;
|
import lombok.Getter;
|
|
import java.util.Arrays;
|
import java.util.Map;
|
import java.util.function.Function;
|
import java.util.stream.Collectors;
|
|
/**
|
* 订单状态枚举
|
*
|
* @author leomon
|
* @date 2025-05-20
|
*/
|
@Getter
|
@AllArgsConstructor
|
public enum MsgStatusEnum {
|
//订单消息 通知状态 用于插入
|
//订单状态需要满足:
|
/// 商户: 订单类消息,包括买家下单提醒、订单送达通知等
|
/// 骑手:类消息,包括有待接单、订单已取消、距离最晚送达时间不足1小时、距离最晚送达时间不足30分钟等
|
/// 骑手:系统后台针对订单,只提供不足1小时和不足30分钟两个提醒。时间分别在59分和29分
|
/// 买家 订单类消息,包括订单状态变化通知、订单送达通知等
|
/// 保留骑手已接单、骑手已取货
|
/// 变量前缀商户 骑手 买家
|
|
/* ========== 商户相关状态 ========== */
|
/**
|
* 商户:买家下单提醒
|
* 商户收到新订单通知
|
*/
|
MERCHANT_ORDER_SUBMITTED(0, "订单已提交"),
|
|
// /**
|
// * 商户:支付成功通知
|
// * 订单支付成功通知商户
|
// */
|
// MERCHANT_PAYMENT_SUCCESS(1, "支付成功"),
|
|
/**
|
* 商户:商家已接单
|
* 商户确认接单通知
|
*/
|
MERCHANT_ACCEPTED(2, "商家已接单"),
|
|
/**
|
* 商户:商家已备货
|
* 商户完成备货通知
|
*/
|
MERCHANT_PREPARED(4, "商家已备货"),
|
|
|
/* ========== 骑手相关状态 ========== */
|
//加一个骑手取消接单
|
RIDER_CANCEL_ACCEPT(14, "骑手取消接单"),
|
/**
|
* 骑手:有待接单
|
* 骑手端有待接订单通知
|
*/
|
RIDER_PENDING_ACCEPTANCE(3, "骑手已接单"),
|
|
/**
|
* 骑手:骑手已取货
|
* 骑手取货完成通知
|
*/
|
RIDER_PICKED_UP(6, "骑手已取货"),
|
|
/**
|
* 骑手:骑手已到店
|
* 骑手到达商户店铺通知
|
*/
|
RIDER_ARRIVED(5, "骑手已到店"),
|
|
/**
|
* 骑手:订单已取消
|
* 订单取消通知骑手
|
*/
|
RIDER_ORDER_CANCELLED(9, "订单已取消"),
|
|
/**
|
* 骑手:配送超时提醒
|
* 距离最晚送达时间不足提醒,包括不足1小时和不足30分钟两种情况
|
* 系统后台提供的定时提醒状态,在订单创建后59分钟和29分钟时触发
|
*/
|
RIDER_DELIVERY_WARNING(10, "配送超时提醒"),
|
|
|
/* ========== 买家相关状态 ========== */
|
/**
|
* 买家:订单状态变化通知
|
* 订单状态更新通知买家
|
*/
|
BUYER_ORDER_STATUS_CHANGED(7, "商品已送达"),
|
|
/**
|
* 买家:订单已完成
|
* 订单完成通知买家
|
*/
|
BUYER_ORDER_COMPLETED(8, "订单已完成"),
|
|
/**
|
* 买家:订单送达通知
|
* 订单送达通知买家
|
*/
|
BUYER_ORDER_DELIVERED(13, "订单送达");
|
|
/**
|
* 反向映射,提升查找速度
|
*/
|
private static final Map<Integer, MsgStatusEnum> MAP =
|
Arrays.stream(values())
|
.collect(Collectors.toMap(MsgStatusEnum::getKey, Function.identity()));
|
private final Integer key;
|
private final String value;
|
|
/* ========== 工具方法 ========== */
|
|
/**
|
* 根据 key 获取枚举
|
*/
|
public static MsgStatusEnum of(Integer key) {
|
return key == null ? null : MAP.get(key);
|
}
|
|
/**
|
* 根据 key 获取描述
|
*/
|
public static String descOf(Integer key) {
|
MsgStatusEnum e = of(key);
|
return e == null ? "" : e.getValue();
|
}
|
}
|