0, // 订单生成 -> 订单生成 1 => 1, // 运单生成成功 -> 系统已接单 20 => 20, // 骑手接单 -> 已分配骑手 80 => 30, // 骑手到店 -> 骑手已到店 2 => 4, // 配送中 -> 配送中 3 => 5, // 已完成 -> 已送达 4 => -1, // 已取消 -> 已取消 5 => -2, // 配送异常 -> 异常 ]; /** * 将蜂鸟平台的订单状态转换为系统内的 sendStatus * * @param int $fengniaoStatus 蜂鸟平台的订单状态码 * @return int 转换后的系统 orderStatus 状态码 * @throws \Exception 当状态码无法转换时抛出异常 */ public static function convertOrderStatus($fengniaoStatus) { $fengniaoStatus = (int)$fengniaoStatus; if (!isset(self::STATUS_MAPPING[$fengniaoStatus])) { throw new \Exception("无效的蜂鸟订单状态码:{$fengniaoStatus}"); } return self::STATUS_MAPPING[$fengniaoStatus]; } /** * 获取蜂鸟平台的状态描述 * * @param int $fengniaoStatus 蜂鸟平台的订单状态码 * @return string 状态描述 */ public static function getStatusDesc($fengniaoStatus) { $statusDescMap = [ 0 => '订单生成', 1 => '运单生成成功', 20 => '骑手接单', 80 => '骑手到店', 2 => '配送中', 3 => '已完成', 4 => '已取消', 5 => '配送异常', ]; return $statusDescMap[$fengniaoStatus] ?? '未知状态'; } /** * 获取系统 orderStatus 的状态描述 * * @param int $orderStatus 系统的 orderStatus 状态码 * @return string 状态描述 */ public static function getOrderStatusDesc($orderStatus) { $statusDescMap = [ 0 => '订单生成', 1 => '系统已接单', 2 => '派单中', 3 => '待取货', 4 => '配送中', 5 => '已送达', -1 => '已取消', -2 => '异常', 10 => '改派中', 20 => '已分配骑手', 30 => '骑手已到店', 40 => '申请取消中', 50 => '客服介入处理中', ]; return $statusDescMap[$orderStatus] ?? '未知状态'; } }