|
@@ -21,6 +21,54 @@ use DB;
|
|
|
|
|
|
class CameraApiController extends BaseController
|
|
class CameraApiController extends BaseController
|
|
{
|
|
{
|
|
|
|
+ //通过摄像头类型获取摄像头
|
|
|
|
+ public function getCameraByType(){
|
|
|
|
+ $mine_name = Input::get('mine_name', '');
|
|
|
|
+ $camera_type = Input::get('camera_type', '');
|
|
|
|
+
|
|
|
|
+ if (!$mine_name || !$camera_type) {
|
|
|
|
+ return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $result['status'] = true;
|
|
|
|
+ $result['msg'] = ApiEnum::RETURN_SUCCESS;
|
|
|
|
+
|
|
|
|
+ $mine = DB::table('mine_list')->where('title',$mine_name)->where('deleted_at',null)->first();
|
|
|
|
+
|
|
|
|
+ if (!$mine) {
|
|
|
|
+ $result['status'] = false;
|
|
|
|
+ $result['msg'] = '矿区名称不存在';
|
|
|
|
+ return $result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $mine_list = DB::table('mine_list')->where('degree', 'like', $mine->id . '|' . '%')->where('deleted_at',null)->get();
|
|
|
|
+
|
|
|
|
+ $mine_array = [];
|
|
|
|
+
|
|
|
|
+ foreach($mine_list as $k=>$v){
|
|
|
|
+ $mine_array[] = $v->id;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $query = CameraList::where('is_show', CameraEnum::IS_SHOW_YES)->where('deleted_at',null)->whereIn('mine_id',$mine_array)->where('camera_type',$camera_type)->orderBy('sort', 'desc')->get();
|
|
|
|
+
|
|
|
|
+ if (!$query) {
|
|
|
|
+ $result['status'] = false;
|
|
|
|
+ $result['msg'] = '矿区下没有摄像头';
|
|
|
|
+ return $result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $result = [];
|
|
|
|
+ foreach($query as $k=>$v){
|
|
|
|
+ $result[$k]['id'] = $v->id;
|
|
|
|
+ $result[$k]['mine_id'] = $v->mine_id;
|
|
|
|
+ $result[$k]['camera_name'] = $v->camera_name;
|
|
|
|
+ $result[$k]['cover_picture'] = $v->cover_picture;
|
|
|
|
+ $result[$k]['camera_status'] = $v->camera_status;
|
|
|
|
+ $result[$k]['playback'] = $v->playback;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return self::successResponse($result);
|
|
|
|
+ }
|
|
/**
|
|
/**
|
|
* 作者: qiuzijian
|
|
* 作者: qiuzijian
|
|
* 注释: 获取摄像头列表
|
|
* 注释: 获取摄像头列表
|
|
@@ -276,9 +324,57 @@ class CameraApiController extends BaseController
|
|
$result = CameraServices::getPlaybackRtmp($camera_id,$start_time,$end_time);
|
|
$result = CameraServices::getPlaybackRtmp($camera_id,$start_time,$end_time);
|
|
return self::successResponse($result);
|
|
return self::successResponse($result);
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ //easydrawin回放URL
|
|
|
|
+ public function getPlaybackUrlByEasy(){
|
|
|
|
+ $camera_id = Input::get('camera_id', '');
|
|
|
|
+ $start_time = Input::get('start_time', '');
|
|
|
|
+ $end_time = Input::get('end_time', '');
|
|
|
|
|
|
|
|
+ $result['status'] = true;
|
|
|
|
+ $result['msg'] = ApiEnum::RETURN_SUCCESS;
|
|
|
|
|
|
|
|
+ if (!$camera_id || !$start_time || !$end_time) {
|
|
|
|
+ $result['status'] = false;
|
|
|
|
+ $result['msg'] = ApiEnum::STATUS_CODE_EMPTY;
|
|
|
|
+ return $result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $query = CameraList::where('id', $camera_id)->first();
|
|
|
|
+
|
|
|
|
+ if (!$query) {
|
|
|
|
+ $result['status'] = false;
|
|
|
|
+ $result['msg'] = ApiEnum::NO_CAMERA_URL;
|
|
|
|
+ return $result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if($query->playback == 0){
|
|
|
|
+ $result['status'] = false;
|
|
|
|
+ $result['msg'] = ApiEnum::NO_SUPORT_PLAYBACK;
|
|
|
|
+ return $result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $str = '.000+';
|
|
|
|
+ $start_time = date('c', strtotime($start_time));//2022-07-14T08:00:00.000+08:00
|
|
|
|
+ $start_time = explode('+',$start_time);
|
|
|
|
+ $start_time = $start_time[0].$str.$start_time[1];
|
|
|
|
+ $end_time = date('c', strtotime($end_time));
|
|
|
|
+ $end_time = explode('+',$end_time);
|
|
|
|
+ $end_time = $end_time[0].$str.$end_time[1];
|
|
|
|
+
|
|
|
|
+ $degree = MineList::where('id', $query->mine_id)->value('degree');
|
|
|
|
+ $degree = explode('|', $degree)[0];
|
|
|
|
+ $mine_res = DB::table('mine_list')->where('id',$degree)->get();
|
|
|
|
+
|
|
|
|
+ //判断是否在配置文件里,在的不用走ffmpeg
|
|
|
|
+ if(isset($mine_res[0]->title) && in_array($mine_res[0]->title,config('playback'))){
|
|
|
|
+ $result = CameraServices::getPlaybackRtsp($camera_id,$start_time,$end_time);
|
|
|
|
+ return self::successResponse($result);
|
|
|
|
+ }else{
|
|
|
|
+ $result = CameraServices::getPlaybackByEasy($camera_id,$start_time,$end_time);
|
|
|
|
+ return self::successResponse($result);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|