3, // 订单生成 -> 配送中 1 => 3, // 运单生成成功 -> 配送中 20 => 3, // 骑手接单 -> 配送中 80 => 3, // 骑手到店 -> 配送中 2 => 3, // 配送中 -> 配送中 3 => 4, // 已完成 -> 已完成 4 => 2, // 已取消 -> 待配送 (配送取消,可重新派单) 5 => 2, // 配送异常 -> 待配送 (可重新派单) ]; /** * 将蜂鸟平台的订单状态转换为系统内的 status * * @param int $fengniaoStatus 蜂鸟平台的订单状态码 * @return int 转换后的系统 status 状态码 * @throws \Exception 当状态码无法转换时抛出异常 */ public static function convertStatus($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] ?? '未知状态'; } /** * 获取系统 status 的状态描述 * * @param int $status 系统的 status 状态码 * @return string 状态描述 */ public static function getSystemStatusDesc($status) { $statusDescMap = [ 1 => '待付款', 2 => '待配送', 3 => '配送中', 4 => '已完成', 5 => '已取消', ]; return $statusDescMap[$status] ?? '未知状态'; } }