| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358 |
- <?php
- /**
- * Created by PhpStorm.
- * User: qiuzijian
- * Date: 2021-04-25
- * Time: 09:53
- */
- namespace Modules\Camera\Http\Controllers\Api;
- use App\Enum\ApiEnum;
- use App\Http\Controllers\Api\BaseController;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Config;
- use Illuminate\Support\Facades\Input;
- use Illuminate\Support\Facades\Log;
- use Modules\Camera\Entities\CameraList;
- use Modules\Camera\Enum\CameraEnum;
- use Modules\Camera\Services\CameraServices;
- use Modules\Mine\Entities\MineList;
- use Modules\Mine\Entities\MineListExt;
- use DB;
- use OSS\OssClient;
- class CameraApiController extends BaseController
- {
- //通过摄像头类型获取摄像头
- public function getCameraByType(){
- $mine_code = Input::get('mine_code', '');
- $camera_type = Input::get('camera_type', '');
- if (!$mine_code || !$camera_type) {
- return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
- }
- $result['status'] = true;
- $result['msg'] = ApiEnum::RETURN_SUCCESS;
- $mine = DB::table('mine_list')->where('slug','like','%'.$mine_code.'%')->where('parent_id',0)->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);
- }
- //宁煤摄像头统计
- public function getTotalNingmei(){
- $result['status'] = true;
- $result['msg'] = ApiEnum::RETURN_SUCCESS;
- //宁煤集团
- $ningmei = DB::table('mine_list')->where('title',config('mine_hls'))->get();
- $ydjk = DB::table('mine_list')->where('title','移动监控')->where('deleted_at',null)->get();
- $ydjk_list = [];
- if(count($ydjk) > 0){
- for($i=0;$i<count($ydjk);$i++){
- array_push($ydjk_list,$ydjk[$i]->id);
- }
- }
- $ydjk_son = DB::table('mine_list')->whereIn('parent_id',$ydjk_list)->where('deleted_at',null)->get();
- if(count($ydjk_son) > 0){
- for($i=0;$i<count($ydjk_son);$i++){
- array_push($ydjk_list,$ydjk_son[$i]->id);
- }
- }
- $mine_all = DB::table('mine_list')->where('deleted_at',null)->whereNotIn('id',$ydjk_list)->get();//所有区域
- $mine_ningmei = [];//宁煤集团所有区域
- foreach($mine_all as $k=>$v){
- if(explode('|',$v->degree)[0] == $ningmei[0]->id){
- $mine_ningmei[] = $v->id;
- }
- }
- //宁煤在离线数量
- $data[0]['title'] = '宁煤公司';
- $data[0]['mine_code'] = $ningmei[0]->slug;
- $data[0]['total'] = DB::table('camera_list')->whereIn('mine_id',$mine_ningmei)->where('deleted_at',null)->count();
- $data[0]['total_online'] = DB::table('camera_list')->whereIn('mine_id',$mine_ningmei)->where('camera_status',1)->where('deleted_at',null)->count();
- $data[0]['total_offline'] = $data[0]['total'] - $data[0]['total_online'];
- $data[0]['rate'] = round($data[0]['total_online'] / $data[0]['total'] * 100,2)."%";
- //宁煤下各矿在离线数量
- $mine_list = DB::table('mine_list')->where('parent_id',$ningmei[0]->id)->where('deleted_at',null)->get();
- foreach($mine_list as $k => $v){
- $mine_use = [];//宁煤下每个矿所有区域
- foreach($mine_all as $key=>$value){
- if(count(explode('|',$value->degree)) > 1){
- if(explode('|',$value->degree)[0] == $ningmei[0]->id && explode('|',$value->degree)[1] == $v->id){
- $mine_use[] = $value->id;
- }
- }
- }
- $total = DB::table('camera_list')->whereIn('mine_id',$mine_use)->where('is_show',1)->where('deleted_at',null)->count();
- $total_online = DB::table('camera_list')->whereIn('mine_id',$mine_use)->where('is_show',1)->where('camera_status',1)->where('deleted_at',null)->count();
- if($total == 0){
- $rate = "0%";
- }else{
- $rate = round($total_online / $total * 100,2)."%";
- }
- if($v->slug == 'NingXiaMeiYeTeShuZuoYeJianKongShiPin'){
- $res['title'] = $v->title;
- $res['mine_code'] = $v->slug."_jituan";
- $res['total'] = $total;
- $res['total_online'] = $total_online;
- $res['total_offline'] = $total - $total_online;
- $res['rate'] = $rate;
- }else{
- if($v->slug == 'ShuiDianFenGongSi'){
- $v->title = '供电分公司';
- }
- array_push($data,[
- 'title'=>$v->title,
- 'mine_code'=>$v->slug."_jituan",
- 'total'=>$total,
- 'total_online'=>$total_online,
- 'total_offline'=>$total - $total_online,
- 'rate'=>$rate
- ]);
- }
- }
- if(isset($res)){
- array_push($data,[
- 'title'=>$res['title'],
- 'mine_code'=>$res['mine_code'],
- 'total'=>$res['total'],
- 'total_online'=>$res['total_online'],
- 'total_offline'=>$res['total_offline'],
- 'rate'=>$res['rate']
- ]);
- }
- return self::successResponse($data);
- }
- //宁煤摄像头统计字符串
- public function getTotalString(){
- $result['status'] = true;
- $result['msg'] = ApiEnum::RETURN_SUCCESS;
- //宁煤集团
- $ningmei = DB::table('mine_list')->where('title',config('mine_hls'))->get();
- $mine_all = DB::table('mine_list')->where('deleted_at',null)->get();//所有区域
- $mine_ningmei = [];//宁煤集团所有区域
- foreach($mine_all as $k=>$v){
- if(explode('|',$v->degree)[0] == $ningmei[0]->id){
- $mine_ningmei[] = $v->id;
- }
- }
- //宁煤在离线数量
- $nm['title'] = '宁煤公司';
- $nm['mine_code'] = $ningmei[0]->slug;
- $nm['total'] = DB::table('camera_list')->whereIn('mine_id',$mine_ningmei)->where('deleted_at',null)->count();
- $nm['total_online'] = DB::table('camera_list')->whereIn('mine_id',$mine_ningmei)->where('camera_status',1)->where('deleted_at',null)->count();
- $nm['total_offline'] = $nm['total'] - $nm['total_online'];
- $nm['rate'] = round($nm['total_online'] / $nm['total'] * 100,2);
- $data = [];
- //宁煤下各矿在离线数量
- $mine_list = DB::table('mine_list')->where('parent_id',$ningmei[0]->id)->where('deleted_at',null)->get();
- foreach($mine_list as $k => $v){
- $mine_use = [];//宁煤下每个矿所有区域
- foreach($mine_all as $key=>$value){
- if(count(explode('|',$value->degree)) > 1){
- if(explode('|',$value->degree)[0] == $ningmei[0]->id && explode('|',$value->degree)[1] == $v->id){
- $mine_use[] = $value->id;
- }
- }
- }
- $total = DB::table('camera_list')->whereIn('mine_id',$mine_use)->where('is_show',1)->where('deleted_at',null)->count();
- $total_online = DB::table('camera_list')->whereIn('mine_id',$mine_use)->where('is_show',1)->where('camera_status',1)->where('deleted_at',null)->count();
- if($total == 0){
- $rate = "0";
- }else{
- $rate = round($total_online / $total * 100,2);
- }
- if($v->slug == 'NingXiaMeiYeTeShuZuoYeJianKongShiPin'){
- $res['title'] = $v->title;
- $res['mine_code'] = $v->slug."_jituan";
- $res['total'] = $total;
- $res['total_online'] = $total_online;
- $res['total_offline'] = $total - $total_online;
- $res['rate'] = $rate;
- }else{
- array_push($data,[
- 'title'=>$v->title,
- 'mine_code'=>$v->slug."_jituan",
- 'total'=>$total,
- 'total_online'=>$total_online,
- 'total_offline'=>$total - $total_online,
- 'rate'=>$rate
- ]);
- }
- }
- if(isset($res)){
- array_push($data,[
- 'title'=>$res['title'],
- 'mine_code'=>$res['mine_code'],
- 'total'=>$res['total'],
- 'total_online'=>$res['total_online'],
- 'total_offline'=>$res['total_offline'],
- 'rate'=>$res['rate']
- ]);
- }
- $timestamp = strtotime(date('Y-m-d H:i:s'));
- $hour = date('G', $timestamp);
- $minute = date('i', $timestamp);
- $month = date('n', $timestamp);
- $day = date('j', $timestamp);
- if($minute == '00'){
- $minute = '';
- }
- if ($hour < 12) {
- $time = $month."月".$day."号上午".$hour."时".$minute;
- } elseif ($hour >= 12 && $hour < 18) {
- $time = $month."月".$day."号下午".$hour."时".$minute;
- } else {
- $time = $month."月".$day."号晚上".$hour."时".$minute;
- }
- $unit_max_name = '';
- $unit_max_rate = 0;
- $unit_min_name = '';
- $unit_min_rate = 100;
- $mzy_max_name = '';
- $mzy_max_rate = 0;
- $mzy_min_name = '';
- $mzy_min_rate = 100;
- $other_max_name = '';
- $other_max_rate = 0;
- $other_min_name = '';
- $other_min_rate = 100;
- if(count($data)>0){
- for($i=0;$i<count($data);$i++){
- if (strpos($data[$i]['title'], '煤矿') !== false || strpos($data[$i]['title'], '洗选') !== false) {
- if($data[$i]['rate'] > $unit_max_rate){
- $unit_max_rate = $data[$i]['rate'];
- }
- if($data[$i]['rate'] < $unit_min_rate){
- $unit_min_rate = $data[$i]['rate'];
- }
- }elseif(strpos($data[$i]['title'], '煤制油') !== false || strpos($data[$i]['title'], '烯烃') !== false || strpos($data[$i]['title'], '甲醇') !== false || strpos($data[$i]['title'], '精蜡') !== false){
- if($data[$i]['rate'] > $mzy_max_rate){
- $mzy_max_rate = $data[$i]['rate'];
- }
- if($data[$i]['rate'] < $mzy_min_rate){
- $mzy_min_rate = $data[$i]['rate'];
- }
- }else{
- if($data[$i]['rate'] > $other_max_rate){
- $other_max_rate = $data[$i]['rate'];
- }
- if($data[$i]['rate'] < $other_min_rate){
- $other_min_rate = $data[$i]['rate'];
- }
- }
- }
- for($i=0;$i<count($data);$i++){
- if (strpos($data[$i]['title'], '煤矿') !== false || strpos($data[$i]['title'], '洗选') !== false) {
- if($data[$i]['rate'] == $unit_max_rate){
- $unit_max_name = $unit_max_name.'、'.$data[$i]['title'];
- }
- if($data[$i]['rate'] == $unit_min_rate){
- $unit_min_name = $unit_max_name.'、'.$data[$i]['title'];
- }
- }elseif(strpos($data[$i]['title'], '煤制油') !== false || strpos($data[$i]['title'], '烯烃') !== false || strpos($data[$i]['title'], '甲醇') !== false || strpos($data[$i]['title'], '精蜡') !== false){
- if($data[$i]['rate'] == $mzy_max_rate){
- $mzy_max_name = $mzy_max_name.'、'.$data[$i]['title'];
- }
- if($data[$i]['rate'] == $mzy_min_rate){
- $mzy_min_name = $mzy_max_name.'、'.$data[$i]['title'];
- }
- }else{
- if($data[$i]['rate'] == $other_max_rate){
- $other_max_name = $other_max_name.'、'.$data[$i]['title'];
- }
- if($data[$i]['rate'] == $other_min_rate){
- $other_min_name = $other_max_name.'、'.$data[$i]['title'];
- }
- }
- }
- }
- $unit_max_name = mb_substr($unit_max_name, 1);
- $unit_min_name = mb_substr($unit_min_name, 1);
- $mzy_max_name = mb_substr($mzy_max_name, 1);
- $mzy_min_name = mb_substr($mzy_min_name, 1);
- $other_max_name = mb_substr($other_max_name, 1);
- $other_min_name = mb_substr($other_min_name, 1);
- $result['data'] = '本周公司视频摄像头在线数'.$nm['total_online'].'个,'.'在线率为'.$nm['rate'].'%('.$time
- .'统计)。其中:①煤炭生产建设单位在线率排名第一的单位是'.$unit_max_name.',在线率达到'.$unit_max_rate
- .'%;排名末位的单位是'.$unit_min_name.',在线率达到'.$unit_min_rate
- .'%。②煤制油化工单位在线率排名第一的单位是'.$mzy_max_name.',在线率达到'.$mzy_max_rate.'%;排名末位的单位是'
- .$mzy_min_name.',在线率达到'.$mzy_min_rate.'%。③其他单位在线率排名第一的单位是'.$other_max_name
- .',在线率达到'.$other_max_rate.'%;排名末位的单位是'.$other_min_name.',在线率达到'.$other_min_rate.'%。';
- return self::successResponse($result);
- }
- //宁煤不在线摄像头列表
- public function offlineList(){
- $mine_code = Input::get('mine_code', '');
- if (!$mine_code) {
- return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
- }
- $result['status'] = true;
- $result['msg'] = ApiEnum::RETURN_SUCCESS;
- //宁煤集团
- $ningmei = DB::table('mine_list')->where('title',config('mine_hls'))->get();
- $mine_all = DB::table('mine_list')->where('deleted_at',null)->get();//所有区域
- $mine_ningmei = [];//宁煤集团所有区域
- foreach($mine_all as $k=>$v){
- if(explode('|',$v->degree)[0] == $ningmei[0]->id){
- $mine_ningmei[] = $v->id;
- }
- }
- if(count(explode('_',$mine_code)) > 1){
- $mine_code = explode('_',$mine_code)[0];
- }
- $mine_list = DB::table('mine_list')->where('parent_id',0)->where('slug','like','%'.$mine_code.'%')->where('deleted_at',null)->get();
- //如果传参是宁煤显示全部
- if(isset($mine_list[0]->title) && $mine_list[0]->title == config('mine_hls')[0]){
- //宁煤在离线数量
- $offline_list = DB::table('camera_list')->select('id','camera_name','cover_picture','camera_status')->whereIn('mine_id',$mine_ningmei)->where('camera_status','!=',1)->where('deleted_at',null)->get();
- return self::successResponse($offline_list);
- }
- //宁煤下各矿在离线数量
- $mine_list = DB::table('mine_list')->where('parent_id',$ningmei[0]->id)->where('slug','like','%'.$mine_code.'%')->where('deleted_at',null)->get();
- $total_offline = [];
- foreach($mine_list as $k => $v){
- $mine_use = [];//宁煤下每个矿所有区域
- foreach($mine_all as $key=>$value){
- if(count(explode('|',$value->degree)) > 1){
- if(explode('|',$value->degree)[0] == $ningmei[0]->id && explode('|',$value->degree)[1] == $v->id){
- $mine_use[] = $value->id;
- }
- }
- }
- $total_offline = DB::table('camera_list')->select('id','camera_name','cover_picture','camera_status')->whereIn('mine_id',$mine_use)->where('is_show',1)->where('camera_status','!=',1)->where('deleted_at',null)->get();
- }
- return self::successResponse($total_offline);
- }
- //宁煤高风险摄像头
- public function getRiskNingmei(){
- $mine_code = Input::get('mine_code', '');
- if (!$mine_code) {
- return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
- }
- $result['status'] = true;
- $result['msg'] = ApiEnum::RETURN_SUCCESS;
- //宁煤集团
- $ningmei = DB::table('mine_list')->where('title',config('mine_hls'))->get();
- //宁煤集团下级单位
- $mine = DB::table('mine_list')
- ->where('parent_id',$ningmei[0]->id)
- ->where('slug','like','%'.$mine_code.'%')
- ->where('deleted_at',null)
- ->get();
- //子区域树形列表
- $child_list = DB::table('mine_list')->where('parent_id',$mine[0]->id)->where('deleted_at',null)->orderBy('sort','desc')->get();
- $risk_id = null;
- if(count($child_list)>0){
- $risk_id = $this->mineTree($child_list);
- }
- $mine_list = [];
- if($risk_id != null){
- $risk = DB::table('mine_list')->where('parent_id',$risk_id)->where('deleted_at',null)->get();
- if(count($risk) > 0){
- //有子区域
- $mine_list = $this->riskTree($risk,[]);
- }else{
- //没有子区域
- $mine_list[] = $risk_id;
- }
- }
- $camera_list = DB::table('camera_list')
- ->select('camera_list.*','mine_list.title')
- ->leftJoin('mine_list','camera_list.mine_id','=','mine_list.id')
- ->where('camera_list.deleted_at',null)
- ->whereIn('camera_list.mine_id',$mine_list)
- ->orderBy('sort', 'desc')->get();
- $result = [];
- foreach($camera_list as $k=>$v){
- $result[$k]['parent_id'] = $ningmei[0]->id;
- $result[$k]['camera_id'] = $v->id;
- $result[$k]['mine_name'] = $v->title;
- $result[$k]['camera_name'] = $v->camera_name;
- $result[$k]['cover_picture'] = $v->cover_picture;
- $result[$k]['camera_status'] = $v->camera_status;
- $result[$k]['base64'] = $v->base64;
- }
- return self::successResponse($result);
- }
- public function mineTree($regions)
- {
- $arr = null;
- foreach ($regions as $key => $value) {
- $risk = explode('高风险作业',$value->title);
- if (count($risk)>1){
- return $value->id;
- }
- $mine_child = DB::table('mine_list')->where('parent_id', $value->id)->where('deleted_at',null)->get();
- if (count($mine_child) > 0) {
- $arr = self::mineTree($mine_child, $value->id);
- if($arr != null){
- return $arr;
- }
- }
- }
- return $arr;
- }
- public function riskTree($regions,$risk_list)
- {
- foreach ($regions as $key => $value) {
- $risk_child = DB::table('mine_list')->where('parent_id', $value->id)->where('deleted_at',null)->get();
- if (count($risk_child) > 0) {
- $risk_list = array_merge($risk_list,self::riskTree($risk_child,[]));
- }else{
- $risk_list[] = $value->id;
- }
- }
- return $risk_list;
- }
- //高风险区域摄像头
- public function getCameraByMinecode(){
- $mine_code = Input::get('mine_code', '');
- if (!$mine_code) {
- return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
- }
- $result['status'] = true;
- $result['msg'] = ApiEnum::RETURN_SUCCESS;
- $mine = DB::table('mine_list')->where('slug','like','%'.$mine_code.'%')->where('parent_id',0)->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('title','like','%高风险%')->where('deleted_at',null)->get();
- $mine_array = [];
- foreach($mine_list as $k=>$v){
- $mine_child = DB::table('mine_list')->where('degree', 'like','%' . $v->id . '%')->where('deleted_at',null)->get();
- if(count($mine_child)>0){
- for($i=0;$i<count($mine_child);$i++){
- $mine_array[] = $mine_child[$i]->id;
- }
- }
- }
- $query = DB::table('camera_list')
- ->select('camera_list.*','mine_list.title')
- ->leftJoin('mine_list','camera_list.mine_id','=','mine_list.id')
- ->where('camera_list.deleted_at',null)
- ->whereIn('camera_list.mine_id',$mine_array)
- ->orderBy('sort', 'desc')->get();
- if (!$query) {
- $result['status'] = false;
- $result['msg'] = '矿区下没有摄像头';
- return $result;
- }
- $result = [];
- foreach($query as $k=>$v){
- $result[$k]['parent_id'] = $mine->id;
- $result[$k]['camera_id'] = $v->id;
- $result[$k]['mine_name'] = $v->title;
- $result[$k]['camera_name'] = $v->camera_name;
- $result[$k]['cover_picture'] = $v->cover_picture;
- $result[$k]['camera_status'] = $v->camera_status;
- }
- return self::successResponse($result);
- }
- /**
- * 作者: qiuzijian
- * 注释: 获取摄像头列表
- * @return \App\Http\Controllers\Api\JsonResponse
- */
- public function getCamerasList()
- {
- $parent_id = Input::get('parent_id', '');
- $mine_id = Input::get('mine_id', '');
- $camera_type = Input::get('camera_type', CameraEnum::CAMERA_TYPE_ALL);
- $surface_id = Input::get('surface_id', '');
- if (!$parent_id) {
- return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
- }
- if (!in_array($camera_type, [CameraEnum::CAMERA_TYPE_NORMAL, CameraEnum::CAMERA_TYPE_ALL]) && !$surface_id) {
- return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
- }
- //判断是否使用海康视频服务器
- // $is_hak = MineListExt::where('mine_id', $parent_id)->value('is_hak');
- // if ($is_hak) {
- // $result = CameraServices::getHaiKangCamera($parent_id, $mine_id, $camera_type);
- // } else {
- $result = CameraServices::getCameraListByMineId($mine_id, $camera_type, $parent_id, $surface_id);
- // }
- return self::successResponse($result);
- }
- /**
- * 作者: qiuzijian
- * 注释: 获取摄像头播放地址
- * @return \App\Http\Controllers\Api\JsonResponse
- */
- public function getCamerasUrl()
- {
- $parent_id = Input::get('parent_id', '');
- $camera_id = Input::get('camera_id', '');
- if (!$parent_id || !$camera_id) {
- return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
- }
- //判断摄像头来源是否为内网服务器
- $camera_source = CameraList::where('id', $camera_id)->value('camera_source');
- if ($camera_source == CameraEnum::CAMERA_SOURCE_3) {
- $result = CameraServices::getIntranetCameraUrl($camera_id);
- return self::successResponse($result);
- }
- //判断是否使用海康视频服务器
- $is_hak = MineListExt::where('mine_id', $parent_id)->value('is_hak');
- //判断是否生成摄像头请求链接
- $camera_url = CameraList::where('id', $camera_id)->value('camera_url');
- if ($is_hak && !$camera_url) {
- //判断是否是mine配置文件的矿区
- $mine_res = DB::table('mine_list')->where('id',$parent_id)->get();
- //天地伟业
- if(isset($mine_res[0]->title) && in_array($mine_res[0]->title,config('mine'))){
- $result = CameraServices::getRtspTianDi($camera_id,$parent_id);
- //宁煤集团
- }elseif(isset($mine_res[0]->title) && in_array($mine_res[0]->title,config('mine_hls'))){
- $result = CameraServices::getHkHls($camera_id,$parent_id);
- }
- //信息技术中心测试ws协议
- // elseif($mine_res[0]-> slug == 'XinXiJiShuZhongXin'){
- // $result = CameraServices::getHkWs($camera_id,$parent_id);
- //
- // }
- //海康切片逻辑
- else{
- $result = CameraServices::downloadCameraFiles($parent_id, $camera_id);
- }
- } else {
- //判断硬盘录像机的有没有封面图,有的走easydrawin,没有的走ffmpeg
- $cover_picture = CameraList::where('id', $camera_id)->value('cover_picture');
- // if(!$cover_picture){
- //ffmpeg拉流获取首帧图片
- // $result = CameraServices::getCameraUrlByFfmpeg($camera_id);
- // }else{
- // $result = CameraServices::getCameraUrlByCameraId($camera_id);
- // $result = CameraServices::getRtspYingPan($camera_id);
- //硬盘录像机切片测试
- $result = CameraServices::getRtspQiePian($camera_id);
- // }
- }
- return self::successResponse($result);
- }
- public function getCamerasLanUrl()
- {
- $parent_id = Input::get('parent_id', '');
- $camera_id = Input::get('camera_id', '');
- if (!$parent_id || !$camera_id) {
- return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
- }
- //判断摄像头来源是否为内网服务器
- $camera_source = CameraList::where('id', $camera_id)->value('camera_source');
- if ($camera_source == CameraEnum::CAMERA_SOURCE_3) {
- $result = CameraServices::getIntranetCameraUrl($camera_id);
- return self::successResponse($result);
- }
- //判断是否使用海康视频服务器
- $is_hak = MineListExt::where('mine_id', $parent_id)->value('is_hak');
- //判断是否生成摄像头请求链接
- $camera_url = CameraList::where('id', $camera_id)->value('camera_url');
- if ($is_hak && !$camera_url) {
- //判断是否是mine配置文件的矿区
- $mine_res = DB::table('mine_list')->where('id',$parent_id)->get();
- //天地伟业
- if(isset($mine_res[0]->title) && in_array($mine_res[0]->title,config('mine'))){
- $result = CameraServices::getRtspTianDi($camera_id,$parent_id);
- //宁煤集团
- }elseif(isset($mine_res[0]->title) && in_array($mine_res[0]->title,config('mine_hls'))){
- $result = CameraServices::getHkHls($camera_id,$parent_id);
- }else{
- $result = CameraServices::getLanCameraUrl($parent_id, $camera_id);
- }
- } else {
- //判断硬盘录像机的有没有封面图,有的走easydrawin,没有的走ffmpeg
- $cover_picture = CameraList::where('id', $camera_id)->value('cover_picture');
- // if(!$cover_picture){
- //ffmpeg拉流获取首帧图片
- // $result = CameraServices::getCameraUrlByFfmpeg($camera_id);
- // }else{
- $result = CameraServices::getCameraUrlByCameraId($camera_id);
- // }
- }
- return self::successResponse($result);
- }
- //获取海康rtsp流
- public function getHikRtsp(){
- $parent_id = Input::get('parent_id', '');
- $camera_id = Input::get('camera_id', '');
- if (!$parent_id || !$camera_id) {
- return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
- }
- //判断是否使用海康视频服务器
- $is_hak = MineListExt::where('mine_id', $parent_id)->value('is_hak');
- //判断是否生成摄像头请求链接
- $camera_url = CameraList::where('id', $camera_id)->value('camera_url');
- if ($is_hak == 1 && !$camera_url) {
- $result = CameraServices::getHkRtsp($camera_id,$parent_id);
- return self::successResponse($result);
- }else{
- return self::errorResponse(ApiEnum::HK_REQUEST_FAIL);
- }
- }
- //获取海康rtmp流
- public function getHikRtmp(){
- $parent_id = Input::get('parent_id', '');
- $camera_id = Input::get('camera_id', '');
- if (!$parent_id || !$camera_id) {
- return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
- }
- //判断是否使用海康视频服务器
- $is_hak = MineListExt::where('mine_id', $parent_id)->value('is_hak');
- //判断是否生成摄像头请求链接
- $camera_url = CameraList::where('id', $camera_id)->value('camera_url');
- if ($is_hak == 1 && !$camera_url) {
- $result = CameraServices::getHkRtmp($camera_id,$parent_id);
- return self::successResponse($result);
- }else{
- return self::errorResponse(ApiEnum::HK_REQUEST_FAIL);
- }
- }
- //海康摄像头easy_drawin方式获取url
- public function getCamerasRtsp()
- {
- $parent_id = Input::get('parent_id', '');
- $camera_id = Input::get('camera_id', '');
- if (!$parent_id || !$camera_id) {
- return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
- }
- //判断摄像头来源是否为内网服务器
- $camera_source = CameraList::where('id', $camera_id)->value('camera_source');
- if ($camera_source == CameraEnum::CAMERA_SOURCE_3) {
- $result = CameraServices::getIntranetCameraUrl($camera_id);
- return self::successResponse($result);
- }
- //判断是否使用海康视频服务器
- $is_hak = MineListExt::where('mine_id', $parent_id)->value('is_hak');
- //判断是否生成摄像头请求链接
- $camera_url = CameraList::where('id', $camera_id)->value('camera_url');
- if ($is_hak && !$camera_url) {
- //判断是否是mine配置文件的矿区
- $mine_res = DB::table('mine_list')->where('id',$parent_id)->get();
- if(isset($mine_res[0]->title) && in_array($mine_res[0]->title,config('mine'))){
- //天地伟业使用easy_drawin获取rtsp
- $result = CameraServices::getRtspTianDi($camera_id,$parent_id);
- }else{
- //海康使用easy_drawin获取rtsp
- $result = CameraServices::getRtspHaiKang($camera_id, $parent_id);
- }
- } else {
- //硬盘录像机使用easy_drawin获取rtsp
- $result = CameraServices::getRtspYingPan($camera_id);
- }
- return self::successResponse($result);
- }
- /**
- * 作者: qiuzijian
- * 注释: 停止摄像头推流
- * @return \App\Http\Controllers\Api\JsonResponse
- */
- public function stopCamerasStream()
- {
- $camera_id = Input::get('camera_id', '');
- $result = CameraServices::stopCameraStream();
- return self::successResponse($result);
- }
- //回放列表
- public function getPlaybackList(){
- $camera_id = Input::get('camera_id', '');
- $result['status'] = true;
- $result['msg'] = ApiEnum::RETURN_SUCCESS;
- if (!$camera_id) {
- $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;
- }
- $playback = DB::table('playback')->where('camera_id',$query->id)->where('deleted_at',null)->get();
- if(count($playback)>0){
- for($i=0;$i<count($playback);$i++){
- $result['data'][$i]['title'] = $playback[$i]->title;
- $result['data'][$i]['start_time'] = $playback[$i]->start_time;
- $result['data'][$i]['end_time'] = $playback[$i]->end_time;
- $result['data'][$i]['camera_id'] = $playback[$i]->camera_id;
- }
- }else{
- $result['data'] = null;
- }
- return $result;
- }
- //回放URL
- public function getPlaybackUrl(){
- $time['start_time'] = explode(' ',Input::get('start_time', ''))[1];
- $time['end_time'] = explode(' ',Input::get('end_time', ''))[1];
- $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;
- }
- $degree = MineList::where('id', $query->mine_id)->value('degree');
- $degree = explode('|', $degree)[0];
- $mine_res = DB::table('mine_list')->where('id',$degree)->get();
- //判断摄像头是否是洗选中心的时间+34分钟
- if($mine_res[0]->slug == 'XiXuanZhongXin'){
- $start_time = date('Y-m-d H:i:s',strtotime($start_time.'+34 minutes'));
- $end_time = date('Y-m-d H:i:s',strtotime($end_time.'+34 minutes'));
- }
- $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];
- //判断是否在配置文件里,在的不用走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::getPlaybackRtmp($camera_id,$start_time,$end_time,$time);
- return self::successResponse($result);
- }
- }
- //easydrawin回放URL
- public function getPlaybackUrlByEasy(){
- $time['start_time'] = explode(' ',Input::get('start_time', ''))[1];
- $time['end_time'] = explode(' ',Input::get('end_time', ''))[1];
- $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;
- }
- $degree = MineList::where('id', $query->mine_id)->value('degree');
- $degree = explode('|', $degree)[0];
- $mine_res = DB::table('mine_list')->where('id',$degree)->get();
- //判断摄像头是否是洗选中心的时间+34分钟
- if($mine_res[0]->slug == 'XiXuanZhongXin'){
- $start_time = date('Y-m-d H:i:s',strtotime($start_time.'+34 minutes'));
- $end_time = date('Y-m-d H:i:s',strtotime($end_time.'+34 minutes'));
- }
- $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];
- //判断是否在配置文件里,在的不用走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,$time);
- return self::successResponse($result);
- }
- }
- /**
- * 作者: qiuzijian
- * 注释: 获取编码设备信息
- * @return \App\Http\Controllers\Api\JsonResponse
- */
- public function getTranscodeInfo()
- {
- $parent_id = Input::get('parent_id', '');
- if (!$parent_id) {
- return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
- }
- $result = CameraServices::getHaiKangTransCode($parent_id);
- return self::successResponse($result);
- }
- /**
- * 作者: qiuzijian
- * 注释: 获取大南湖摄像头列表
- * @return \App\Http\Controllers\Api\JsonResponse
- */
- public function getSouthLakeCamera()
- {
- $result = CameraServices::getLeChangeCamera();
- return self::successResponse($result);
- }
- public function pictureBase64(){
- $base64 = Input::get('base64', '');
- $camera_id = Input::get('camera_id', '');
- if (!$base64 || !$camera_id) {
- return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
- }
- $data['base64'] = $base64;
- DB::table('camera_list')->where('id',$camera_id)->update($data);
- return self::successResponse();
- }
- public function test(){
- // header("Access-Control-Allow-Origin: *");
- $data = DB::table('goods')->get();
- return $data;
- }
- public function testadd(){
- // header("Access-Control-Allow-Origin: *");
- $res['good_name'] = Input::get('good_name', '');
- $res['good_url'] = 'images/1.jpg';
- $res['good_count'] = Input::get('good_count', '');
- $res['good_price'] = Input::get('good_price', '');
- $res['good_state'] = Input::get('good_state', '');
- DB::table('goods')->insert($res);
- return true;
- }
- public function testdel(){
- // header("Access-Control-Allow-Origin: *");
- DB::table('goods')->where('id',Input::get('id',''))->delete();
- return true;
- }
- public function testupdate(){
- // header("Access-Control-Allow-Origin: *");
- $res['good_name'] = Input::get('good_name', '');
- $res['good_url'] = 'images/1.jpg';
- $res['good_count'] = Input::get('good_count', '');
- $res['good_price'] = Input::get('good_price', '');
- $res['good_state'] = Input::get('good_state', '');
- DB::table('goods')->where('id',Input::get('id',''))->update($res);
- return true;
- }
- //值班信息
- public function dutyInformation(){
- $today = date('Y-m-d');
- $tomorrow = date("Y-m-d",strtotime("+1 day"));
- $result['today_zzb'] = DB::connection('etl_zaoquan')->select("select * from news_duty_list where date ='".$today."' and type = 'zzb'");
- $result['today_fzzb'] = DB::connection('etl_zaoquan')->select("select * from news_duty_list where date ='".$today."' and type = 'fz'");
- $result['tomorrow_zzb'] = DB::connection('etl_zaoquan')->select("select * from news_duty_list where date ='".$tomorrow."' and type = 'zzb'");
- $result['tomorrow_fzzb'] = DB::connection('etl_zaoquan')->select("select * from news_duty_list where date ='".$tomorrow."' and type = 'fz'");
- return self::successResponse($result);
- }
- //分类列表
- public function typeList(){
- $result = $result = DB::connection('etl_zaoquan')->select("select type from news_column_list group by type");
- if(count($result) > 0){
- for($i=0;$i<count($result);$i++){
- if($result[$i]->type=="mkxw"){
- unset($result[$i]);
- $newObject = ['type' => 'mkxw','name'=>'煤矿新闻'];
- array_unshift($result, $newObject);
- }
- if($result[$i]->type == 'aqsc'){
- $result[$i]->name = '安全生产';
- }
- if($result[$i]->type == 'mkxw'){
- $result[$i]->name = '煤矿新闻';
- }
- if($result[$i]->type == 'zwbg'){
- $result[$i]->name = '政务办公';
- }
- if($result[$i]->type == 'djgz'){
- $result[$i]->name = '党建工作';
- }
- if($result[$i]->type == 'qygl'){
- $result[$i]->name = '企业管理';
- }
- if($result[$i]->type == 'jdgl'){
- $result[$i]->name = '机电管理';
- }
- if($result[$i]->type == 'scjsgl'){
- $result[$i]->name = '生产技术管理';
- }
- if($result[$i]->type == 'jjjc'){
- $result[$i]->name = '纪检监察';
- }
- if($result[$i]->type == 'zhzl'){
- $result[$i]->name = '综合治理';
- }
- if($result[$i]->type == 'jypx'){
- $result[$i]->name = '教育培训';
- }
- if($result[$i]->type == 'kwgk'){
- $result[$i]->name = '矿务公开';
- }
- }
- }
- return self::successResponse($result);
- }
- //文章列表
- public function articleList(Request $request){
- $params = $request->all();
- if (!isset($params['page_size'])) {
- return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
- }
- if (!isset($params['page_num'])) {
- return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
- }
- if (!isset($params['type'])) {
- return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
- }
- $offset = $params['page_size'] * ($params['page_num'] - 1);
- $result = DB::connection('etl_zaoquan')->select("select * from news_column_list where type = '".$params['type']."' order by create_time desc limit ".$params['page_size']." offset ".$offset);
- $pattern = '/<img(.*?)src=["\'](.*?)["\'](.*?)>/i';//图片
- $pattern2 = '/href="([^"]+)"/';//文件
- if(count($result) > 0){
- for($i=0;$i<count($result);$i++){
- //替换title_image
- $old_title_image = $result[$i]->title_image;
- $old_title_image_array = explode('/',$old_title_image);
- $old_img_path = $old_title_image_array[count($old_title_image_array)-1];
- $new_img_path_list = DB::connection('etl_zaoquan')->select("select * from news_img_list where img_name ='".$old_img_path."'");
- if(count($new_img_path_list) > 0){
- $result[$i]->main_img = $new_img_path_list[0]->new_name;
- }
- unset($result[$i]->title_image);
- $result[$i]->created_at = $result[$i]->create_time;
- unset($result[$i]->create_time);
- //替换text的图片
- preg_match_all($pattern, $result[$i]->text, $matches);
- foreach ($matches[2] as $index => $oldSrc) {
- $news_img_list = DB::connection('etl_zaoquan')->select("select * from news_img_list where img_name ='".basename($oldSrc)."'");
- if(count($news_img_list) > 0){
- $newSrc = $news_img_list[0]->new_name;
- $result[$i]->text = str_replace($oldSrc, $newSrc, $result[$i]->text);
- }
- }
- //替换text的文件
- preg_match_all($pattern2, $result[$i]->text, $matches2);
- foreach ($matches2[1] as $index => $oldSrc) {
- $news_file_list = DB::connection('etl_zaoquan')->select("select * from news_img_list where img_name ='".basename($oldSrc)."'");
- if(count($news_file_list) > 0){
- $newSrc = $news_file_list[0]->new_name;
- $result[$i]->text = str_replace($oldSrc, $newSrc, $result[$i]->text);
- }
- }
- }
- }
- return self::successResponse($result);
- }
- //文章图片上传至阿里云
- public function ossUrl(Request $request){
- $params = $request->all();
- if (!isset($params['url'])) {
- return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
- }
- $result = $this->downloadFile($params['url']);
- return self::successResponse($result);
- }
- //下载文件
- public function downloadFile($file_path)
- {
- $rename = mt_rand(1111111,9999999);
- if (!$file_path) {
- return false;
- }
- set_time_limit(0);
- $ch = curl_init($file_path);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
- $rawdata = curl_exec ($ch);
- curl_close ($ch);
- $houzhui = explode('.',$file_path);
- $houzhui = '.'.$houzhui[count($houzhui)-1];
- // 使用中文文件名需要转码
- $fp = fopen(public_path() . '/filedownload/' . $rename.$houzhui, 'w');
- fwrite($fp, $rawdata);
- fclose($fp);
- $file_name = $rename;
- //上传文件
- $file_oss_path = $this->uploadFile($file_name,$houzhui);
- return $file_oss_path;
- }
- //上传文件
- public function uploadFile($file_name,$houzhui)
- {
- try{
- $oss = new OssClient(
- Config::get('filesystems.disks.oss_view.access_key'),
- Config::get('filesystems.disks.oss_view.secret_key'),
- Config::get('filesystems.disks.oss_view.endpoint')
- );
- $file_path = public_path() . '/filedownload/' . $file_name.$houzhui;
- $res = $oss->uploadFile(Config::get('filesystems.disks.oss_view.bucket'), $file_name.$houzhui, $file_path);
- } catch(\OssException $e) {
- printf(__FUNCTION__ . ": FAILED\n");
- printf($e->getMessage() . "\n");
- return;
- }
- if (isset($res['info']['url']) && $res['info']['url']) {
- unlink($file_path);
- return urldecode($res['info']['url']);
- } else {
- return false;
- }
- }
- //摄像头访问记录入库
- public function cameraRecordInsert(Request $request){
- $params = $request->all();
- // $opcDB = DB::connection('anning');
- // $dbResult = $opcDB->select('select * from uf_dwj_spjkymfw where ymid = 6224');
- if(isset($params['staff_num']) && isset($params['name']) && isset($params['department']) && isset($params['post']) && isset($params['camera_id']) && isset($params['start_time'])){
- $camera = DB::table('camera_list')->where('id',$params['camera_id'])->get();
- $mine = DB::table('mine_list')->where('id',$camera[0]->mine_id)->get();
- $degree = explode('|',$mine[0]->degree);
- $unit = DB::table('mine_list')->where('id',$degree[0])->get();
- $data['staff_num'] = $params['staff_num'];
- $data['name'] = $params['name'];
- $data['department'] = $params['department'];
- $data['post'] = $params['post'];
- $data['mine_id'] = $camera[0]->mine_id;
- $data['camera_id'] = $params['camera_id'];
- $data['camera_name'] = $camera[0]->camera_name;
- $data['unit_name'] = $unit[0]->title;
- if(isset($params['base64']) && $params['base64'] != null && $params['base64'] != ''){
- $data['base64'] = $params['base64'];
- }
- $data['start_time'] = date('Y-m-d').' '.$params['start_time'];
- // $data['start_time'] = date('Y-m-d').' '.$params['end_time'];
- $data['created_at'] = date('Y-m-d H:i:s');
- $data['updated_at'] = date('Y-m-d H:i:s');
- DB::table('camera_record')->insert($data);
- }
- }
- //摄像头访问记录列表
- public function cameraRecordList(Request $request){
- $params = $request->all();
- if (!isset($params['camera_id'])) {
- return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
- }
- $camera_record = DB::table('camera_record')->where('camera_id',$params['camera_id'])->where('deleted_at',null)->orderBy('created_at','desc')->limit(20)->get();
- return self::successResponse($camera_record);
- }
- //摄像头下拉列表
- public function cameraSelect(Request $request){
- $result = '<select style="width:99%;" class="form-control" name="camera"><option value="0">-选择摄像头-</option>';
- $mine_list = DB::table('mine_list')->where('parent_id',6356)->where('deleted_at',null)->get();
- if(count($mine_list) > 0){
- for($i=0;$i<count($mine_list);$i++){
- $camera_list = DB::table('camera_list')->where('mine_id',$mine_list[$i]->id)->where('is_show',1)->where('deleted_at',null)->get();
- if(count($camera_list) > 0){
- $result = $result . '<optgroup label="' . $mine_list[$i]->title . '">';
- for($j=0;$j<count($camera_list);$j++){
- $result = $result . '<option value="'.$camera_list[$j]->id.'">'.$camera_list[$j]->camera_name.'</option>';
- }
- $result = $result . '</optgroup>';
- }
- }
- }
- $result = $result . '</select>';
- return json_encode($result);
- }
- //摄像头信息
- public function cameraInfo(Request $request){
- $params = $request->all();
- $camera = DB::table('camera_list')->where('id',$params['camera_id'])->get();
- $result['id'] = $camera[0]->id;
- $result['camera_name'] = $camera[0]->camera_name;
- $result['camera_url'] = $camera[0]->camera_url;
- $result['camera_type'] = $camera[0]->camera_type;
- $result['cover_picture'] = $camera[0]->cover_picture;
- return $result;
- }
- //首頁信息
- public function taskHome(Request $request){
- $result = DB::connection('task_xixuan')->table('xx_area')->get();
- return $result;
- }
- }
|