修改了预约视频时间、增加了创建音视频房间接口
This commit is contained in:
@@ -37,6 +37,7 @@ use App\Model\UserCoupon;
|
||||
use App\Model\UserDoctor;
|
||||
use App\Model\UserPatient;
|
||||
use App\Model\UserSystem;
|
||||
use App\Model\VideoReservation;
|
||||
use App\Services\BaseService;
|
||||
use App\Services\ImService;
|
||||
use App\Services\InquiryService;
|
||||
@@ -1714,10 +1715,10 @@ class CallBackController extends AbstractController
|
||||
$request_params = $this->request->getBody()->getContents();
|
||||
$SdkAppId = $this->request->header("SdkAppId");
|
||||
$Sign = $this->request->header("Sign");
|
||||
$Sign = stripslashes($Sign);
|
||||
|
||||
try {
|
||||
Log::getInstance("CallBackController-trtcRoomCallBack")->info(json_encode($request_params, JSON_UNESCAPED_UNICODE));
|
||||
Log::getInstance("CallBackController-trtcRoomCallBack")->info(json_encode($SdkAppId, JSON_UNESCAPED_UNICODE));
|
||||
Log::getInstance("CallBackController-trtcRoomCallBack")->info(json_encode($Sign, JSON_UNESCAPED_UNICODE));
|
||||
|
||||
if (empty($SdkAppId)) {
|
||||
return $this->TrtcErrorReturn("缺少SdkAppId字段");
|
||||
@@ -1730,42 +1731,77 @@ class CallBackController extends AbstractController
|
||||
// 鉴定回调签名
|
||||
$VideoSafe = new VideoSafe();
|
||||
$result = $VideoSafe->validateSign($request_params,$Sign);
|
||||
dump($result);
|
||||
// if (!$result) {
|
||||
// return $this->TrtcErrorReturn("回调签名不匹配");
|
||||
// }
|
||||
if (!$result) {
|
||||
return $this->TrtcErrorReturn("回调签名不匹配");
|
||||
}
|
||||
|
||||
$request_params = json_decode($request_params,true);
|
||||
|
||||
die;
|
||||
|
||||
// 验证参数
|
||||
if (empty($request_params['EventGroupId'])){
|
||||
return $this->ImErrorReturn("回调事件为空");
|
||||
return $this->TrtcErrorReturn("回调事件组为空");
|
||||
}
|
||||
|
||||
$userService = new UserService();
|
||||
|
||||
if ($request_params['CallbackCommand'] == "State.StateChange"){
|
||||
// 用户状态变更
|
||||
$result = $userService->userImLoginStatus($request_params);
|
||||
if ($result['code'] == 0){
|
||||
return $this->ImErrorReturn($result['message']);
|
||||
}
|
||||
}elseif ($request_params['CallbackCommand'] == "C2C.CallbackAfterSendMsg"){
|
||||
// 用户im消息发送后回调
|
||||
$result = $userService->userImAfterSendMsg($request_params);
|
||||
if ($result['code'] == 0){
|
||||
return $this->ImErrorReturn($result['message']);
|
||||
}
|
||||
}else{
|
||||
return $this->ImErrorReturn("非法事件");
|
||||
if (empty($request_params['EventType'])){
|
||||
return $this->TrtcErrorReturn("回调事件类型为空");
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
|
||||
if (empty($request_params['EventInfo'])){
|
||||
return $this->TrtcErrorReturn("回调事件信息为空");
|
||||
}
|
||||
|
||||
if (empty($request_params['EventInfo']['RoomId'])){
|
||||
return $this->TrtcErrorReturn("缺少房间id");
|
||||
}
|
||||
|
||||
// 排除数据
|
||||
if ($request_params['EventGroupId'] != 1){
|
||||
return $this->TrtcErrorReturn("回调地址推送错误");
|
||||
}
|
||||
|
||||
if (!in_array($request_params['EventType'],[101,102,103])){
|
||||
return $this->TrtcErrorReturn("事件类型错误");
|
||||
}
|
||||
} catch (\Throwable $e) {
|
||||
// 验证失败
|
||||
return $this->ImErrorReturn($e->getMessage());
|
||||
return $this->TrtcErrorReturn($e->getMessage());
|
||||
}
|
||||
|
||||
Log::getInstance()->info("Im回调数据处理成功");
|
||||
// 处理业务逻辑
|
||||
try {
|
||||
// 检测缓存-只允许同时处理同一房间的一个请求,防止数据库冲突
|
||||
$redis = $this->container->get(Redis::class);
|
||||
$redis_key = "trtcCallBack_" . $request_params['EventInfo']['RoomId'];
|
||||
$redis_value = $redis->get($redis_key);
|
||||
if (!empty($redis_value)){
|
||||
return $this->TrtcErrorReturn("存在正在处理的回调");
|
||||
}
|
||||
|
||||
$redis->set($redis_key, 1, 10);
|
||||
|
||||
// 获取房间id
|
||||
$params = array();
|
||||
$params['room_id'] = $request_params['EventInfo']['RoomId'];
|
||||
$video_reservation = VideoReservation::getLastOne($params);
|
||||
if (empty($video_reservation)){
|
||||
return $this->TrtcErrorReturn("存在正在处理的回调");
|
||||
}
|
||||
|
||||
// 处理创建房间
|
||||
// 处理解散房间
|
||||
// 处理进入房间
|
||||
|
||||
|
||||
|
||||
|
||||
// 删除缓存
|
||||
|
||||
}catch (\Throwable $e){
|
||||
// 验证失败
|
||||
return $this->TrtcErrorReturn($e->getMessage());
|
||||
}
|
||||
|
||||
Log::getInstance("CallBackController-trtcRoomCallBack")->info("音视频回调-房间数据处理成功");
|
||||
return $this->ImSuccessReturn();
|
||||
}
|
||||
|
||||
@@ -1783,8 +1819,6 @@ class CallBackController extends AbstractController
|
||||
|
||||
try {
|
||||
Log::getInstance("CallBackController-trtcMediaCallBack")->info(json_encode($request_params, JSON_UNESCAPED_UNICODE));
|
||||
Log::getInstance("CallBackController-trtcMediaCallBack")->info(json_encode($SdkAppId, JSON_UNESCAPED_UNICODE));
|
||||
Log::getInstance("CallBackController-trtcMediaCallBack")->info(json_encode($Sign, JSON_UNESCAPED_UNICODE));
|
||||
|
||||
if (empty($SdkAppId)) {
|
||||
return $this->TrtcErrorReturn("缺少SdkAppId字段");
|
||||
|
||||
@@ -164,22 +164,6 @@ class InquiryController extends AbstractController
|
||||
return $this->response->json($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 医生设置视频预约时间
|
||||
* @return ResponseInterface
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function addVideoReservationDate(): ResponseInterface
|
||||
{
|
||||
$request = $this->container->get(InquiryRequest::class);
|
||||
$request->scene('addVideoReservationDate')->validateResolved();
|
||||
|
||||
$InquiryService = new InquiryService();
|
||||
$data = $InquiryService->addVideoReservationDate();
|
||||
return $this->response->json($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取视频问诊消息内页基础数据
|
||||
* @return ResponseInterface
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Request\InquiryRequest;
|
||||
use App\Request\VideoRequest;
|
||||
use App\Services\InquiryService;
|
||||
use App\Services\VideoService;
|
||||
use Psr\Container\ContainerExceptionInterface;
|
||||
use Psr\Container\NotFoundExceptionInterface;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
||||
/**
|
||||
* 视频
|
||||
*/
|
||||
class VideoController extends AbstractController
|
||||
{
|
||||
/**
|
||||
* 医生设置视频预约时间
|
||||
* @return ResponseInterface
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function addVideoReservationDate(): ResponseInterface
|
||||
{
|
||||
$request = $this->container->get(VideoRequest::class);
|
||||
$request->scene('addVideoReservationDate')->validateResolved();
|
||||
|
||||
$videoService = new VideoService();
|
||||
$data = $videoService->addVideoReservationDate();
|
||||
return $this->response->json($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建音视频房间
|
||||
* @return ResponseInterface
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function addVideoRoom(): ResponseInterface
|
||||
{
|
||||
$request = $this->container->get(VideoRequest::class);
|
||||
$request->scene('addVideoRoom')->validateResolved();
|
||||
|
||||
$videoService = new VideoService();
|
||||
$data = $videoService->addVideoRoom();
|
||||
return $this->response->json($data);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user