leomonM
2025-08-22 9974ae6ee68dd3ddbc5d6b2f8e66606e6bf2b25a
oying-system/src/main/java/com/oying/modules/message/common/OrderStatusEnum.java
@@ -17,36 +17,121 @@
@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_PENDING_ACCEPTANCE(3, "骑手已接单"),
    /**
     * 骑手:骑手已取货
     * 骑手取货完成通知
     */
    RIDER_PICKED_UP(6, "骑手已取货"),
    /**
     * 骑手:骑手已到店
     * 骑手到达商户店铺通知
     */
    RIDER_ARRIVED(5, "骑手已到店"),
    /**
     * 骑手:订单已取消
     * 订单取消通知骑手
     */
    RIDER_ORDER_CANCELLED(9, "订单已取消"),
    /**
     * 骑手:距离最晚送达时间不足1小时
     * 系统后台提供的定时提醒状态,在订单创建后59分钟时触发
     */
    RIDER_DELIVERY_WARNING_1H(10, "距离最晚送达时间不足1小时"),
    /**
     * 骑手:距离最晚送达时间不足30分钟
     * 系统后台提供的定时提醒状态,在订单创建后29分钟时触发
     */
    RIDER_DELIVERY_WARNING_30MIN(11, "距离最晚送达时间不足30分钟"),
    /* ========== 买家相关状态 ========== */
    /**
     * 买家:订单状态变化通知
     * 订单状态更新通知买家
     */
    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()));
}
}