Browse Source

Merge branch 'master' of http://git.jieweizhineng.com/ushio/video_system

qiuzijian 3 years ago
parent
commit
9bbc610fbd

+ 3 - 1
Modules/Admin/Http/Controllers/BaseController.php

@@ -190,8 +190,10 @@ class BaseController extends Controller
         $data['primaryKey'] = $fromObj->primaryKey;
         $data['footBtns']   = $fromObj->footBtns;
         $data['colWidth']   = $fromObj->colWidth;
-        if($data['path'] == '/admin/camera/list/add'){
+        if(strpos($data['path'],'camera') !== false){
             return $this->view('camera::camera_add', $data);
+        }elseif(strpos($data['path'],'mine') !== false){//path包含mine
+            return $this->view('camera::mine_add', $data);
         }else{
             return $this->view('admin::component.template_from', $data);
         }

+ 55 - 31
Modules/Camera/Resources/views/camera_add.blade.php

@@ -72,6 +72,9 @@
 <form class="layui-form" id="form-unify" method="post" action="{{ $path ?? '' }}" style="padding:20px;">
     @csrf
     <h2 class="uk-modal-title">{{ $fromTitle }}</h2>
+    @if(isset($item[$primaryKey]))
+        <input type="hidden" name="{{ $primaryKey }}" value="{{ $item[$primaryKey] }}">
+    @endif
     <br>
     @foreach($columns as $key => $column)
         @switch($column['type'])
@@ -97,23 +100,23 @@
     <div class="layui-form-item">
         <label class="layui-form-label">摄像头名称</label>
         <div class="layui-input-block">
-            <input class="layui-input" type="text" placeholder="请输入摄像头名称" name="camera_name"/>
+            <input class="layui-input" type="text" placeholder="请输入摄像头名称" name="camera_name" value="{{ $item['camera_name'] ?? (old('camera_name') ?? ($column['default'] ?? '')) }}"/>
         </div>
     </div>
 
     <div class="layui-form-item">
         <label class="layui-form-label">摄像头类型</label>
         <div class="layui-input-block">
-            <?php /*dd($columns);exit;*/?>
             <select name="camera_type">
-                <option value="0">无</option>
-                @foreach($columns['camera_type']['options'] as $k=>$v)
-                    @if($k == 1 && count($columns['camera_type']['options']) > 0)
-                        <option value="{{ $k }}" selected>{{ $v }}</option>
-                    @else
-                        <option value="{{ $k }}">{{ $v }}</option>
-                    @endif
-                @endforeach
+                <option value="0" @if(!isset($item)) selected @endif>无</option>
+                @if(count($columns['camera_type']['options']) > 0)
+                    @foreach($columns['camera_type']['options'] as $k => $col)
+                        <option value="{{ $k }}"
+                                @if($columns['camera_type']['default'] == $k || (isset($item['camera_type']) && $item['camera_type'] == $k)) selected @endif>
+                            {{ $col }}
+                        </option>
+                    @endforeach
+                @endif
             </select>
         </div>
     </div>
@@ -122,14 +125,15 @@
         <label class="layui-form-label">摄像头来源</label>
         <div class="layui-input-block">
             <select name="camera_source" id="camera_source" lay-filter="camera_source">
-                <option value="0">无</option>
-                @foreach($columns['camera_source']['options'] as $k=>$v)
-                    @if($k == 1 && count($columns['camera_source']['options']) > 0)
-                        <option value="{{ $k }}" selected>{{ $v }}</option>
-                    @else
-                        <option value="{{ $k }}">{{ $v }}</option>
-                    @endif
-                @endforeach
+                <option value="0" @if(!isset($item)) selected @endif>无</option>
+                @if(count($columns['camera_source']['options']) > 0)
+                    @foreach($columns['camera_source']['options'] as $k => $col)
+                        <option value="{{ $k }}"
+                                @if($columns['camera_source']['default'] == $k || (isset($item['camera_source']) && $item['camera_source'] == $k)) selected @endif>
+                            {{ $col }}
+                        </option>
+                    @endforeach
+                @endif
             </select>
         </div>
     </div>
@@ -137,12 +141,13 @@
     <div class="layui-form-item">
         <div class="layui-form-label">录像机品牌</div>
         <div class="layui-input-block">
-            @foreach($columns['video_recorder']['options'] as $k => $v)
-                @if($k == 1 && count($columns['video_recorder']['options']) > 0)
-                    <label><input type="radio" name="video_recorder" value="{{ $k }}" checked title="{{ $v }}"/></label>
-                @else
-                    <label><input type="radio" name="video_recorder" value="{{ $k }}" title="{{ $v }}"/></label>
-                @endif
+            @foreach($columns['video_recorder']['options'] as $k => $col)
+                <label><input type="radio" name="video_recorder" value="{{ $k }}"
+                              @if((isset($item['video_recorder']) && $item['video_recorder'] == $k) ||
+                              old('video_recorder') === $k ||
+                              (isset($columns['video_recorder']['default']) && $columns['video_recorder']['default'] === $k)) checked
+                              @endif title="{{ $col }}"/>
+                </label>
             @endforeach
         </div>
     </div>
@@ -150,42 +155,42 @@
     <div class="layui-form-item" id="camera_url">
         <label class="layui-form-label">摄像头链接</label>
         <div class="layui-input-block">
-            <input class="layui-input" type="text" placeholder="请输入摄像头链接" name="camera_url"/>
+            <input class="layui-input" type="text" placeholder="请输入摄像头链接" name="camera_url" value="{{ $item['camera_url'] ?? (old('camera_url') ?? ($column['default'] ?? '')) }}"/>
         </div>
     </div>
 
     <div class="layui-form-item" id="user_name">
         <label class="layui-form-label">用户名</label>
         <div class="layui-input-block">
-            <input class="layui-input" type="text" placeholder="请输入用户名" name="user_name"/>
+            <input class="layui-input" type="text" placeholder="请输入用户名" name="user_name" value="{{ $item['user_name'] ?? (old('user_name') ?? ($column['default'] ?? '')) }}"/>
         </div>
     </div>
 
     <div class="layui-form-item" id="password">
         <label class="layui-form-label">密码</label>
         <div class="layui-input-block">
-            <input class="layui-input" type="text" placeholder="请输入密码" name="password"/>
+            <input class="layui-input" type="text" placeholder="请输入密码" name="password" value="{{ $item['password'] ?? (old('password') ?? ($column['default'] ?? '')) }}"/>
         </div>
     </div>
 
     <div class="layui-form-item" id="ip">
         <label class="layui-form-label">ip地址</label>
         <div class="layui-input-block">
-            <input class="layui-input" type="text" placeholder="请输入ip地址" name="ip"/>
+            <input class="layui-input" type="text" placeholder="请输入ip地址" name="ip" value="{{ $item['ip'] ?? (old('ip') ?? ($column['default'] ?? '')) }}"/>
         </div>
     </div>
 
     <div class="layui-form-item" id="port">
         <label class="layui-form-label">端口</label>
         <div class="layui-input-block">
-            <input class="layui-input" type="text" placeholder="请输入端口" name="port"/>
+            <input class="layui-input" type="text" placeholder="请输入端口" name="port" value="{{ $item['port'] ?? (old('port') ?? ($column['default'] ?? '')) }}"/>
         </div>
     </div>
 
     <div class="layui-form-item" id="com_number">
         <label class="layui-form-label">通道号</label>
         <div class="layui-input-block">
-            <input class="layui-input" type="text" placeholder="请输入通道号" name="com_number"/>
+            <input class="layui-input" type="text" placeholder="请输入通道号" name="com_number" value="{{ $item['com_number'] ?? (old('com_number') ?? ($column['default'] ?? '')) }}"/>
         </div>
     </div>
 
@@ -209,9 +214,28 @@
     <div class="layui-form-item">
         <label class="layui-form-label">排序</label>
         <div class="layui-input-block">
-            <input class="layui-input" type="text" placeholder="请输入排序" name="sort" value="0"/>
+            <input class="layui-input" type="text" placeholder="请输入排序" name="sort" value="{{ $item['sort'] ?? (old('sort') ?? ($columns['sort']['default'] ?? '')) }}"/>
+        </div>
+    </div>
+
+    @if(isset($columns['surface_id']))
+    <div class="layui-form-item">
+        <label class="layui-form-label">所属矿区区域</label>
+        <div class="layui-input-block">
+            <?php /*dd($columns);exit;*/?>
+            <select name="surface_id">
+                <option value="0">无</option>
+                @foreach($columns['surface_id']['options'] as $k=>$v)
+                    @if($k == 1 && count($columns['surface_id']['options']) > 0)
+                        <option value="{{ $k }}" selected>{{ $v }}</option>
+                    @else
+                        <option value="{{ $k }}">{{ $v }}</option>
+                    @endif
+                @endforeach
+            </select>
         </div>
     </div>
+    @endif
 
     @foreach($columns as $key => $column)
         @switch($column['type'])

File diff suppressed because it is too large
+ 1082 - 0
Modules/Camera/Resources/views/mine_add.blade.php


+ 3 - 2
Modules/Mine/Enum/MineEnum.php

@@ -11,6 +11,7 @@ namespace Modules\Mine\Enum;
 class MineEnum
 {
     //是否使用海康视频服务器
-    const IS_HAK_NO  = 0;  //否
-    const IS_HAK_YES = 1;  //是
+    const IS_HAK_NO  = 0;  //其他
+    const IS_HAK_YES = 1;  //海康
+    const IS_HAK_TD = 2;  //天地伟业
 }

+ 32 - 11
Modules/Mine/Http/Controllers/MineController.php

@@ -31,15 +31,14 @@ class MineController extends BaseController
         $this->menusActive[1] = 'adminMineList';
 
         $list = MineServices::getAdminMineList();
-
         $tableObj = new TreeAuxiliary('mine/list', $list);
         $tableObj->column('title', '矿区单位名称');
         $tableObj->column('sort', '排序');
         $tableObj->column('ip', 'ip');
         $tableObj->column('port', 'port');
-        $tableObj->column('key', '请求key');
-        $tableObj->column('secret', '请求secret');
-        $tableObj->column('is_hak', '是否使用海康视频服务器');
+        $tableObj->column('key', '请求key(登录名)');
+        $tableObj->column('secret', '请求secret(密码)');
+        $tableObj->column('is_hak', '视频服务器类型');
         return $this->tree($tableObj);
     }
 
@@ -54,8 +53,8 @@ class MineController extends BaseController
         $formObj->tree_select('parent_id', '父级矿区单位', $titleList);
         $formObj->input('title', '矿区单位名称');
         $formObj->input('sort', '排序', 1);
-        $formObj->radio('is_hak', '是否使用海康视频服务器', [MineEnum::IS_HAK_NO => '否', MineEnum::IS_HAK_YES => '是'], 0);
-        $formObj->input('ip', 'id地址');
+        $formObj->radio('is_hak', '视频服务器类型', [MineEnum::IS_HAK_YES => '海康',MineEnum::IS_HAK_TD => '天地伟业',MineEnum::IS_HAK_NO => '其它', ], 0);
+        $formObj->input('ip', 'ip地址');
         $formObj->input('port', '端口');
         $formObj->input('key', '请求key');
         $formObj->input('secret', '请求secret');
@@ -70,13 +69,12 @@ class MineController extends BaseController
         if (!$request->input('title')) {
             return $this->error(1, '请输入矿区单位名称');
         }
-
         $mineService = new MineServices();
         $mineService->initMineList();
         $result = $mineService->add($request->all());
         $mine_id = $result->id;
 
-        if ($request->input('is_hak') == MineEnum::IS_HAK_YES) {
+        if ($request->input('is_hak') == MineEnum::IS_HAK_YES) {//海康
             if (!$request->input('ip') || !$request->input('port')
                 || !$request->input('key') || !$request->input('secret')
             ) {
@@ -85,6 +83,19 @@ class MineController extends BaseController
 
             MineServices::insertMineListExt($mine_id, $request->all());
         }
+
+        if ($request->input('is_hak') == MineEnum::IS_HAK_TD) {//天地伟业
+//            return $this->error(1, $request->input('parent_id'));
+            if($request->input('parent_id')==0){
+                if (!$request->input('ip') || !$request->input('port')
+                    || !$request->input('key') || !$request->input('secret')
+                ) {
+                    return $this->error(1, '请输入连接视频服务器必传参数');
+                }
+            }
+            MineServices::insertMineListExt($mine_id, $request->all());
+        }
+
         return $this->redirect('admin/mine/list');
     }
 
@@ -119,17 +130,15 @@ class MineController extends BaseController
         if (!$request->input('id')) {
             return $this->error(1, '缺少必要参数');
         }
-
         $mineService = new MineServices();
         $mineService->initMineList();
 
         if ($request->input('id') == $request->input('parent_id')) {
             return $this->error(1, '不能选择自己为父级标题');
         }
-
         $mineService->edit($request->all());
 
-        if ($request->input('is_hak') == MineEnum::IS_HAK_YES) {
+        if ($request->input('is_hak') == MineEnum::IS_HAK_YES) {//海康
             if (!$request->input('ip') || !$request->input('port')
                 || !$request->input('key') || !$request->input('secret')
             ) {
@@ -139,6 +148,18 @@ class MineController extends BaseController
             MineServices::editMineListExt($request->input('id'), $request->all());
         }
 
+        if ($request->input('is_hak') == MineEnum::IS_HAK_TD) {//天地伟业
+//            return $this->error(1, $request->input('parent_id'));
+            if($request->input('parent_id')==0){
+                if (!$request->input('ip') || !$request->input('port')
+                    || !$request->input('key') || !$request->input('secret')
+                ) {
+                    return $this->error(1, '请输入连接视频服务器必传参数');
+                }
+            }
+            MineServices::editMineListExt($request->input('id'), $request->all());
+        }
+
         return $this->redirect('admin/mine/list');
     }
 

+ 10 - 2
Modules/Mine/Services/MineServices.php

@@ -223,17 +223,25 @@ class MineServices{
                 $arr[$num]          = $val;
                 $query = MineListExt::where('mine_id', $val['id'])->first();
                 if ($query) {
+                    $res = '';
+                    if($query->is_hak == MineEnum::IS_HAK_YES){
+                        $res = '海康';
+                    }elseif($query->is_hak == MineEnum::IS_HAK_TD){
+                        $res = '天地伟业';
+                    }elseif($query->is_hak == MineEnum::IS_HAK_NO){
+                        $res = '其它';
+                    }
                     $arr[$num]['ip']     = $query->ip;
                     $arr[$num]['port']   = $query->port;
                     $arr[$num]['key']    = $query->key;
                     $arr[$num]['secret'] = $query->secret;
-                    $arr[$num]['is_hak'] = $query->is_hak == MineEnum::IS_HAK_YES ? '是' : '否';
+                    $arr[$num]['is_hak'] = $res;
                 } else {
                     $arr[$num]['ip']     = '';
                     $arr[$num]['port']   = '';
                     $arr[$num]['key']    = '';
                     $arr[$num]['secret'] = '';
-                    $arr[$num]['is_hak'] = '';
+                    $arr[$num]['is_hak'] = '其它';
                 }
                 $arr[$num]['child'] = self::sortMineListExt($mine_list, $val['id']);
                 if (count($arr[$num]['child']) == 0) {

+ 48 - 87
app/Console/Commands/UpdateHkList.php

@@ -6,6 +6,7 @@ use Illuminate\Console\Command;
 use Modules\Camera\Entities\CameraList;
 use Modules\Camera\Enum\CameraEnum;
 use Modules\Camera\Services\CameraServices;
+use Modules\Camera\Http\Controllers\Api\TdwyController;
 use Modules\Mine\Entities\MineList;
 use Modules\Mine\Entities\MineListExt;
 use Modules\Mine\Services\MineServices;
@@ -110,96 +111,56 @@ class UpdateHkList extends Command
             }
         }
         //同步天地伟业摄像头
-        //登录
-        // $url = 'http://10.71.177.215:7000/pangu/sdkServer/user/loginUser';
-        // $format = 'post';
-        // $data = array('username'=>'admin1','password'=>'Td123..','sysId'=>'PG');
-        // $res =  $this->httpRequest($url,$format,$data);
-        //设备列表
-        //通过接口获取设备
-         $url = 'http://10.71.177.215:7000/pangu/sdkServer/device/queryDeviceList';
-         $format = 'post';
-         $data = array('sOrgId'=>'21dsec1d-4a27-48d1-we4c5-e44fcc23110','iDeviceTypes'=>'5','rootCodes'=>'BH-0001','isOrgTree'=>true,'needPage'=>true,'pageSize'=>50,'currentPage'=>1);
-         $device_list =  $this->httpRequest($url,$format,$data);
-         //获取金家渠mine_id
-         $mine_list0 = DB::table('mine_list')->where('title', 'like', '%金家渠煤矿%')->get();
-         if(sizeof($mine_list0)>0){
-             $mine_id0 = $mine_list0[0]->id;
-         }else{
-             $res0['parent_id'] = 0;
-             $res0['title'] = '金家渠煤矿';
-             $res0['slug'] = 'JinJiaQuMeiKuang';
-             $res0['created_at'] = date('y-m-d h:i:s',time());
-             $res0['updated_at'] = date('y-m-d h:i:s',time());
-             DB::table('mine_list')->insert($res0);
-             $mine_id0 = DB::getPdo()->lastInsertId();
-         }
-
-        $mine_list = DB::table('mine_list')->where('title', 'like', '%金家渠地面%')->get();
-        if(sizeof($mine_list)>0){
-            $mine_id = $mine_list[0]->id;
-        }else{
-            $res['parent_id'] = $mine_id0;
-            $res['title'] = '金家渠地面';
-            $res['slug'] = 'JinJiaQuDiMian';
-            $res['created_at'] = date('y-m-d h:i:s',time());
-            $res['updated_at'] = date('y-m-d h:i:s',time());
-            DB::table('mine_list')->insert($res);
-            $mine_id = DB::getPdo()->lastInsertId();
-        }
-
-         if(sizeof($device_list['content'])>0){
-             for($i=0;$i<sizeof($device_list['content']);$i++){
-                if(isset($device_list['content'][$i]['sId'])/* && $device_list['content'][$i]['onlineStatus']==1*/){
-                    //rtsp视频流
-                     $url = 'http://10.71.177.215:7000/pangu/sdkServer/videoStreaming/getRtspById';
-                     $format = 'post';
-                     $data = array('sId'=>$device_list['content'][$i]['sId'],'ip'=>'10.71.177.215','port'=>554,'type'=>0);
-                     $camera_url =  $this->httpRequest($url,$format,$data);
-                    $params = [
-                        'mine_id'       => $mine_id,
-                        'ip'            => '10.71.177.215',
-                        'port'          => 1554,
-//                        'user_name'     => 'admin1',
-//                        'password'      => 'Td123..',
-//                        'camera_url'    => $camera_url['content'][0]['url'],
-                        'revert_id'     => CameraEnum::CAMERA_DEFAULT_REVERT_ID,
-                        'sort'          => sizeof($device_list['content']) - $i,
-                        'camera_name'   => $device_list['content'][$i]['sName'],
-                        'camera_source' => CameraEnum::CAMERA_SOURCE_2,
-                        'index_code'    => $device_list['content'][$i]['sId'],
-                        'video_recorder'=> CameraEnum::VIDEO_RECORDER_TD,
-                    ];
-                    CameraList::updateOrCreate(['index_code' => $device_list['content'][$i]['sId']], $params);
+        //需要同步的矿区
+        $mine_list_ext = DB::table('mine_list_ext')
+            ->select('mine_list_ext.*','mine_list.parent_id')
+            ->leftJoin('mine_list','mine_list.id','=','mine_list_ext.mine_id')
+            ->where('mine_list.parent_id',0)
+            ->where('mine_list_ext.is_hak',2)
+            ->where('mine_list_ext.ip','!=','')
+            ->where('mine_list_ext.port','!=','')
+            ->where('mine_list_ext.key','!=','')
+            ->where('mine_list_ext.secret','!=','')->get();
+        if(sizeof($mine_list_ext)>0){
+            for($i=0;$i<sizeof($mine_list_ext);$i++){//循环同步所有天地伟业矿区
+                Input::replace(
+                    [
+                        'url'      => $mine_list_ext[$i]->ip.":".$mine_list_ext[$i]->port,
+                        'username' => $mine_list_ext[$i]->key,
+                        'password' => $mine_list_ext[$i]->secret,
+                        'sysId'     => 'PG',
+                        'sOrgId'   => "21dsec1d-4a27-48d1-we4c5-e44fcc23110",
+                        'ip'       => $mine_list_ext[$i]->ip,
+                        'port'     => $mine_list_ext[$i]->port,
+                    ]
+                );
+                //获取设备列表
+                $tdwy = new TdwyController();
+                $device_list = $tdwy->queryDeviceList();
+                //获取需要同步到的区域
+                $mine_id = DB::table('mine_list')->where('parent_id',$mine_list_ext[$i]->mine_id)->where('deleted_at',null)->orderBy('sort','desc')->first()->id;
+                //先删除需要同步区域下的所有摄像头
+                DB::table('camera_list')->where('mine_id',$mine_id)->delete();
+                if(sizeof($device_list['content'])>0){
+                    for($j=0;$j<sizeof($device_list['content']);$j++){//循环添加所有摄像头
+                        if(isset($device_list['content'][$j]['sId'])){//筛选有sId的摄像头
+                            $params = [
+                                'mine_id'       => $mine_id,
+                                'ip'            => $mine_list_ext[$i]->ip,
+                                'port'          => 1554,
+                                'revert_id'     => CameraEnum::CAMERA_DEFAULT_REVERT_ID,
+                                'sort'          => sizeof($device_list['content']) - $j,
+                                'camera_name'   => $device_list['content'][$j]['sName'],
+                                'camera_source' => CameraEnum::CAMERA_SOURCE_2,
+                                'index_code'    => $device_list['content'][$j]['sId'],
+                                'video_recorder'=> CameraEnum::VIDEO_RECORDER_TD,
+                            ];
+                            CameraList::updateOrCreate(['index_code' => $device_list['content'][$j]['sId']], $params);
+                        }
+                    }
                 }
-             }
-         }
-        //删除不存在的摄像头
-//        CameraList::where('mine_id', $mine_id)->where('onlineStatus',0)->delete();
-
-    }
-
-    public static function httpRequest($url, $format = 'get', $data = null){
-        //设置头信息
-        $headerArray =array("Content-type:application/json;","Accept:application/json","token:M3sWWDyqHsw3jmPP2VfIhd/z8KnV9gvJs2C4s/vbAfPAPuNUEmniC7OWtbFDSmWcm38LwUnZe2cuaClRsBegeQ==");
-        $curl=curl_init();
-        curl_setopt($curl, CURLOPT_URL, $url);
-        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
-        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
-        if ($format == 'post') {
-            //post传值设置post传参
-            curl_setopt($curl, CURLOPT_POST, 1);
-            if ($data) {
-                $data = json_encode($data);
-                curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
             }
         }
-        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
-        curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray);
-        $data=json_decode(curl_exec($curl), true);
-        curl_close($curl);
-        //返回接口返回数据
-        return $data;
     }
 
     //转义摄像头名称中的特殊字符