Explorar o código

添加内网服务器维护摄像头功能

qiuzijian %!s(int64=3) %!d(string=hai) anos
pai
achega
2b9b0d7f00

+ 91 - 110
.idea/workspace.xml

@@ -2,7 +2,9 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="b5beace6-e4f4-419b-8299-c67e17af5998" name="Default Changelist" comment="">
-      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
@@ -19,73 +21,61 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="325">
-              <caret line="24" column="10" selection-start-line="24" selection-start-column="10" selection-end-line="24" selection-end-column="10" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="621">
-              <caret line="74" column="45" selection-start-line="74" selection-start-column="45" selection-end-line="74" selection-end-column="45" />
-              <folding>
-                <element signature="e#141#162#0#PHP" expanded="true" />
-              </folding>
+            <state relative-caret-position="676">
+              <caret line="81" column="22" selection-start-line="81" selection-start-column="10" selection-end-line="81" selection-end-column="22" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php">
+        <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="387">
-              <caret line="750" column="233" selection-start-line="750" selection-start-column="233" selection-end-line="750" selection-end-column="233" />
+            <state relative-caret-position="470">
+              <caret line="160" column="41" lean-forward="true" selection-start-line="160" selection-start-column="41" selection-end-line="160" selection-end-column="41" />
               <folding>
-                <element signature="e#129#150#0#PHP" expanded="true" />
+                <element signature="e#51#107#0#PHP" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/.env">
+        <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="614">
-              <caret line="46" column="16" selection-start-line="46" selection-end-line="46" selection-end-column="16" />
+            <state relative-caret-position="310">
+              <caret line="79" column="76" selection-start-line="79" selection-start-column="66" selection-end-line="79" selection-end-column="76" />
+              <folding>
+                <element signature="e#141#162#0#PHP" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Modules/Mine/Http/Controllers/Api/MineApiController.php">
+        <entry file="file://$PROJECT_DIR$/Modules/Admin/Http/Controllers/BaseController.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="840">
-              <caret line="45" column="42" selection-start-line="45" selection-start-column="33" selection-end-line="45" selection-end-column="42" />
-              <folding>
-                <element signature="e#139#160#0#PHP" expanded="true" />
-              </folding>
+            <state relative-caret-position="234">
+              <caret line="192" column="58" selection-start-line="192" selection-start-column="45" selection-end-line="192" selection-end-column="58" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Modules/Mine/Routes/api.php">
+        <entry file="file://$PROJECT_DIR$/Modules/Admin/Resources/views/component/template_from.blade.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="420">
-              <caret line="20" column="28" selection-start-line="20" selection-start-column="16" selection-end-line="20" selection-end-column="28" />
+            <state relative-caret-position="-15160">
+              <caret line="202" column="39" selection-start-line="202" selection-start-column="34" selection-end-line="202" selection-end-column="39" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Modules/Mine/Services/MineServices.php">
+        <entry file="file://$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="253">
-              <caret line="67" column="27" selection-start-line="67" selection-start-column="27" selection-end-line="67" selection-end-column="27" />
+            <state relative-caret-position="446">
+              <caret line="48" column="9" selection-start-line="48" selection-start-column="9" selection-end-line="48" selection-end-column="9" />
               <folding>
-                <element signature="e#127#148#0#PHP" expanded="true" />
+                <element signature="e#129#150#0#PHP" expanded="true" />
               </folding>
             </state>
           </provider>
@@ -95,8 +85,6 @@
   </component>
   <component name="FindInProjectRecents">
     <findStrings>
-      <find>curl</find>
-      <find>strtolow</find>
       <find>MeiKuang</find>
       <find>/api/resource/v1/encodeDevice/search</find>
       <find>mkdir</find>
@@ -125,6 +113,8 @@
       <find>exec</find>
       <find>VIDEO_SYSTEM_URL</find>
       <find>video_system</find>
+      <find>camera_url</find>
+      <find>CameraEnum::CAMERA_SOURCE_3</find>
     </findStrings>
   </component>
   <component name="Git.Settings">
@@ -174,16 +164,16 @@
         <option value="$PROJECT_DIR$/Modules/Mine/Http/Controllers/SurfaceController.php" />
         <option value="$PROJECT_DIR$/Modules/Mine/Http/Controllers/Api/MineApiController.php" />
         <option value="$PROJECT_DIR$/Modules/Mine/Services/SurfaceServices.php" />
-        <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php" />
         <option value="$PROJECT_DIR$/Modules/Admin/Database/Seeders/AdminDatabaseSeeder.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/HaiKangController.php" />
-        <option value="$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php" />
         <option value="$PROJECT_DIR$/app/Console/Commands/UpdateHkList.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Entities/CameraList.php" />
-        <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php" />
         <option value="$PROJECT_DIR$/app/Http/Controllers/TestsController.php" />
         <option value="$PROJECT_DIR$/.env" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php" />
       </list>
     </option>
   </component>
@@ -527,7 +517,7 @@
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="322379000" />
+    <option name="totallyTimeSpent" value="325176000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="0" y="0" width="1440" height="900" extended-state="0" />
@@ -558,30 +548,6 @@
     <option name="version" value="1" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/Modules/Mine/Database/Migrations/2021_05_19_033907_add_field_to_mine_list.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="294">
-          <caret line="16" column="74" lean-forward="true" selection-start-line="16" selection-start-column="74" selection-end-line="16" selection-end-column="74" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Jobs/CameraListExcel.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="524">
-          <caret line="143" column="44" selection-start-line="143" selection-start-column="8" selection-end-line="143" selection-end-column="44" />
-          <folding>
-            <element signature="e#39#68#0#PHP" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_05_19_070340_add_field_to_camera_list_05191503.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="550">
-          <caret line="29" column="35" selection-start-line="29" selection-start-column="35" selection-end-line="29" selection-end-column="35" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_04_23_032650_update_camera_list_table_fields.php">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="294">
@@ -589,13 +555,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_04_20_082221_create_camera_list_table.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="357">
-          <caret line="19" column="66" lean-forward="true" selection-start-line="19" selection-start-column="12" selection-end-line="19" selection-end-column="66" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Support/Facades/Cache.php">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="210">
@@ -627,9 +586,7 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_05_26_020632_add_field_to_camera_list_0526.php">
-      <provider selected="true" editor-type-id="text-editor" />
-    </entry>
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_05_26_020632_add_field_to_camera_list_0526.php" />
     <entry file="file://$PROJECT_DIR$/Modules/Mine/Entities/MineListExt.php">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="21">
@@ -661,20 +618,6 @@
     <entry file="file://$PROJECT_DIR$/storage/logs/laravel-2021-05-31.log">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Admin/Http/Controllers/BaseController.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="491">
-          <caret line="192" column="58" selection-start-line="192" selection-start-column="45" selection-end-line="192" selection-end-column="58" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Admin/Resources/views/component/template_from.blade.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="272">
-          <caret line="202" column="39" selection-start-line="202" selection-start-column="34" selection-end-line="202" selection-end-column="39" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/Modules/Mine/Entities/WorkingSurface.php">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="252">
@@ -775,16 +718,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="421">
-          <caret line="256" column="42" lean-forward="true" selection-start-line="256" selection-start-column="42" selection-end-line="256" selection-end-column="42" />
-          <folding>
-            <element signature="e#51#107#0#PHP" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/Modules/Admin/Routes/api.php">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
@@ -849,13 +782,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="325">
-          <caret line="24" column="10" selection-start-line="24" selection-start-column="10" selection-end-line="24" selection-end-column="10" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/app/Console/Commands/UpdateHkList.php">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="141">
@@ -917,10 +843,48 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/storage/logs/laravel-2021-07-06.log">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="21">
+          <caret line="1" selection-start-line="1" selection-end-line="1" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_04_20_082221_create_camera_list_table.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="530">
+          <caret line="29" lean-forward="true" selection-start-line="29" selection-end-line="29" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_05_19_070340_add_field_to_camera_list_05191503.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="551">
+          <caret line="29" column="35" selection-start-line="29" selection-start-column="35" selection-end-line="29" selection-end-column="35" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_05_11_092132_add_camera_type_to_camera_list.php">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Modules/Admin/Resources/views/component/template_from.blade.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-15160">
+          <caret line="202" column="39" selection-start-line="202" selection-start-column="34" selection-end-line="202" selection-end-column="39" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Modules/Admin/Http/Controllers/BaseController.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="234">
+          <caret line="192" column="58" selection-start-line="192" selection-start-column="45" selection-end-line="192" selection-end-column="58" />
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="621">
-          <caret line="74" column="45" selection-start-line="74" selection-start-column="45" selection-end-line="74" selection-end-column="45" />
+        <state relative-caret-position="310">
+          <caret line="79" column="76" selection-start-line="79" selection-start-column="66" selection-end-line="79" selection-end-column="76" />
           <folding>
             <element signature="e#141#162#0#PHP" expanded="true" />
           </folding>
@@ -929,13 +893,30 @@
     </entry>
     <entry file="file://$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="387">
-          <caret line="750" column="233" selection-start-line="750" selection-start-column="233" selection-end-line="750" selection-end-column="233" />
+        <state relative-caret-position="446">
+          <caret line="48" column="9" selection-start-line="48" selection-start-column="9" selection-end-line="48" selection-end-column="9" />
           <folding>
             <element signature="e#129#150#0#PHP" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="676">
+          <caret line="81" column="22" selection-start-line="81" selection-start-column="10" selection-end-line="81" selection-end-column="22" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="470">
+          <caret line="160" column="41" lean-forward="true" selection-start-line="160" selection-start-column="41" selection-end-line="160" selection-end-column="41" />
+          <folding>
+            <element signature="e#51#107#0#PHP" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
   </component>
 </project>

+ 10 - 0
Modules/Camera/Enum/CameraEnum.php

@@ -57,6 +57,13 @@ class CameraEnum
     //摄像头来源
     const CAMERA_SOURCE_1 = 1;  //视频录像机
     const CAMERA_SOURCE_2 = 2;  //视频服务器
+    const CAMERA_SOURCE_3 = 3;  //内网服务器
+
+    const CAMERA_SOURCE_EXCHANGE = [
+        self::CAMERA_SOURCE_1 => '视频录像机',
+        self::CAMERA_SOURCE_2 => '视频服务器',
+        self::CAMERA_SOURCE_3 => '内网服务器',
+    ];
 
     //乐橙接口url
     const ACCESS_TOKEN_URL = 'https://openapi.lechange.cn:443/openapi/accessToken';  //获取access_token
@@ -70,4 +77,7 @@ class CameraEnum
 
     //海康摄像头默认端口
     const HAK_DEFAULT_PORT = '554';
+
+    //默认排序序号
+    const DEFAULT_SORT = 1;
 }

+ 8 - 0
Modules/Camera/Http/Controllers/Api/CameraApiController.php

@@ -65,6 +65,14 @@ class CameraApiController extends BaseController
             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');
 

+ 15 - 5
Modules/Camera/Http/Controllers/CameraController.php

@@ -152,12 +152,14 @@ class CameraController extends BaseController
         $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->input('camera_url', '摄像头链接');
         $formObj->input('user_name', '用户名');
         $formObj->input('password', '密码');
         $formObj->input('ip', 'ip地址');
         $formObj->input('port', '端口');
         $formObj->input('com_number', '通道号');
-        $formObj->input('sort', '排序');
+        $formObj->input('sort', '排序', CameraEnum::DEFAULT_SORT);
         $formObj->title = '添加请求链接';
         return $this->from($formObj);
     }
@@ -177,10 +179,12 @@ class CameraController extends BaseController
             return $this->error(1, '请输入摄像头名称');
         }
 
-        if (
-            !$request->input('ip') || !$request->input('port') || !$request->input('user_name')
-            || !$request->input('password') ||!$request->input('com_number')
-        ) {
+        if ($request->input('camera_source') == CameraEnum::CAMERA_SOURCE_3 && !$request->input('camera_url')) {
+            return $this->error(1, '请输入摄像头链接');
+        }
+
+        if ($request->input('camera_source') != CameraEnum::CAMERA_SOURCE_3 && (!$request->input('ip') || !$request->input('port') || !$request->input('user_name')
+            || !$request->input('password') ||!$request->input('com_number'))) {
             return $this->error(1, '请输入必填字段');
         }
 
@@ -221,6 +225,8 @@ class CameraController extends BaseController
         $formObj->tree_select('mine_id', '矿区单位', $titleList);
         $formObj->input('camera_name', '摄像头名称');
         $formObj->select('camera_type', '摄像头类型', CameraEnum::CAMERA_TYPE_EXCHANGE);
+        $formObj->select('camera_source', '摄像头来源', CameraEnum::CAMERA_SOURCE_EXCHANGE);
+        $formObj->input('camera_url', '摄像头链接');
         $formObj->input('user_name', '用户名');
         $formObj->input('password', '密码');
         $formObj->input('ip', 'ip地址');
@@ -247,6 +253,10 @@ class CameraController extends BaseController
             return $this->error(1, '请输入摄像头名称');
         }
 
+        if ($request->input('camera_source') == CameraEnum::CAMERA_SOURCE_3 && !$request->input('camera_url')) {
+            return $this->error(1, '请输入摄像头链接');
+        }
+
 //        if (
 //            !$request->input('ip') || !$request->input('port') || !$request->input('user_name')
 //            || !$request->input('password') ||!$request->input('com_number')

+ 46 - 13
Modules/Camera/Services/CameraServices.php

@@ -32,21 +32,27 @@ class CameraServices
         $result['msg']    = AdminEnum::RETURN_SUCCESS;
 
         //通过ip+端口+通道号作为唯一标识判断数据是否存在
-        $query = CameraList::where(
-            [
-                'ip'         => $params['ip'],
-                'port'       => $params['port'],
-                'com_number' => $params['com_number'],
-            ]
-        )->first();
+        if ($params['ip'] && $params['port'] && $params['com_number']) {
+            $query = CameraList::where(
+                [
+                    'ip'         => $params['ip'],
+                    'port'       => $params['port'],
+                    'com_number' => $params['com_number'],
+                ]
+            )->first();
 
-        if ($query) {
-            $result['status'] = false;
-            $result['msg']    = AdminEnum::RECORD_ALREADY_EXIST;
-            return $result;
+            if ($query) {
+                $result['status'] = false;
+                $result['msg']    = AdminEnum::RECORD_ALREADY_EXIST;
+                return $result;
+            }
         }
 
-        $camera_url = self::makeCameraUrl($params);
+        if ($params['camera_source'] == CameraEnum::CAMERA_SOURCE_3) {
+            $camera_url = $params['camera_url'];
+        } else {
+            $camera_url = self::makeCameraUrl($params);
+        }
 
         //入库动作
         $res = CameraList::insert(
@@ -96,7 +102,11 @@ class CameraServices
         $result['status'] = true;
         $result['msg']    = AdminEnum::RETURN_SUCCESS;
 
-        $camera_url = self::makeCameraUrl($params);
+        if ($params['camera_source'] == CameraEnum::CAMERA_SOURCE_3) {
+            $camera_url = $params['camera_url'];
+        } else {
+            $camera_url = self::makeCameraUrl($params);
+        }
 
         //判断记录是否存在
         $query = CameraList::find($params['id']);
@@ -780,4 +790,27 @@ class CameraServices
 
         return $result;
     }
+
+    //获取内网服务器摄像头播放地址
+    public static function getIntranetCameraUrl($camera_id)
+    {
+        $result['status'] = true;
+        $result['msg']    = ApiEnum::RETURN_SUCCESS;
+
+        $camera_url = CameraList::where('id', $camera_id)->value('camera_url');
+
+        if (!$camera_url) {
+            $result['status'] = false;
+            $result['msg']    = ApiEnum::NO_CAMERA_URL;
+            return $result;
+        }
+
+        $result['data'] = [
+            'camera_id' => $camera_id,
+            'url'       => $camera_url
+        ];
+
+        return $result;
+    }
+
 }