From 22c8dc21e024ea666bfd1247dee1ad1a0faf4e35 Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Tue, 12 Mar 2024 20:17:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=A4=84=E7=90=86=E9=9F=B3?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E5=9B=9E=E8=B0=83-=E4=BA=91=E7=AB=AF?= =?UTF-8?q?=E5=BD=95=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/CallBackController.php | 377 ++++++++++++-------------- app/Model/OrderInquiryVideoRecord.php | 10 +- 2 files changed, 187 insertions(+), 200 deletions(-) diff --git a/app/Controller/CallBackController.php b/app/Controller/CallBackController.php index 232bfc4..ce3b03c 100644 --- a/app/Controller/CallBackController.php +++ b/app/Controller/CallBackController.php @@ -1720,54 +1720,74 @@ class CallBackController extends AbstractController Log::getInstance("CallBackController-videoTrtcCallBack")->info(json_encode($request_params, JSON_UNESCAPED_UNICODE)); if (empty($SdkAppId)) { - return $this->TrtcErrorReturn("缺少SdkAppId字段"); + return $this->videoTrtcErrorReturn("缺少SdkAppId字段"); } if (empty($Sign)) { - return $this->TrtcErrorReturn("缺少签名字段"); + return $this->videoTrtcErrorReturn("缺少签名字段"); } // 鉴定回调签名 $VideoSafe = new VideoSafe(); $result = $VideoSafe->validateSign($request_params,$Sign); if (!$result) { - return $this->TrtcErrorReturn("回调签名不匹配"); + return $this->videoTrtcErrorReturn("回调签名不匹配"); } $request_params = json_decode($request_params,true); // 验证参数 + if (!isset($request_params['EventGroupId'])){ + return $this->videoTrtcErrorReturn("缺少回调事件组"); + } + if (empty($request_params['EventGroupId'])){ - return $this->TrtcErrorReturn("回调事件组为空"); + return $this->videoTrtcErrorReturn("回调事件组为空"); + } + + if (!isset($request_params['EventType'])){ + return $this->videoTrtcErrorReturn("回调事件类型"); } if (empty($request_params['EventType'])){ - return $this->TrtcErrorReturn("回调事件类型为空"); + return $this->videoTrtcErrorReturn("回调事件类型为空"); + } + + if (!isset($request_params['EventInfo'])){ + return $this->videoTrtcErrorReturn("缺少回调事件信息"); } if (empty($request_params['EventInfo'])){ - return $this->TrtcErrorReturn("回调事件信息为空"); + return $this->videoTrtcErrorReturn("回调事件信息为空"); + } + + if (!isset($request_params['EventInfo']['RoomId'])){ + return $this->videoTrtcErrorReturn("缺少房间id"); } if (empty($request_params['EventInfo']['RoomId'])){ - return $this->TrtcErrorReturn("缺少房间id"); + return $this->videoTrtcErrorReturn("房间id为空"); + } + + if (!isset($request_params['EventInfo']['EventMsTs'])){ + return $this->videoTrtcErrorReturn("缺少时间戳"); } if (empty($request_params['EventInfo']['EventMsTs'])){ - return $this->TrtcErrorReturn("缺少时间戳"); + return $this->videoTrtcErrorReturn("时间戳为空"); } // 排除数据 if ($request_params['EventGroupId'] != 1 && $request_params['EventGroupId'] != 2){ - return $this->TrtcErrorReturn("回调地址推送错误"); + return $this->videoTrtcErrorReturn("回调地址推送错误"); } if (!in_array($request_params['EventType'],[102,103,201,203])){ - return $this->TrtcSuccessReturn(); + return $this->videoTrtcSuccessReturn(); } } catch (\Throwable $e) { // 验证失败 - return $this->TrtcErrorReturn($e->getMessage()); + return $this->videoTrtcErrorReturn($e->getMessage()); } // 处理业务逻辑 @@ -1777,7 +1797,7 @@ class CallBackController extends AbstractController $params['room_id'] = $request_params['EventInfo']['RoomId']; $order_inquiry_video_reservation = OrderInquiryVideoReservation::getLastOne($params); if (empty($order_inquiry_video_reservation)){ - return $this->TrtcErrorReturn("未查询到该房间号,此条数据不接收"); + return $this->videoTrtcErrorReturn("未查询到该房间号,此条数据不接收"); } // 获取视频记录 @@ -1786,12 +1806,12 @@ class CallBackController extends AbstractController $params['order_inquiry_id'] = $order_inquiry_video_reservation['order_inquiry_id']; $order_inquiry_video_record = OrderInquiryVideoRecord::getLastOne($params); if (empty($order_inquiry_video_record)){ - return $this->TrtcErrorReturn("缺少视频开启记录"); + return $this->videoTrtcErrorReturn("缺少视频开启记录"); } // 检测缓存-只允许同时处理同一房间的一个请求,防止数据库冲突 $redis = $this->container->get(Redis::class); - $redis_key = "trtcCallBack_" . $request_params['EventInfo']['RoomId']; + $redis_key = "videoTrtcCallBack_" . $request_params['EventInfo']['RoomId']; $redis_value = $redis->get($redis_key); // 加入缓存 @@ -1799,25 +1819,25 @@ class CallBackController extends AbstractController if (!empty($redis_value)){ if ($redis_value == $request_params['EventType']){ // 存在正在执行的相同事件,此次事件不处理 - return $this->TrtcSuccessReturn(); + return $this->videoTrtcSuccessReturn(); } // 解散房间 if ($redis_value == 102){ // 正在处理结束通话事件,此次事件不处理 - return $this->TrtcSuccessReturn(); + return $this->videoTrtcSuccessReturn(); } // 视频推流 if ($redis_value == 201){ if ($request_params['EventType'] == 103){ // 正在处理视频推流事件,进入房间事件不处理 - return $this->TrtcSuccessReturn(); + return $this->videoTrtcSuccessReturn(); } if ($request_params['EventType'] == 203){ // 正在处理视频推流事件,音频推流事件不处理 - return $this->TrtcSuccessReturn(); + return $this->videoTrtcSuccessReturn(); } } @@ -1825,12 +1845,12 @@ class CallBackController extends AbstractController if ($redis_value == 203){ if ($request_params['EventType'] == 103){ // 正在处理视频推流事件,进入房间事件不处理 - return $this->TrtcSuccessReturn(); + return $this->videoTrtcSuccessReturn(); } if ($request_params['EventType'] == 201){ // 正在处理视频推流事件,视频推流事件不处理 - return $this->TrtcSuccessReturn(); + return $this->videoTrtcSuccessReturn(); } } } @@ -1839,7 +1859,7 @@ class CallBackController extends AbstractController switch ($request_params['EventType']) { case '103': // 进入房间 if (empty($request_params['EventInfo']['UserId'])){ - return $this->TrtcErrorReturn("缺少用户id"); + return $this->videoTrtcErrorReturn("缺少用户id"); } // 获取用户数据 @@ -1847,17 +1867,17 @@ class CallBackController extends AbstractController $params['user_id'] = $request_params['EventInfo']['UserId']; $user = User::getOne($params); if (empty($user)){ - return $this->TrtcErrorReturn("非法用户"); + return $this->videoTrtcErrorReturn("非法用户"); } if ($user['user_type'] != 1){ - return $this->TrtcSuccessReturn(); + return $this->videoTrtcSuccessReturn(); } // 检测视频状态 if ($order_inquiry_video_record['video_status'] == 3 || $order_inquiry_video_record['video_status'] == 4){ // 已开始/结束通话,进入房间动作不做处理 - return $this->TrtcSuccessReturn(); + return $this->videoTrtcSuccessReturn(); } // 修改视频状态 @@ -1868,7 +1888,7 @@ class CallBackController extends AbstractController $data['video_status'] = 2; $res = OrderInquiryVideoRecord::edit($params,$data); if (!$res){ - return $this->TrtcErrorReturn("修改视频状态失败"); + return $this->videoTrtcErrorReturn("修改视频状态失败"); } break; @@ -1876,7 +1896,7 @@ class CallBackController extends AbstractController // 检测视频状态 if ($order_inquiry_video_record['video_status'] == 4){ // 已结束通话,解散房间动作不做处理 - return $this->TrtcSuccessReturn(); + return $this->videoTrtcSuccessReturn(); } // 修改视频状态 @@ -1888,7 +1908,7 @@ class CallBackController extends AbstractController $data['stop_video_time'] = date('Y-m-d H:i:s',$request_params['EventInfo']['EventMsTs']); $res = OrderInquiryVideoRecord::edit($params,$data); if (!$res){ - return $this->TrtcErrorReturn("修改视频状态失败"); + return $this->videoTrtcErrorReturn("修改视频状态失败"); } break; @@ -1896,12 +1916,12 @@ class CallBackController extends AbstractController // 检测视频状态 if ($order_inquiry_video_record['video_status'] == 4){ // 已结束通话,视频推流动作不做处理 - return $this->TrtcSuccessReturn(); + return $this->videoTrtcSuccessReturn(); } if ($order_inquiry_video_record['video_status'] == 3){ // 已开始通话,视频推流动作不做处理 - return $this->TrtcSuccessReturn(); + return $this->videoTrtcSuccessReturn(); } // 修改视频状态 @@ -1913,7 +1933,7 @@ class CallBackController extends AbstractController $data['stop_video_time'] = date('Y-m-d H:i:s',$request_params['EventInfo']['EventMsTs']); $res = OrderInquiryVideoRecord::edit($params,$data); if (!$res){ - return $this->TrtcErrorReturn("修改视频状态失败"); + return $this->videoTrtcErrorReturn("修改视频状态失败"); } break; @@ -1921,12 +1941,12 @@ class CallBackController extends AbstractController // 检测视频状态 if ($order_inquiry_video_record['video_status'] == 4){ // 已结束通话,音频推流动作不做处理 - return $this->TrtcSuccessReturn(); + return $this->videoTrtcSuccessReturn(); } if ($order_inquiry_video_record['video_status'] == 3){ // 已开始通话,音频推流动作不做处理 - return $this->TrtcSuccessReturn(); + return $this->videoTrtcSuccessReturn(); } // 修改视频状态 @@ -1938,23 +1958,23 @@ class CallBackController extends AbstractController $data['stop_video_time'] = date('Y-m-d H:i:s',$request_params['EventInfo']['EventMsTs']); $res = OrderInquiryVideoRecord::edit($params,$data); if (!$res){ - return $this->TrtcErrorReturn("修改视频状态失败"); + return $this->videoTrtcErrorReturn("修改视频状态失败"); } break; default: - return $this->TrtcErrorReturn("未知事件"); + return $this->videoTrtcErrorReturn("未知事件"); } // 删除缓存 $redis->del($redis_key); }catch (\Throwable $e){ - return $this->TrtcErrorReturn($e->getMessage()); + return $this->videoTrtcErrorReturn($e->getMessage()); } Log::getInstance("CallBackController-videoTrtcCallBack")->info("音视频回调-房间与媒体处理成功"); - return $this->TrtcSuccessReturn(); + return $this->videoTrtcSuccessReturn(); } /** @@ -1962,7 +1982,7 @@ class CallBackController extends AbstractController * @param string $message * @return ResponseInterface */ - protected function TrtcErrorReturn(string $message): ResponseInterface + protected function videoTrtcErrorReturn(string $message): ResponseInterface { Log::getInstance("CallBackController-videoTrtcCallBack")->error($message); return $this->response @@ -1983,7 +2003,7 @@ class CallBackController extends AbstractController * 音视频返回正确响应 * @return ResponseInterface */ - protected function TrtcSuccessReturn(): ResponseInterface + protected function videoTrtcSuccessReturn(): ResponseInterface { return $this->response ->withStatus(200) @@ -2014,55 +2034,79 @@ class CallBackController extends AbstractController Log::getInstance("CallBackController-videoRecordingCallBack")->info(json_encode($request_params, JSON_UNESCAPED_UNICODE)); if (empty($SdkAppId)) { - return $this->recordingErrorReturn("缺少SdkAppId字段"); + return $this->videoRecordingErrorReturn("缺少SdkAppId字段"); } if (empty($Sign)) { - return $this->recordingErrorReturn("缺少签名字段"); + return $this->videoRecordingErrorReturn("缺少签名字段"); } - return $this->recordingSuccessReturn(); // 鉴定回调签名 $VideoSafe = new VideoSafe(); $result = $VideoSafe->validateSign($request_params,$Sign); if (!$result) { - return $this->recordingErrorReturn("回调签名不匹配"); + return $this->videoRecordingErrorReturn("回调签名不匹配"); } $request_params = json_decode($request_params,true); // 验证参数 + if (!isset($request_params['EventGroupId'])){ + return $this->videoRecordingErrorReturn("缺少回调事件组"); + } + if (empty($request_params['EventGroupId'])){ - return $this->recordingErrorReturn("回调事件组为空"); + return $this->videoRecordingErrorReturn("回调事件组为空"); + } + + if (!isset($request_params['EventType'])){ + return $this->videoRecordingErrorReturn("缺少回调事件类型"); } if (empty($request_params['EventType'])){ - return $this->recordingErrorReturn("回调事件类型为空"); + return $this->videoRecordingErrorReturn("回调事件类型为空"); + } + + if (!isset($request_params['EventInfo'])){ + return $this->videoRecordingErrorReturn("缺少回调事件信息"); } if (empty($request_params['EventInfo'])){ - return $this->recordingErrorReturn("回调事件信息为空"); + return $this->videoRecordingErrorReturn("回调事件信息为空"); + } + + if (!isset($request_params['EventInfo']['RoomId'])){ + return $this->videoRecordingErrorReturn("缺少房间id"); } if (empty($request_params['EventInfo']['RoomId'])){ - return $this->recordingErrorReturn("缺少房间id"); - } - - if (empty($request_params['EventInfo']['EventMsTs'])){ - return $this->recordingErrorReturn("缺少时间戳"); + return $this->videoRecordingErrorReturn("房间id为空"); } // 排除数据 if ($request_params['EventGroupId'] != 3){ - return $this->recordingErrorReturn("回调地址推送错误"); + return $this->videoRecordingErrorReturn("回调地址推送错误"); } - if (!in_array($request_params['EventType'],[301,312])){ - return $this->recordingSuccessReturn(); + if (!in_array($request_params['EventType'],[311])){ + return $this->videoRecordingSuccessReturn(); } + + if (!isset($request_params['EventInfo']['Payload'])){ + return $this->videoRecordingErrorReturn("缺少有效载荷"); + } + + if (empty($request_params['EventInfo']['Payload'])){ + return $this->videoRecordingErrorReturn("有效载荷为空"); + } + + if (!isset($request_params['EventInfo']['Payload']['Status'])){ + return $this->videoRecordingErrorReturn("缺少录制状态"); + } + } catch (\Throwable $e) { // 验证失败 - return $this->recordingErrorReturn($e->getMessage()); + return $this->videoRecordingErrorReturn($e->getMessage()); } // 处理业务逻辑 @@ -2070,186 +2114,125 @@ class CallBackController extends AbstractController // 获取视频预约记录 $params = array(); $params['room_id'] = $request_params['EventInfo']['RoomId']; - $video_reservation = VideoReservation::getLastOne($params); - if (empty($video_reservation)){ - return $this->recordingErrorReturn("未查询到该房间号,此条数据不接收"); + $order_inquiry_video_reservation = OrderInquiryVideoReservation::getLastOne($params); + if (empty($order_inquiry_video_reservation)){ + return $this->videoRecordingErrorReturn("未查询到该房间号,此条数据不接收"); } // 获取视频记录 $params = array(); $params['room_id'] = $request_params['EventInfo']['RoomId']; - $params['order_inquiry_id'] = $video_reservation['order_inquiry_id']; - $order_inquiry_video_records = OrderInquiryVideoRecord::getLastOne($params); - if (empty($order_inquiry_video_records)){ - return $this->recordingErrorReturn("缺少视频开启记录"); + $params['order_inquiry_id'] = $order_inquiry_video_reservation['order_inquiry_id']; + $order_inquiry_video_record = OrderInquiryVideoRecord::getLastOne($params); + if (empty($order_inquiry_video_record)){ + return $this->videoRecordingErrorReturn("缺少视频开启记录"); + } + + if (!empty($order_inquiry_video_record['doctor_vod_path']) && !empty($order_inquiry_video_record['patient_vod_path'])){ + // 已存在点播路径,此次请求无需处理 + return $this->videoRecordingSuccessReturn(); } // 检测缓存-只允许同时处理同一房间的一个请求,防止数据库冲突 $redis = $this->container->get(Redis::class); - $redis_key = "trtcCallBack_" . $request_params['EventInfo']['RoomId']; + $redis_key = "videoRecordingCallBack_" . $request_params['EventInfo']['RoomId'] . $order_inquiry_video_reservation['patient_user_id']; $redis_value = $redis->get($redis_key); // 加入缓存 $redis->set($redis_key, $request_params['EventType'], 20); if (!empty($redis_value)){ - if ($redis_value == $request_params['EventType']){ - // 存在正在执行的相同事件,此次事件不处理 - return $this->recordingSuccessReturn(); - } - - // 解散房间 - if ($redis_value == 102){ - // 正在处理结束通话事件,此次事件不处理 - return $this->recordingSuccessReturn(); - } - - // 视频推流 - if ($redis_value == 201){ - if ($request_params['EventType'] == 103){ - // 正在处理视频推流事件,进入房间事件不处理 - return $this->recordingSuccessReturn(); - } - - if ($request_params['EventType'] == 203){ - // 正在处理视频推流事件,音频推流事件不处理 - return $this->recordingSuccessReturn(); - } - } - - // 音频推流 - if ($redis_value == 203){ - if ($request_params['EventType'] == 103){ - // 正在处理视频推流事件,进入房间事件不处理 - return $this->recordingSuccessReturn(); - } - - if ($request_params['EventType'] == 201){ - // 正在处理视频推流事件,视频推流事件不处理 - return $this->recordingSuccessReturn(); - } - } + // 事件正在处理,重复请求不处理 + return $this->videoRecordingSuccessReturn(); } // 处理业务逻辑 - switch ($request_params['EventType']) { - case '103': // 进入房间 - if (empty($request_params['EventInfo']['UserId'])){ - return $this->recordingErrorReturn("缺少用户id"); - } + if ($request_params['EventInfo']['Payload']['Status'] == 0){ + // 录制上传成功 + if (!isset($request_params['EventInfo']['Payload']['TencentVod'])){ + return $this->videoRecordingErrorReturn("缺少关键参数"); + } - // 获取用户数据 - $params = array(); - $params['user_id'] = $request_params['EventInfo']['UserId']; - $user = User::getOne($params); - if (empty($user)){ - return $this->recordingErrorReturn("非法用户"); - } + if (empty($request_params['EventInfo']['Payload']['TencentVod'])){ + return $this->videoRecordingErrorReturn("缺少关键参数"); + } - if ($user['user_type'] != 1){ - return $this->recordingSuccessReturn(); - } + if (!isset($request_params['EventInfo']['Payload']['TencentVod']['UserId'])){ + return $this->videoRecordingErrorReturn("缺少用户id参数"); + } - // 检测视频状态 - if ($video_record['video_status'] == 3 || $video_record['video_status'] == 4){ - // 已开始/结束通话,进入房间动作不做处理 - return $this->recordingSuccessReturn(); - } + if (empty($request_params['EventInfo']['Payload']['TencentVod']['UserId'])){ + return $this->videoRecordingErrorReturn("缺少用户id参数"); + } - // 修改视频状态 - $params = array(); - $params['records_id'] = $video_record['records_id']; + if (!isset($request_params['EventInfo']['Payload']['TencentVod']['VideoUrl'])){ + return $this->videoRecordingErrorReturn("缺少播放地址参数"); + } + if (empty($request_params['EventInfo']['Payload']['TencentVod']['VideoUrl'])){ + return $this->videoRecordingErrorReturn("缺少播放地址参数"); + } + + // 获取用户数据 + $params = array(); + $params['user_id'] = $request_params['EventInfo']['UserId']; + $user = User::getOne($params); + if (empty($user)){ + return $this->videoRecordingErrorReturn("非法用户"); + } + + // 修改视频状态 + $params = array(); + $params['records_id'] = $order_inquiry_video_record['records_id']; + + if ($user['user_type'] == 1){ $data = array(); - $data['video_status'] = 2; + $data['vod_path_patient'] = $request_params['EventInfo']['Payload']['TencentVod']['VideoUrl']; + $data['vod_save_status'] = 1; $res = OrderInquiryVideoRecord::edit($params,$data); if (!$res){ - return $this->recordingErrorReturn("修改视频状态失败"); + return $this->videoRecordingErrorReturn("播放地址存储失败"); } - - break; - case '102': // 解散房间 - // 检测视频状态 - if ($video_record['video_status'] == 4){ - // 已结束通话,解散房间动作不做处理 - return $this->recordingSuccessReturn(); - } - - // 修改视频状态 - $params = array(); - $params['records_id'] = $video_record['records_id']; - + }elseif($user['user_type'] == 2){ $data = array(); - $data['video_status'] = 4; - $data['stop_video_time'] = date('Y-m-d H:i:s',$request_params['EventInfo']['EventMsTs']); + $data['vod_path_doctor'] = $request_params['EventInfo']['Payload']['TencentVod']['VideoUrl']; $res = OrderInquiryVideoRecord::edit($params,$data); if (!$res){ - return $this->recordingErrorReturn("修改视频状态失败"); + return $this->videoRecordingErrorReturn("播放地址存储失败"); } + }else{ + return $this->videoRecordingErrorReturn("非法用户类型"); + } + }else{ + // 录制上传失败 + if (!isset($request_params['EventInfo']['Payload']['Errmsg'])){ + return $this->videoRecordingErrorReturn("录制上传失败但缺少错误描述"); + } - break; - case '201': // 视频推流 - // 检测视频状态 - if ($video_record['video_status'] == 4){ - // 已结束通话,视频推流动作不做处理 - return $this->recordingSuccessReturn(); - } + if (empty($request_params['EventInfo']['Payload']['Errmsg'])){ + return $this->videoRecordingErrorReturn("录制上传失败但错误描述为空"); + } - if ($video_record['video_status'] == 3){ - // 已开始通话,视频推流动作不做处理 - return $this->recordingSuccessReturn(); - } + // 修改视频状态 + $params = array(); + $params['records_id'] = $order_inquiry_video_record['records_id']; - // 修改视频状态 - $params = array(); - $params['records_id'] = $video_record['records_id']; - - $data = array(); - $data['video_status'] = 3; - $data['stop_video_time'] = date('Y-m-d H:i:s',$request_params['EventInfo']['EventMsTs']); - $res = OrderInquiryVideoRecord::edit($params,$data); - if (!$res){ - return $this->recordingErrorReturn("修改视频状态失败"); - } - - break; - case '203': // 音频推流 - // 检测视频状态 - if ($video_record['video_status'] == 4){ - // 已结束通话,音频推流动作不做处理 - return $this->recordingSuccessReturn(); - } - - if ($video_record['video_status'] == 3){ - // 已开始通话,音频推流动作不做处理 - return $this->TrtcSuccessReturn(); - } - - // 修改视频状态 - $params = array(); - $params['records_id'] = $video_record['records_id']; - - $data = array(); - $data['video_status'] = 3; - $data['stop_video_time'] = date('Y-m-d H:i:s',$request_params['EventInfo']['EventMsTs']); - $res = OrderInquiryVideoRecord::edit($params,$data); - if (!$res){ - return $this->recordingErrorReturn("修改视频状态失败"); - } - - break; - - default: - return $this->recordingErrorReturn("未知事件"); + $data = array(); + $data['vod_save_status'] = 2; + $data['vod_err_message'] = $request_params['EventInfo']['Payload']['Errmsg']; + $res = OrderInquiryVideoRecord::edit($params,$data); + if (!$res){ + return $this->videoRecordingErrorReturn("播放地址存储失败"); + } } // 删除缓存 $redis->del($redis_key); }catch (\Throwable $e){ - return $this->recordingErrorReturn($e->getMessage()); + return $this->videoRecordingErrorReturn($e->getMessage()); } - Log::getInstance("CallBackController-videoTrtcCallBack")->info("音视频回调-房间数据处理成功"); - return $this->TrtcSuccessReturn(); + Log::getInstance("CallBackController-videoRecordingCallBack")->info("音视频回调-云端录制处理成功"); + return $this->videoTrtcSuccessReturn(); } /** @@ -2257,9 +2240,9 @@ class CallBackController extends AbstractController * @param string $message * @return ResponseInterface */ - protected function recordingErrorReturn(string $message): ResponseInterface + protected function videoRecordingErrorReturn(string $message): ResponseInterface { - Log::getInstance("CallBackController-videoTrtcCallBack")->error($message); + Log::getInstance("CallBackController-videoRecordingCallBack")->error($message); return $this->response ->withStatus(200) ->withBody( @@ -2278,7 +2261,7 @@ class CallBackController extends AbstractController * 音视频回调-云端录制-返回正确响应 * @return ResponseInterface */ - protected function recordingSuccessReturn(): ResponseInterface + protected function videoRecordingSuccessReturn(): ResponseInterface { return $this->response ->withStatus(200) diff --git a/app/Model/OrderInquiryVideoRecord.php b/app/Model/OrderInquiryVideoRecord.php index cd203b5..0f23289 100644 --- a/app/Model/OrderInquiryVideoRecord.php +++ b/app/Model/OrderInquiryVideoRecord.php @@ -16,8 +16,12 @@ use Hyperf\Snowflake\Concern\Snowflake; * @property int $video_status 视频状态(1:已发起 2:患者进入房间 3:开始通话 4:结束) * @property string $start_video_time 开始视频时间 * @property string $stop_video_time 结束视频时间 - * @property Carbon $created_at 创建时间 - * @property Carbon $updated_at 修改时间 + * @property string $vod_path_doctor 医生云点播路径 + * @property string $vod_path_patient 患者云点播路径 + * @property int $vod_save_status 云点播存储状态(0:未开始存储 1:成功 2:存储失败) + * @property string $vod_err_message 云点播存储失败原因 + * @property \Carbon\Carbon $created_at 创建时间 + * @property \Carbon\Carbon $updated_at 修改时间 */ class OrderInquiryVideoRecord extends Model { @@ -31,7 +35,7 @@ class OrderInquiryVideoRecord extends Model /** * The attributes that are mass assignable. */ - protected array $fillable = ['records_id', 'order_inquiry_id', 'room_id', 'video_status', 'start_video_time', 'stop_video_time', 'created_at', 'updated_at']; + protected array $fillable = ['records_id', 'order_inquiry_id', 'room_id', 'video_status', 'start_video_time', 'stop_video_time', 'vod_path_doctor', 'vod_path_patient', 'vod_save_status', 'vod_err_message', 'created_at', 'updated_at']; protected string $primaryKey = "records_id";