menusActive[0] = 'adminCamera'; $this->menusActive[1] = 'adminCameraList'; //查询当前登录用户权限内的区域 $user = DB::table('users')->where('staff_num',$request->user()->staff_num)->first(); $mine_array = explode(';',$user->mine_role);//权限内的矿区 $mine_all = DB::table('mine_list')->where('deleted_at',null)->get();//所有区域 $mine_use = [];//权限内矿区下所有区域 foreach($mine_all as $k=>$v){ if(in_array(explode('|',$v->degree)[0],$mine_array)){ $mine_use[] = $v->id; } } $camera_list = CameraList::join( 'mine_list', 'camera_list.mine_id', '=', 'mine_list.id' )->whereIn('mine_list.id',$mine_use)->orderBy('camera_list.sort', 'desc'); if ($request->has('mine_name') && $request->input('mine_name')) { $mine_id = MineList::where('title', 'like', '%' . $request->input('mine_name') . '%')->where('parent_id', 0)->get(); if(sizeof($mine_id) == 0){ $camera_list = $camera_list->where('mine_list.title', 'like', '%' . $request->input('mine_name') . '%')->where('parent_id', 0); } $camera_list = $camera_list->where(function ($query) use ($mine_id) { foreach($mine_id as $k=>$v){ $query->orWhere('mine_list.degree', $v->id ); $query->orWhere('mine_list.degree', 'like', $v->id . '|' . '%'); } }); // foreach($mine_id as $k=>$v){ // $camera_list = $camera_list->orWhere('mine_list.degree', $v->id ); // $camera_list = $camera_list->orWhere('mine_list.degree', 'like', $v->id . '|' . '%'); // } // $camera_list = $camera_list->orWhere('mine_list.degree', 'like', 1 . '|' . '%'); // $camera_list = $camera_list->orWhere('mine_list.degree', 'like', 2 . '|' . '%'); // $camera_list = $camera_list->where('mine_list.title', 'like', '%' . $request->input('mine_name') . '%')->where('parent_id', 0); } if ($request->has('area_name') && $request->input('area_name')) { $area_id = MineList::where('title', 'like', '%' . $request->input('area_name') . '%')->get(); if(sizeof($area_id) == 0){ $camera_list = $camera_list->where('mine_list.title', 'like', '%' . $request->input('area_name') . '%')->where('parent_id','!=', 0); } $camera_list = $camera_list->where(function ($query) use ($area_id) { foreach($area_id as $k=>$v){ $query->orWhere('mine_list.degree', $v->id)->where('mine_list.parent_id',0); $query->orWhere('mine_list.degree', 'like', '%' . '|' .$v->id); } }); // foreach($area_id as $k=>$v){ //// $camera_list = $camera_list->orWhere('mine_list.degree', $v->id ); // $camera_list = $camera_list->orWhere('mine_list.degree', $v->id)->where('mine_list.parent_id',0); // $camera_list = $camera_list->orWhere('mine_list.degree', 'like', '%' . '|' .$v->id); // } // $camera_list = $camera_list->where('title', 'like', '%' . $request->input('area_name') . '%'); // dd($camera_list);exit; // $camera_list = $camera_list->where('mine_list.degree', 'like', '%' . '|' . $area_id); // $camera_list = $camera_list->where('mine_list.title', 'like', '%' . $request->input('mine_name') . '%')->where('parent_id','!=', 0); } $data['mine_default'] = ""; if ($request->has('mine_id') && $request->input('mine_id')) { $camera_list = $camera_list->where('mine_list.id',$request->input('mine_id')); $data['mine_default'] = $request->input('mine_id'); } if ($request->has('camera_name') && $request->input('camera_name')) { $camera_list = $camera_list->where('camera_list.camera_name', 'like', '%' . $request->input('camera_name') . '%'); } if ($request->has('camera_type') && $request->input('camera_type')) { $camera_list = $camera_list->where('camera_list.camera_type', $request->input('camera_type')); } if ($request->has('camera_source') && $request->input('camera_source')) { $camera_list = $camera_list->where('camera_list.camera_source', $request->input('camera_source')); } $camera_list = $camera_list->select( 'camera_list.id', 'camera_list.camera_url', 'camera_list.camera_name', 'camera_list.revert_id', 'camera_list.sort', 'camera_list.camera_type', 'camera_list.camera_source', 'camera_list.is_show', 'mine_list.title', 'mine_list.degree' )->paginate(CameraEnum::PAGE_SIZE); foreach ($camera_list as $key => $val) { $camera_list[$key]->parent_title = MineList::where('id', explode('|', $val->degree)[0])->value('title'); $degree_list = explode('|',$camera_list[$key]->degree); $title = ''; if(count($degree_list) == 1){ for($i=0;$iwhere('id',$degree_list[$i])->get()[0]->title.'/'; } } if(count($degree_list) > 1){ for($i=1;$iwhere('id',$degree_list[$i])->get()[0]->title.'/'; } } $camera_list[$key]->title = substr($title,0,strlen($title)-1); //判断是否是海康视频服务器 if($val->camera_source == CameraEnum::CAMERA_SOURCE_2){ $is_hak = DB::table('mine_list_ext')->where('mine_id',explode('|', $val->degree)[0])->value('is_hak'); if($is_hak == CameraEnum::VIDEO_RECORDER_HK){ $camera_list[$key]->playback = 0;//显示 }else{ $camera_list[$key]->playback = 1;//不显示 } }else{ $camera_list[$key]->playback = 1;//不显示 } } $tableObj = new TableAuxiliary('camera/list', $camera_list); // $tableObj->search('input', 'mine_name', '矿区名称'); // $tableObj->search('input', 'area_name', '区域名称'); $tableObj->search('input', 'camera_name', '摄像头名称'); $tableObj->search('select', 'camera_type', '摄像头类型', CameraEnum::CAMERA_TYPE_EXCHANGE); $tableObj->search('select', 'camera_source', '摄像头来源', CameraEnum::CAMERA_SOURCE_EXCHANGE); $tableObj->topActions = ['add', 'import', 'importTemplate']; $tableObj->column('parent_title', '矿区名称'); $tableObj->column('title', '区域名称'); $tableObj->column('camera_name', '摄像头名称'); // $tableObj->column('camera_type', '摄像头类型', function ($camera_type) { // return CameraEnum::CAMERA_TYPE_EXCHANGE[$camera_type]; // }); $tableObj->column('camera_url', '链接'); // $tableObj->column('camera_source', '摄像头来源', function ($camera_source) { // return CameraEnum::CAMERA_SOURCE_EXCHANGE[$camera_source]; // }); // $tableObj->column('revert_id', '流媒体id'); $tableObj->column('is_show', '是否显示', function ($is_show, $item) { return ''; }); $tableObj->column('sort', '排序'); $data['pagesize'] = ceil($camera_list->total()/CameraEnum::PAGE_SIZE); $data['path'] = $tableObj->path; $data['items'] = $tableObj->items; $data['columns'] = $tableObj->columns; $data['searchs'] = $tableObj->searchColumns; $data['primaryKey'] = $tableObj->primaryKey; $data['displayActions'] = $tableObj->displayActions; if (is_string($data['displayActions']['value'])) { $data['displayActions']['value'] = [$data['displayActions']['value']]; } $data['actionBtns'] = ['view', 'edit', 'del','playback']; $data['actionBtnsAttribute'] = $tableObj->actionBtnsAttribute; $data['topActions'] = $tableObj->topActions; $data['displayActionOthers'] = $tableObj->displayActionOthers; $data['topActionOthers'] = $tableObj->topActionOthers; $data += \Illuminate\Support\Facades\Request::except('_token'); //区域列表 $mine_list = DB::table('mine_list')->whereIn('id',$mine_array)->where('parent_id',0)->where('deleted_at',null)->get(); $tree_data = []; foreach($mine_list as $k=>$v){ $tree_data[$v->id]['id'] = $v->id; $tree_data[$v->id]['name'] = $v->title; $child_list = DB::table('mine_list')->where('parent_id',$v->id)->where('deleted_at',null)->orderBy('sort','desc')->get(); if(count($child_list)>0){ $tree_data[$v->id]['type'] = 'folder'; $tree_data[$v->id]['additionalParameters']['children'] = $this->mineTree($child_list,$v->id); }else{ $tree_data[$v->id]['type'] = 'item'; } } $data['tree_data'] = $tree_data; return $this->view('camera::camera_list', $data); } //摄像头管理区域列表ajax public function mineList(Request $request){ //查询当前登录用户权限内的区域 $user = DB::table('users')->where('staff_num',$request->user()->staff_num)->first(); $mine_array = explode(';',$user->mine_role);//权限内的矿区 $mine_all = DB::table('mine_list')->where('deleted_at',null)->get();//所有区域 $mine_use = [];//权限内矿区下所有区域 foreach($mine_all as $k=>$v){ if(in_array(explode('|',$v->degree)[0],$mine_array)){ $mine_use[] = $v->id; } } //区域列表 $mine_list = DB::table('mine_list')->whereIn('id',$mine_use)->where('parent_id',0)->where('deleted_at',null)->get(); $tree_data = []; foreach($mine_list as $k=>$v){ $tree_data[$v->id]['id'] = $v->id; $tree_data[$v->id]['name'] = $v->title; $child_list = DB::table('mine_list')->where('parent_id',$v->id)->where('deleted_at',null)->get(); if(count($child_list)>0){ $tree_data[$v->id]['type'] = 'folder'; $tree_data[$v->id]['additionalParameters']['children'] = $this->mineTree($child_list,$v->id); }else{ $tree_data[$v->id]['type'] = 'item'; } } return $tree_data; } //摄像头管理区域列表ajax public function cameraUpdate(Request $request){ //查询当前登录用户权限内的区域 $user = DB::table('users')->where('staff_num',$request->user()->staff_num)->first(); $mine_array = explode(';',$user->mine_role);//权限内的矿区 $mine_all = DB::table('mine_list')->where('deleted_at',null)->get();//所有区域 $mine_use = [];//权限内矿区下所有区域 foreach($mine_all as $k=>$v){ if(in_array(explode('|',$v->degree)[0],$mine_array)){ $mine_use[] = $v->id; } } $camera_list = CameraList::join( 'mine_list', 'camera_list.mine_id', '=', 'mine_list.id' )->whereIn('mine_list.id',$mine_use)->orderBy('camera_list.sort', 'desc'); if ($_GET['mine_id'] != '' && $_GET['mine_id'] != null) { $camera_list = $camera_list->where('camera_list.mine_id', $_GET['mine_id']); } if ($_GET['camera_name'] != '' && $_GET['camera_name'] != null) { $camera_list = $camera_list->where('camera_list.camera_name', 'like', '%' . $_GET['camera_name'] . '%'); } if ($_GET['camera_type'] != 0) { $camera_list = $camera_list->where('camera_list.camera_type', $_GET['camera_type']); } if ($_GET['camera_source'] != 0) { $camera_list = $camera_list->where('camera_list.camera_source', $_GET['camera_source']); } $camera_list = $camera_list->select( 'camera_list.id', 'camera_list.camera_url', 'camera_list.camera_name', 'camera_list.revert_id', 'camera_list.sort', 'camera_list.camera_type', 'camera_list.camera_source', 'camera_list.is_show', 'mine_list.title', 'mine_list.degree' )->paginate(CameraEnum::PAGE_SIZE); foreach ($camera_list as $key => $val) { $camera_list[$key]->parent_title = MineList::where('id', explode('|', $val->degree)[0])->value('title'); $degree_list = explode('|',$camera_list[$key]->degree); $title = ''; if(count($degree_list) == 1){ for($i=0;$iwhere('id',$degree_list[$i])->get()[0]->title.'/'; } } if(count($degree_list) > 1){ for($i=1;$iwhere('id',$degree_list[$i])->get()[0]->title.'/'; } } $camera_list[$key]->title = substr($title,0,strlen($title)-1); //判断是否是海康视频服务器 if($val->camera_source == CameraEnum::CAMERA_SOURCE_2){ $is_hak = DB::table('mine_list_ext')->where('mine_id',explode('|', $val->degree)[0])->value('is_hak'); if($is_hak == CameraEnum::VIDEO_RECORDER_HK){ $camera_list[$key]->playback = 0;//显示0 }else{ $camera_list[$key]->playback = 1;//不显示1 } }else{ $camera_list[$key]->playback = 1;//不显示1 } $val->camera_type = CameraEnum::CAMERA_TYPE_EXCHANGE[$val->camera_type]; $val->camera_source = CameraEnum::CAMERA_SOURCE_EXCHANGE[$val->camera_source]; } return $camera_list; } //摄像头管理区域列表ajax public function camerapage(Request $request){ //查询当前登录用户权限内的区域 $user = DB::table('users')->where('staff_num',$request->user()->staff_num)->first(); $mine_array = explode(';',$user->mine_role);//权限内的矿区 $mine_all = DB::table('mine_list')->where('deleted_at',null)->get();//所有区域 $mine_use = [];//权限内矿区下所有区域 foreach($mine_all as $k=>$v){ if(in_array(explode('|',$v->degree)[0],$mine_array)){ $mine_use[] = $v->id; } } $camera_list = CameraList::join( 'mine_list', 'camera_list.mine_id', '=', 'mine_list.id' )->whereIn('mine_list.id',$mine_use)->orderBy('camera_list.sort', 'desc'); if ($_GET['mine_id'] != '' && $_GET['mine_id'] != null) { $camera_list = $camera_list->where('camera_list.mine_id', $_GET['mine_id']); } if ($_GET['camera_name'] != '' && $_GET['camera_name'] != null) { $camera_list = $camera_list->where('camera_list.camera_name', 'like', '%' . $_GET['camera_name'] . '%'); } if ($_GET['camera_type'] != 0) { $camera_list = $camera_list->where('camera_list.camera_type', $_GET['camera_type']); } if ($_GET['camera_source'] != 0) { $camera_list = $camera_list->where('camera_list.camera_source', $_GET['camera_source']); } $camera_list = $camera_list->select( 'camera_list.id', 'camera_list.camera_url', 'camera_list.camera_name', 'camera_list.revert_id', 'camera_list.sort', 'camera_list.camera_type', 'camera_list.camera_source', 'camera_list.is_show', 'mine_list.title', 'mine_list.degree' )->paginate(CameraEnum::PAGE_SIZE); foreach ($camera_list as $key => $val) { $camera_list[$key]->parent_title = MineList::where('id', explode('|', $val->degree)[0])->value('title'); $degree_list = explode('|',$camera_list[$key]->degree); $title = ''; if(count($degree_list) == 1){ for($i=0;$iwhere('id',$degree_list[$i])->get()[0]->title.'/'; } } if(count($degree_list) > 1){ for($i=1;$iwhere('id',$degree_list[$i])->get()[0]->title.'/'; } } $camera_list[$key]->title = substr($title,0,strlen($title)-1); //判断是否是海康视频服务器 if($val->camera_source == CameraEnum::CAMERA_SOURCE_2){ $is_hak = DB::table('mine_list_ext')->where('mine_id',explode('|', $val->degree)[0])->value('is_hak'); if($is_hak == CameraEnum::VIDEO_RECORDER_HK){ $camera_list[$key]->playback = 0;//显示 }else{ $camera_list[$key]->playback = 1;//不显示 } }else{ $camera_list[$key]->playback = 1;//不显示 } $val->camera_type = CameraEnum::CAMERA_TYPE_EXCHANGE[$val->camera_type]; $val->camera_source = CameraEnum::CAMERA_SOURCE_EXCHANGE[$val->camera_source]; } return $camera_list; } public function mineTree($regions, $parent_id) { $arr = []; foreach ($regions as $key => $value) { $arr[$key]['id'] = $value->id; $arr[$key]['name'] = $value->title; $mine_child = DB::table('mine_list')->where('parent_id', $value->id)->where('deleted_at',null)->get(); if (count($mine_child) > 0) { $arr[$key]['type'] = 'folder'; $arr[$key]['additionalParameters']['children'] = self::mineTree($mine_child, $value->id); } else { $arr[$key]['type'] = 'item'; } } return array_values($arr); } //查看摄像头列表详情 public function cameraListView(Request $request) { if (!$request->has('id')) { return $this->redirect('admin/camera/list'); } $camera_list = CameraList::join( 'mine_list', 'camera_list.mine_id', '=', 'mine_list.id' )->where('camera_list.id', $request->input('id'))->select( 'camera_list.id', 'camera_list.ip', 'camera_list.port', 'camera_list.user_name', 'camera_list.password', 'camera_list.com_number', 'camera_list.camera_url', 'camera_list.camera_name', 'camera_list.revert_id', 'camera_list.sort', 'camera_list.camera_type', 'camera_list.camera_source', 'camera_list.cover_picture', 'camera_list.video_recorder', 'mine_list.title', 'mine_list.degree' )->first(); //工作面列表 $working_surface = WorkingSurfaceCamera::join( 'working_surface', 'working_surface_camera.surface_id', '=', 'working_surface.id' )->where('working_surface_camera.camera_id', $request->input('id'))->value('surface_name'); $camera_list->parent_title = MineList::where('id', explode('|', $camera_list->degree)[0])->value('title'); $camera_list->working_surface = $working_surface; $tableObj = new TableAuxiliary('', $camera_list); $tableObj->column('parent_title', '矿区名称'); $tableObj->column('title', '区域名称'); $tableObj->column('camera_name', '摄像头名称'); $tableObj->column('camera_type', '摄像头类型', function ($camera_type) { return CameraEnum::CAMERA_TYPE_EXCHANGE[$camera_type]; }); $tableObj->column('camera_source', '摄像头来源', function ($camera_source) { return CameraEnum::CAMERA_SOURCE_EXCHANGE[$camera_source]; }); $tableObj->column('video_recorder', '视频服务器来源', function ($video_recorder) { return CameraEnum::VIDEO_RECORDER_EXCHANGE[$video_recorder]; }); if($camera_list->revert_id != '' && $camera_list->revert_id != null){ $tableObj->column('revert_id', '流媒体id'); } if($camera_list->user_name != '' && $camera_list->user_name != null){ $tableObj->column('user_name', '用户名'); } if($camera_list->password != '' && $camera_list->password != null){ $tableObj->column('password', '密码'); } if($camera_list->ip != '' && $camera_list->ip != null){ $tableObj->column('ip', 'ip地址'); } if($camera_list->port != '' && $camera_list->port != null){ $tableObj->column('port', '端口'); } if($camera_list->com_number != '' && $camera_list->com_number != null){ $tableObj->column('com_number', '通道号'); } if($camera_list->camera_url != '' && $camera_list->camera_url != null){ $tableObj->column('camera_url', '链接'); } if($camera_list->sort != '' && $camera_list->sort != null){ $tableObj->column('sort', '排序'); } if($camera_list->working_surface != '' && $camera_list->working_surface != null){ $tableObj->column('working_surface', '所属矿区区域'); } if($camera_list->cover_picture != '' && $camera_list->cover_picture != null){ $tableObj->column('cover_picture', '封面图片', function($cover_picture) { return ''; }); } $tableObj->title = '摄像头详情'; return $this->tableView($tableObj); } //添加摄像头列表 public function cameraListAdd(Request $request) { $mineService = new MineServices(); $mineService->initMineList(); $titleList = $mineService->getTierList(); $formObj = new FromAuxiliary('camera/list/add'); if(isset($_GET['mine_id']) && $_GET['mine_id'] != ''){ $formObj->tree_select('mine_id', '所属区域', $titleList,$_GET['mine_id']); }else{ $formObj->tree_select('mine_id', '所属区域', $titleList); } $formObj->input('camera_name', '摄像头名称'); $formObj->select('camera_type', '摄像头类型', CameraEnum::CAMERA_TYPE_EXCHANGE, CameraEnum::CAMERA_TYPE_NORMAL); $formObj->select('camera_source', '摄像头来源', CameraEnum::CAMERA_SOURCE_EXCHANGE, CameraEnum::CAMERA_SOURCE_1); $formObj->radio('video_recorder', '硬盘录像机品牌',CameraEnum::VIDEO_RECORDER_EXCHANGE, CameraEnum::VIDEO_RECORDER_HK); $formObj->input('camera_url', '摄像头链接'); $formObj->input('user_name', '用户名'); $formObj->input('password', '密码'); $formObj->input('ip', 'ip地址'); $formObj->input('port', '端口'); $formObj->input('com_number', '通道号'); $formObj->select('code_stream', '视频码流', CameraEnum::CODE_STREAM_EXCHANGE, CameraEnum::CODE_STREAM_SUB); $formObj->input('sort', '排序', CameraEnum::DEFAULT_SORT); $formObj->uploadImg('cover_picture', '封面图片', '/admin/camera/upload/cover_picture', ''); $formObj->title = '添加摄像头'; return $this->from($formObj); } //添加摄像头列表操作 public function cameraListAddPost(Request $request) { if (!$request->input('mine_id')) { return $this->error(1, '请选择区域'); } if (!$request->input('camera_type')) { return $this->error(1, '请选择摄像头类型'); } if (!$request->input('camera_name')) { return $this->error(1, '请输入摄像头名称'); } if ($request->input('camera_source') == CameraEnum::CAMERA_SOURCE_1 && (!$request->input('ip') || !$request->input('port') || !$request->input('user_name') || !$request->input('pass') ||!$request->input('com_number'))) { return $this->error(1, '请输入必填字段'); } if ($request->input('camera_source') == CameraEnum::CAMERA_SOURCE_2 && $request->input('code_stream') == 0) { return $this->error(1, '请选择视频码流'); } if ($request->input('camera_source') == CameraEnum::CAMERA_SOURCE_3 && !$request->input('camera_url')) { return $this->error(1, '请输入摄像头链接'); } if (!$request->input('code_stream')) { return $this->error(1, '请选择视频码流类型'); } $result = CameraServices::addCameraList($request->all()); if (!$result['status']) { return $this->error(1, $result['msg']); } return $this->redirect('admin/camera/list'); } //编辑回放 public function cameraListPlayback(Request $request) { $id = $request->input('id'); if (empty($id)) { return $this->redirect('admin/camera/list'); } if ($request->isMethod('post')) { $params = $request->all(); if(isset($params['title'])) { for ($i = 0; $i < count($params['title']); $i++) { if ($params['title'][$i] == null || $params['start_time'][$i] == null || $params['end_time'][$i] == null) { return $this->error(1, '请输入必填字段'); } if(strtotime($params['end_time'][$i]) < strtotime($params['start_time'][$i])){ return $this->error(1, '开始时间不能大于结束时间'); } } } DB::table('playback')->where('camera_id',$params['id'])->delete(); $camera['playback'] = $params['playback']; DB::table('camera_list')->where('id',$params['id'])->update($camera); if($params['playback'] == 1){//可回放 if(isset($params['title'])){ for($i=0;$iinsert($playback); } } } return $this->redirect('admin/camera/list'); } $camera = CameraList::find($id); $playback = DB::table('playback')->where('camera_id',$id)->where('deleted_at',null)->get(); $formObj = new FromAuxiliary('camera/list/edit', $camera); $formObj->radio('playback', '是否可回放',CameraEnum::VIDEO_PLAY_BACK); $formObj->title = '摄像头回放'; $data['path'] = '/admin/' . $formObj->path; $data['fromTitle'] = $formObj->title; $data['columns'] = $formObj->columns; $data['item'] = $formObj->item; $data['hasHr'] = $formObj->hasHr; $data['primaryKey'] = $formObj->primaryKey; $data['footBtns'] = $formObj->footBtns; $data['colWidth'] = $formObj->colWidth; $data['playback'] = $playback; $data['camera_name'] = $camera->camera_name; return $this->view('camera::playback_edit', $data); } //编辑摄像头列表 public function cameraListEdit(Request $request) { $id = $request->input('id'); if (empty($id)) { return $this->redirect('admin/camera/list'); } $mineService = new MineServices(); $mineService->initMineList(); $titleList = $mineService->getTierList(); $camera_list = CameraList::find($id); if ($request->has('type') && $request->input('type') == 'show') { if ($camera_list->is_show == 1) { $camera_list->is_show = 2; } else { $camera_list->is_show = 1; } $camera_list->save(); return $this->success(); } //工作面列表 $degree = MineList::where('id', $camera_list->mine_id)->value('degree'); $parent_id = explode('|', $degree)[0]; $surface_list = WorkingSurface::where('mine_id', $parent_id)->get()->toArray(); $surface_arr = []; foreach ($surface_list as $key => $val) { $surface_arr[$val['id']] = $val['surface_name']; } $default_surface = WorkingSurfaceCamera::where('camera_id', $id)->value('surface_id'); $formObj = new FromAuxiliary('camera/list/edit', $camera_list); $formObj->tree_select('mine_id', '所属区域', $titleList); $formObj->input('parent_id', '摄像头名称',$parent_id); $formObj->input('camera_name', '摄像头名称'); $formObj->select('camera_type', '摄像头类型', CameraEnum::CAMERA_TYPE_EXCHANGE); $formObj->select('camera_source', '摄像头来源', CameraEnum::CAMERA_SOURCE_EXCHANGE); $formObj->radio('video_recorder', '视频服务器来源',CameraEnum::VIDEO_RECORDER_EXCHANGE); $formObj->input('camera_url', '摄像头链接'); $formObj->input('user_name', '用户名'); $formObj->input('password', '密码'); $formObj->input('ip', 'ip地址'); $formObj->input('port', '端口'); $formObj->input('com_number', '通道号'); $formObj->select('code_stream', '视频码流', CameraEnum::CODE_STREAM_EXCHANGE); $formObj->input('sort', '排序'); $formObj->select('surface_id', '所属矿区区域', $surface_arr, $default_surface); $formObj->uploadImg('cover_picture', '封面图片', '/admin/camera/upload/cover_picture', $camera_list->cover_picture); $formObj->title = '编辑摄像头'; return $this->from($formObj); } //编辑摄像头操作 public function cameraListEditPost(Request $request) { if (!$request->input('mine_id')) { return $this->error(1, '请选择所属区域'); } if (!$request->input('camera_type')) { return $this->error(1, '请选择摄像头类型'); } if (!$request->input('camera_name')) { return $this->error(1, '请输入摄像头名称'); } if ($request->input('camera_source') == CameraEnum::CAMERA_SOURCE_3 && !$request->input('camera_url')) { return $this->error(1, '请输入摄像头链接'); } if (!$request->input('code_stream')) { return $this->error(1, '请选择视频码流类型'); } // if ( // !$request->input('ip') || !$request->input('port') || !$request->input('user_name') // || !$request->input('password') ||!$request->input('com_number') // ) { // return $this->error(1, '请输入必填字段'); // } $result = CameraServices::editCameraList($request->all()); if (!$result['status']) { return $this->error(1, $result['msg']); } //更新摄像头与工作面关联表 SurfaceServices::updateSrufaceCamera($request->all()); return $this->redirect('admin/camera/list'); } //删除摄像头列表记录 public function cameraListDelPost(Request $request) { if (!$request->has('id')) { return $this->error(1, '缺少必要参数'); } $result = CameraServices::delCameraList($request->all()); if (!$result['status']) { return $this->error(1, $result['msg']); } return $this->success(); } //导入摄像头列表 public function cameraListImport(Request $request) { if (!$request->hasFile('excel')) { return $this->error(9001, '缺少上传文件'); } ini_set('memory_limit', '500M'); set_time_limit(300); $reader = ReaderEntityFactory::createReaderFromFile($request->file('excel')->getClientOriginalName()); $reader->open($request->file('excel')->getRealPath()); $sheet = $reader->getSheetIterator(); // 获取sheet对象 $sheet->rewind(); // 指定当前sheet序数 $sheet = $sheet->current(); // 获取指定sheet $arr = []; foreach ($sheet->getRowIterator() as $index => $row) { // 读取每行记录 $arr[] = $row->toArray(); } $reader->close(); $result = CameraListExcelss::dispatch($arr); if (!$result) { return $this->error(1, '所传矿区信息不存在'); } return $this->success(); } //下载摄像头列表导入模板 public function cameraListTemplate() { return $this->redirect('/template/摄像头列表导入模板_v3.0.xlsx'); } //字段列表 public function fieldList(Request $request) { $this->menusActive[0] = 'adminCamera'; $this->menusActive[1] = 'adminCameraFieldlist'; $field_list = CameraFieldList::get(); $tableObj = new TableAuxiliary('camera/field_list', $field_list); $tableObj->actionBtns = ['edit', 'del']; $tableObj->column('field_name', '字段名称'); return $this->tableList($tableObj); } //添加字段 public function fieldListAdd(Request $request) { $formObj = new FromAuxiliary('camera/field_list/add'); $formObj->input('field_name', '字段名称'); $formObj->title = '添加字段'; return $this->from($formObj); } //添加字段操作 public function fieldListAddPost(Request $request) { if (!$request->input('field_name')) { return $this->error(1, '请输入字段名称'); } $result = CameraServices::addCameraFieldList($request->all()); if (!$result['status']) { return $this->error(1, $result['msg']); } return $this->redirect('admin/camera/field_list'); } //编辑字段 public function fieldListEdit(Request $request) { $field_list_id = $request->input('id'); if (empty($field_list_id)) { return $this->redirect('admin/camera/field_list'); } $field_list = CameraFieldList::find($field_list_id); $fromObj = new FromAuxiliary('camera/field_list/edit', $field_list); $fromObj->input("field_name", "字段名称", $field_list->field_name); $fromObj->title = '修改字段'; return $this->from($fromObj); } //编辑字段操作 public function fieldListEditPost(Request $request) { if (!$request->input('field_name')) { return $this->error(1, '请输入字段名称'); } $result = CameraServices::editCameraFieldList($request->all()); if (!$result['status']) { return $this->error(1, $result['msg']); } return $this->redirect('admin/camera/field_list'); } //删除字段 public function fieldListDelPost(Request $request) { if (!$request->has('id')) { return $this->error(1, '缺少必要参数'); } $result = CameraServices::delCameraFieldList($request->all()); if (!$result['status']) { return $this->error(1, $result['msg']); } return $this->success(); } //上传摄像头封面图片 public function cameraUploadCpicture(Request $request) { $file = $request->file('file'); $file_name = CameraServices::uploadFile($file); $file_path = public_path() . '/filedownload/'; $res = CameraServices::uploadOssFile($file_name, $file_path); CameraServices::delUploadFile(); $result['image_path'] = $res; return $this->success($result); } }