فهرست منبع

摄像头同步逻辑修改

任敬轩 2 سال پیش
والد
کامیت
e5a5f567c1

+ 18 - 8
Modules/Camera/Http/Controllers/Api/HaiKangController.php

@@ -208,25 +208,35 @@ class HaiKangController extends BaseController
         return $result;
     }
 
-    //根据区域编号获取下级监控点列表
-    public function getMineInfo()
+    //查询区域列表v2
+    public function getMineInfo($mine_name)
     {
         if (!Input::has('indexCode')) {
             return $this->error(1, '缺少必要参数');
         }
-        $url = $this->artemis . '/api/resource/v1/regions/regionIndexCode/cameras';
+        $url = $this->artemis . '/api/irds/v2/region/nodesByParams';
         //请求参数
         $params                    = [];
-        $params['regionIndexCode'] = Input::get('indexCode');
-//        $params['pageNo']          = $request->has('pageNo') ? intval($request->input('pageNo')) : 1;
-//        $params['pageSize']        = $request->has('pageSize') ? intval($request->input('pageSize')) : 1000;
+        $params['resourceType'] = 'region';
         $params['pageNo']   = 1;
         $params['pageSize'] = 1000;
-        $this->sign         = $this->get_sign($url);
+        $params['regionName'] = $mine_name;
 
+        $this->sign         = $this->get_sign($url);
         $result = $this->curlPost($this->pre_url . $url, json_encode($params));
         $result = json_decode($result, true);
-        return $result;
+
+        if(isset($result['data']['list'][0]['updateTime'])){
+            $mine_update_time = strtotime($result['data']['list'][0]['updateTime']);
+            $mine_update_time = number_format((time() - $mine_update_time)/(60*60*24),2);
+            if($mine_update_time < 1){
+                return true;
+            }else{
+                return false;
+            }
+        }else{
+            return false;
+        }
     }
 
     public function getCameraStatus($indexCode){

+ 15 - 2
Modules/Camera/Services/CameraServices.php

@@ -1521,6 +1521,8 @@ class CameraServices
 
         $query = MineListExt::where('mine_id', $parent_id)->first();
 
+        $degree = DB::table('mine_list')->where('index_code',$mine_id)->value('degree');
+
         $list = [];
 
         Input::replace(
@@ -1528,13 +1530,24 @@ class CameraServices
                 'url'       => trim($query->ip, '/') . ':' . $query->port,
                 'key'       => $query->key,
                 'secret'    => $query->secret,
-                'indexCode' => $mine_id,
+                'indexCode' => $mine_id
             ]
         );
         $haikang   = new HaiKangController();
         $result_hk = $haikang->getCamerasList();
 
-        $result['mine'] = $haikang->getMineInfo();
+        $degree_list = explode('|',$degree);
+
+        $result['is_update'] = false;
+
+        if(count($degree_list) > 0){
+            foreach($degree_list as $k => $v){
+                $mine_name = DB::table('mine_list')->where('id',$v)->value('title');
+                if($haikang->getMineInfo($mine_name) == true){
+                    $result['is_update'] = true;
+                }
+            }
+        }
 
         if (isset($result_hk['data']['list'])) {
             foreach ($result_hk['data']['list'] as $key => $val) {

+ 15 - 12
app/Console/Commands/UpdateHkList.php

@@ -233,19 +233,22 @@ class UpdateHkList extends Command
                     $update_time = strtotime($v['updateTime']);
                     $update_time = number_format((time() - $update_time)/(60*60*24),2);
 
-                    if($update_time < 100){
-                        $params = [
-                            'mine_id'       => $val->id,
-                            'camera_name'   => $this->transformCameraName($v['camera_name']),
-                            'index_code'    => $v['camera_id'],
-                            'revert_id'     => CameraEnum::CAMERA_DEFAULT_REVERT_ID,
-                            'camera_source' => CameraEnum::CAMERA_SOURCE_2,
-                            'ip'            => $ip,
-                            'port'          => $port,
-                            'com_number'    => $com_number,
-                            //'sort'          => $arr_count - $k,
+                    $params = [
+                        'mine_id'       => $val->id,
+                        'camera_name'   => $this->transformCameraName($v['camera_name']),
+                        'index_code'    => $v['camera_id'],
+                        'revert_id'     => CameraEnum::CAMERA_DEFAULT_REVERT_ID,
+                        'camera_source' => CameraEnum::CAMERA_SOURCE_2,
+                        'ip'            => $ip,
+                        'port'          => $port,
+                        'com_number'    => $com_number,
+                        //'sort'          => $arr_count - $k,
 //                        'camera_status'        => $v['camera_status'],
-                        ];
+                    ];
+
+                    if($result['is_update'] == true){
+                        CameraList::updateOrCreate(['index_code' => $v['camera_id']], $params);
+                    }elseif($update_time < 1){
                         CameraList::updateOrCreate(['index_code' => $v['camera_id']], $params);
                     }