| | |
| | | @Getter |
| | | @AllArgsConstructor |
| | | public enum OrderStatusEnum { |
| | | //订单消息 通知状态 用于插入 |
| | | //订单状态需要满足: |
| | | /// 商户: 订单类消息,包括买家下单提醒、订单送达通知等 |
| | | /// 骑手:类消息,包括有待接单、订单已取消、距离最晚送达时间不足1小时、距离最晚送达时间不足30分钟等 |
| | | /// 骑手:系统后台针对订单,只提供不足1小时和不足30分钟两个提醒。时间分别在59分和29分 |
| | | /// 买家 订单类消息,包括订单状态变化通知、订单送达通知等 |
| | | /// 保留骑手已接单、骑手已取货 |
| | | /// 变量前缀商户 骑手 买家 |
| | | |
| | | ZERO(0, "订单已提交"), |
| | | ONE(1, "支付成功"), |
| | | TWO(2, "商家已接单"), |
| | | THREE(3, "骑手已接单"), |
| | | FOUR(4, "商家已备货"), |
| | | FIVE(5, "骑手已到店"), |
| | | SIX(6, "骑手已取货"), |
| | | SEVEN(7, "商品已送达"), |
| | | EIGHT(8, "订单已完成"), |
| | | NINE(9, "订单已取消"); |
| | | /* ========== 商户相关状态 ========== */ |
| | | /** |
| | | * 商户:买家下单提醒 |
| | | * 商户收到新订单通知 |
| | | */ |
| | | 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, OrderStatusEnum> MAP = |
| | | Arrays.stream(values()) |
| | | .collect(Collectors.toMap(OrderStatusEnum::getKey, Function.identity())); |
| | | private final Integer key; |
| | | private final String value; |
| | | private final String value; |
| | | |
| | | /* ========== 工具方法 ========== */ |
| | | |
| | | /** 根据 key 获取枚举 */ |
| | | /** |
| | | * 根据 key 获取枚举 |
| | | */ |
| | | public static OrderStatusEnum of(Integer key) { |
| | | return key == null ? null : MAP.get(key); |
| | | } |
| | | |
| | | /** 根据 key 获取描述 */ |
| | | /** |
| | | * 根据 key 获取描述 |
| | | */ |
| | | public static String descOf(Integer key) { |
| | | OrderStatusEnum e = of(key); |
| | | return e == null ? "" : e.getValue(); |
| | | } |
| | | |
| | | /** 反向映射,提升查找速度 */ |
| | | private static final Map<Integer, OrderStatusEnum> MAP = |
| | | Arrays.stream(values()) |
| | | .collect(Collectors.toMap(OrderStatusEnum::getKey, Function.identity())); |
| | | } |
| | | } |