xin
2025-09-17 6d31d535d737ed26c4d9d61cd4e0b5483cb9b0ba
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
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_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_COMPLETED(8, "订单已完成"),
 
    /**
     * 买家:订单送达通知
     * 订单送达通知买家
     */
    BUYER_ORDER_DELIVERED(13, "订单送达");
 
//    /* ========== 商户相关状态 ========== */
//    /**
//     * 商户:买家下单提醒
//     * 商户收到新订单通知
//     */
//    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();
    }
}