Explorar o código

天地伟业摄像头同步到对应区域下

任敬轩 %!s(int64=3) %!d(string=hai) anos
pai
achega
1fbffd3520
Modificáronse 1 ficheiros con 55 adicións e 35 borrados
  1. 55 35
      app/Console/Commands/UpdateHkList.php

+ 55 - 35
app/Console/Commands/UpdateHkList.php

@@ -145,8 +145,8 @@ class UpdateHkList extends Command
                 CameraList::where('mine_id', $val->id)->where('index_code', '!=', NULL)->whereNotIn('index_code', $index_code_arr)->delete();
             }
         }
-        //同步天地伟业摄像头
-        //需要同步的矿区
+
+        //天地伟业需要同步的矿区
         $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')
@@ -156,41 +156,61 @@ class UpdateHkList extends Command
             ->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'   => $mine_list_ext[$i]->sOrgId,
-                        '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);
+                //矿区下所有区域
+                $mine_list = DB::table('mine_list')
+                    ->where('degree','like',$mine_list_ext[$i]->mine_id.'|%')
+                    ->where('index_code','!=',null)->get();
+                foreach($mine_list as $k=>$v){
+                    Input::replace(
+                        [
+                            'parentOrgIds'   => $v->index_code,
+                            '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',
+                        ]
+                    );
+                    //获取区域下的子区域
+                    $tdwy = new TdwyController();
+                    $region = $tdwy->getRegionByOrgId();
+                    //获取最底层区域摄像头列表
+                    if (empty($region['content'])) {
+                        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'   => $v->index_code,
+                                'ip'       => $mine_list_ext[$i]->ip,
+                                'port'     => $mine_list_ext[$i]->port,
+                            ]
+                        );
+                        //获取设备列表
+                        $tdwy = new TdwyController();
+                        $device_list = $tdwy->queryDeviceList();
+                        //删除区域下所有摄像头
+                        DB::table('camera_list')->where('mine_id',$v->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'       => $v->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);
+                                }
+                            }
                         }
                     }
                 }