Explorar o código

后台添加选择视频服务器功能

qiuzijian %!s(int64=3) %!d(string=hai) anos
pai
achega
4cf8e830c3

+ 121 - 221
.idea/workspace.xml

@@ -2,8 +2,13 @@
 <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/CameraController.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Modules/Camera/Jobs/CameraListExcel.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Camera/Jobs/CameraListExcel.php" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/app/Http/Controllers/TestsController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/TestsController.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/public/template/摄像头列表导入模板_v2.0.xlsx" beforeDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -19,106 +24,52 @@
       <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="260">
-              <caret line="24" column="44" lean-forward="true" selection-start-line="24" selection-start-column="28" selection-end-line="24" selection-end-column="44" />
+            <state relative-caret-position="408">
+              <caret line="71" column="33" selection-start-line="71" selection-start-column="10" selection-end-line="71" selection-end-column="33" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php">
+        <entry file="file://$PROJECT_DIR$/app/Http/Controllers/TestsController.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="507">
-              <caret line="307" column="41" lean-forward="true" selection-start-line="307" selection-start-column="41" selection-end-line="307" selection-end-column="41" />
+            <state relative-caret-position="504">
+              <caret line="29" column="20" selection-start-line="27" selection-start-column="8" selection-end-line="29" selection-end-column="20" />
               <folding>
-                <element signature="e#51#107#0#PHP" expanded="true" />
+                <element signature="e#126#164#0#PHP" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Modules/Admin/Traits/ClassifyMethod.php">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="170">
-              <caret line="114" column="20" selection-start-line="114" selection-start-column="20" selection-end-line="114" selection-end-column="20" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php">
+        <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="489">
-              <caret line="47" column="50" selection-start-line="47" selection-start-column="50" selection-end-line="47" selection-end-column="50" />
+            <state relative-caret-position="454">
+              <caret line="367" column="54" selection-start-line="367" selection-start-column="54" selection-end-line="367" selection-end-column="54" />
               <folding>
-                <element signature="e#141#162#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$/Modules/Mine/Routes/api.php">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="189">
-              <caret line="9" selection-start-line="9" selection-end-line="10" />
-            </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/Jobs/CameraListExcel.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="519">
-              <caret line="139" column="51" selection-start-line="139" selection-start-column="51" selection-end-line="139" selection-end-column="51" />
-              <folding>
-                <element signature="e#129#150#0#PHP" expanded="true" />
-              </folding>
+            <state relative-caret-position="381">
+              <caret line="92" column="52" lean-forward="true" selection-start-line="87" selection-start-column="13" selection-end-line="92" selection-end-column="52" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/app/Console/Commands/UpdateHkList.php">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="466">
-              <caret line="111" column="20" selection-start-line="111" selection-start-column="20" selection-end-line="111" selection-end-column="20" />
-              <folding>
-                <element signature="e#40#71#0#PHP" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/app/Http/Controllers/TestsController.php">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="462">
-              <caret line="27" column="291" selection-start-line="27" selection-start-column="291" selection-end-line="27" selection-end-column="291" />
-              <folding>
-                <element signature="e#126#164#0#PHP" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Modules/Admin/Enum/AdminEnum.php">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="273">
-              <caret line="18" column="3" lean-forward="true" selection-start-line="18" selection-start-column="3" selection-end-line="18" selection-end-column="41" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/HaiKangController.php">
+        <entry file="file://$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="53">
-              <caret line="190" column="45" lean-forward="true" selection-start-line="190" selection-start-column="45" selection-end-line="190" selection-end-column="45" />
+            <state relative-caret-position="510">
+              <caret line="181" column="62" lean-forward="true" selection-start-line="181" selection-start-column="14" selection-end-line="181" selection-end-column="62" />
               <folding>
-                <element signature="e#141#185#0#PHP" expanded="true" />
+                <element signature="e#129#150#0#PHP" expanded="true" />
               </folding>
             </state>
           </provider>
@@ -128,10 +79,6 @@
   </component>
   <component name="FindInProjectRecents">
     <findStrings>
-      <find>failed</find>
-      <find>EASY_DARWIN_URL</find>
-      <find>exec</find>
-      <find>VIDEO_SYSTEM_URL</find>
       <find>video_system</find>
       <find>camera_url</find>
       <find>CameraEnum::CAMERA_SOURCE_3</find>
@@ -158,6 +105,10 @@
       <find>Log::info</find>
       <find>radion</find>
       <find>radio</find>
+      <find>流媒体</find>
+      <find>请求流媒体</find>
+      <find>exec</find>
+      <find>编辑</find>
     </findStrings>
   </component>
   <component name="Git.Settings">
@@ -166,7 +117,6 @@
   <component name="IdeDocumentHistory">
     <option name="CHANGED_PATHS">
       <list>
-        <option value="$PROJECT_DIR$/Modules/Mine/Database/Migrations/2021_04_28_111556_create_mine_list_ext_table.php" />
         <option value="$PROJECT_DIR$/Modules/Mine/Entities/MineListExt.php" />
         <option value="$PROJECT_DIR$/Modules/Admin/Auxiliary/View/TreeAuxiliary.php" />
         <option value="$PROJECT_DIR$/storage/logs/laravel-2021-04-28.log" />
@@ -198,25 +148,26 @@
         <option value="$PROJECT_DIR$/Modules/Mine/Services/SurfaceServices.php" />
         <option value="$PROJECT_DIR$/Modules/Admin/Database/Seeders/AdminDatabaseSeeder.php" />
         <option value="$PROJECT_DIR$/.env" />
-        <option value="$PROJECT_DIR$/Modules/Camera/Jobs/CameraListExcel.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_08_02_074532_add_is_show_to_camera_list.php" />
         <option value="$PROJECT_DIR$/storage/logs/laravel-2021-08-02.log" />
         <option value="$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_08_05_095128_add_code_stream_to_camera_list.php" />
-        <option value="$PROJECT_DIR$/Modules/Camera/Entities/CameraList.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Routes/web.php" />
         <option value="$PROJECT_DIR$/config/filesystems.php" />
         <option value="$PROJECT_DIR$/storage/logs/laravel-2021-08-10.log" />
         <option value="$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_08_10_102022_add_cover_picture_to_camera_list.php" />
-        <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php" />
         <option value="$PROJECT_DIR$/config/app.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php" />
-        <option value="$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php" />
         <option value="$PROJECT_DIR$/Modules/Mine/Http/Controllers/Api/MineApiController.php" />
         <option value="$PROJECT_DIR$/Modules/Mine/Services/MineServices.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/HaiKangController.php" />
         <option value="$PROJECT_DIR$/app/Console/Commands/UpdateHkList.php" />
         <option value="$PROJECT_DIR$/app/Http/Controllers/TestsController.php" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_12_22_162404_add_field_to_camera_list.php" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Entities/CameraList.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Jobs/CameraListExcel.php" />
       </list>
     </option>
   </component>
@@ -362,74 +313,28 @@
             <path>
               <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
               <item name="video_system" type="462c0819:PsiDirectoryNode" />
-              <item name="app" type="462c0819:PsiDirectoryNode" />
-              <item name="Console" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
-              <item name="video_system" type="462c0819:PsiDirectoryNode" />
-              <item name="app" type="462c0819:PsiDirectoryNode" />
-              <item name="Console" type="462c0819:PsiDirectoryNode" />
-              <item name="Commands" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
-              <item name="video_system" type="462c0819:PsiDirectoryNode" />
               <item name="Modules" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
               <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
               <item name="video_system" type="462c0819:PsiDirectoryNode" />
               <item name="Modules" type="462c0819:PsiDirectoryNode" />
-              <item name="Mine" type="462c0819:PsiDirectoryNode" />
+              <item name="Camera" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
               <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
               <item name="video_system" type="462c0819:PsiDirectoryNode" />
               <item name="Modules" type="462c0819:PsiDirectoryNode" />
-              <item name="Mine" type="462c0819:PsiDirectoryNode" />
-              <item name="Http" type="462c0819:PsiDirectoryNode" />
+              <item name="Camera" type="462c0819:PsiDirectoryNode" />
+              <item name="Database" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
               <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
               <item name="video_system" type="462c0819:PsiDirectoryNode" />
               <item name="Modules" type="462c0819:PsiDirectoryNode" />
-              <item name="Mine" type="462c0819:PsiDirectoryNode" />
-              <item name="Http" type="462c0819:PsiDirectoryNode" />
-              <item name="Controllers" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
-              <item name="video_system" type="462c0819:PsiDirectoryNode" />
-              <item name="Modules" type="462c0819:PsiDirectoryNode" />
-              <item name="Mine" type="462c0819:PsiDirectoryNode" />
-              <item name="Http" type="462c0819:PsiDirectoryNode" />
-              <item name="Controllers" type="462c0819:PsiDirectoryNode" />
-              <item name="Api" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
-              <item name="video_system" type="462c0819:PsiDirectoryNode" />
-              <item name="Modules" type="462c0819:PsiDirectoryNode" />
-              <item name="Mine" type="462c0819:PsiDirectoryNode" />
-              <item name="Routes" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
-              <item name="video_system" type="462c0819:PsiDirectoryNode" />
-              <item name="public" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
-              <item name="video_system" type="462c0819:PsiDirectoryNode" />
-              <item name="public" type="462c0819:PsiDirectoryNode" />
-              <item name="filedownload" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
-              <item name="video_system" type="462c0819:PsiDirectoryNode" />
-              <item name="public" type="462c0819:PsiDirectoryNode" />
-              <item name="files" type="462c0819:PsiDirectoryNode" />
+              <item name="Camera" type="462c0819:PsiDirectoryNode" />
+              <item name="Database" type="462c0819:PsiDirectoryNode" />
+              <item name="Migrations" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
               <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
@@ -487,7 +392,7 @@
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="393246000" />
+    <option name="totallyTimeSpent" value="401451000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="0" y="0" width="1440" height="900" extended-state="0" />
@@ -518,26 +423,6 @@
     <option name="version" value="1" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/Modules/Mine/Services/SurfaceServices.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="195">
-          <caret line="139" column="27" selection-start-line="139" selection-start-column="27" selection-end-line="139" selection-end-column="27" />
-          <folding>
-            <element signature="e#127#148#0#PHP" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Database/Seeders/CameraDatabaseSeeder.php">
-      <provider selected="true" editor-type-id="text-editor" />
-    </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Admin/Services/MenusService.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="260">
-          <caret line="226" column="38" selection-start-line="226" selection-start-column="38" selection-end-line="226" selection-end-column="38" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/Modules/Admin/Database/Seeders/AdminDatabaseSeeder.php">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="4013">
@@ -604,13 +489,6 @@
     <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/Camera/Jobs/CameraListExcel.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="142">
-          <caret line="94" column="26" selection-start-line="94" selection-start-column="12" selection-end-line="94" selection-end-column="26" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/storage/logs/laravel-2021-08-02.log">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
@@ -697,13 +575,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Entities/CameraList.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="105">
-          <caret line="6" column="6" selection-start-line="6" selection-start-column="6" selection-end-line="6" selection-end-column="6" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/config/app.php">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="356">
@@ -728,13 +599,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Routes/api.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="126">
-          <caret line="15" column="69" selection-start-line="15" selection-start-column="55" selection-end-line="15" selection-end-column="69" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/Modules/Admin/Routes/api.php">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
@@ -764,78 +628,96 @@
         <state relative-caret-position="-227" />
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Mine/Http/Controllers/Api/MineApiController.php">
+    <entry file="file://$PROJECT_DIR$/Modules/Mine/Http/Controllers/MineController.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="278">
-          <caret line="47" column="35" selection-start-line="47" selection-start-column="35" selection-end-line="47" selection-end-column="35" />
+        <state relative-caret-position="797">
+          <caret line="42" column="38" lean-forward="true" selection-start-line="42" selection-start-column="38" selection-end-line="42" selection-end-column="38" />
           <folding>
-            <element signature="e#139#160#0#PHP" expanded="true" />
+            <element signature="e#49#93#0#PHP" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Mine/Services/MineServices.php">
+    <entry file="file://$PROJECT_DIR$/Modules/Admin/Traits/ClassifyMethod.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="254">
-          <caret line="78" column="23" selection-start-line="78" selection-start-column="23" selection-end-line="78" selection-end-column="23" />
-          <folding>
-            <element signature="e#127#148#0#PHP" expanded="true" />
-          </folding>
+        <state relative-caret-position="170">
+          <caret line="114" column="20" selection-start-line="114" selection-start-column="20" selection-end-line="114" selection-end-column="20" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/HaiKangController.php">
+    <entry file="file://$PROJECT_DIR$/Modules/Admin/Enum/AdminEnum.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="53">
-          <caret line="190" column="45" lean-forward="true" selection-start-line="190" selection-start-column="45" selection-end-line="190" selection-end-column="45" />
-          <folding>
-            <element signature="e#141#185#0#PHP" expanded="true" />
-          </folding>
+        <state relative-caret-position="273">
+          <caret line="18" column="3" lean-forward="true" selection-start-line="18" selection-start-column="3" selection-end-line="18" selection-end-column="41" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Mine/Http/Controllers/MineController.php">
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Routes/api.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="797">
-          <caret line="42" column="38" lean-forward="true" selection-start-line="42" selection-start-column="38" selection-end-line="42" selection-end-column="38" />
+        <state relative-caret-position="126">
+          <caret line="15" column="31" selection-start-line="15" selection-start-column="17" selection-end-line="15" selection-end-column="31" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Modules/Mine/Routes/api.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="21" selection-end-line="20" selection-end-column="28" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Modules/Mine/Http/Controllers/Api/MineApiController.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="603">
+          <caret line="47" column="39" selection-start-line="47" selection-start-column="39" selection-end-line="47" selection-end-column="39" />
           <folding>
-            <element signature="e#49#93#0#PHP" expanded="true" />
+            <element signature="e#139#160#0#PHP" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Admin/Traits/ClassifyMethod.php">
+    <entry file="file://$PROJECT_DIR$/Modules/Mine/Enum/MineEnum.php">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Modules/Mine/Services/MineServices.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="170">
-          <caret line="114" column="20" selection-start-line="114" selection-start-column="20" selection-end-line="114" selection-end-column="20" />
+        <state relative-caret-position="221">
+          <caret line="89" column="35" selection-start-line="89" selection-start-column="25" selection-end-line="89" selection-end-column="35" />
+          <folding>
+            <element signature="e#127#148#0#PHP" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Admin/Enum/AdminEnum.php">
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/HaiKangController.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="273">
-          <caret line="18" column="3" lean-forward="true" selection-start-line="18" selection-start-column="3" selection-end-line="18" selection-end-column="41" />
+        <state relative-caret-position="15">
+          <caret line="179" column="40" lean-forward="true" selection-start-line="179" selection-start-column="40" selection-end-line="179" selection-end-column="40" />
+          <folding>
+            <element signature="e#141#185#0#PHP" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Mine/Routes/api.php">
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="189">
-          <caret line="9" selection-start-line="9" selection-end-line="10" />
+        <state relative-caret-position="348">
+          <caret line="84" column="45" lean-forward="true" selection-start-line="84" selection-start-column="45" selection-end-line="84" selection-end-column="45" />
+          <folding>
+            <element signature="e#141#162#0#PHP" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php">
+    <entry file="file://$PROJECT_DIR$/config/database.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="260">
-          <caret line="24" column="44" lean-forward="true" selection-start-line="24" selection-start-column="28" selection-end-line="24" selection-end-column="44" />
-        </state>
+        <state relative-caret-position="-393" />
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/app/Console/Commands/UpdateHkList.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="466">
-          <caret line="111" column="20" selection-start-line="111" selection-start-column="20" selection-end-line="111" selection-end-column="20" />
+        <state relative-caret-position="547">
+          <caret line="114" column="43" selection-start-line="114" selection-start-column="43" selection-end-line="114" selection-end-column="43" />
           <folding>
             <element signature="e#40#71#0#PHP" expanded="true" />
           </folding>
@@ -844,28 +726,39 @@
     </entry>
     <entry file="file://$PROJECT_DIR$/app/Http/Controllers/TestsController.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="462">
-          <caret line="27" column="291" selection-start-line="27" selection-start-column="291" selection-end-line="27" selection-end-column="291" />
+        <state relative-caret-position="504">
+          <caret line="29" column="20" selection-start-line="27" selection-start-column="8" selection-end-line="29" selection-end-column="20" />
           <folding>
             <element signature="e#126#164#0#PHP" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php">
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_12_22_162404_add_field_to_camera_list.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="489">
-          <caret line="47" column="50" selection-start-line="47" selection-start-column="50" selection-end-line="47" selection-end-column="50" />
-          <folding>
-            <element signature="e#141#162#0#PHP" expanded="true" />
-          </folding>
+        <state relative-caret-position="294">
+          <caret line="16" column="103" selection-start-line="16" selection-start-column="103" selection-end-line="16" selection-end-column="103" />
+        </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="408">
+          <caret line="71" column="33" selection-start-line="71" selection-start-column="10" selection-end-line="71" selection-end-column="33" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Entities/CameraList.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="231">
+          <caret line="12" column="127" selection-start-line="12" selection-start-column="127" selection-end-line="12" selection-end-column="127" />
         </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="507">
-          <caret line="307" column="41" lean-forward="true" selection-start-line="307" selection-start-column="41" selection-end-line="307" selection-end-column="41" />
+        <state relative-caret-position="454">
+          <caret line="367" column="54" selection-start-line="367" selection-start-column="54" selection-end-line="367" selection-end-column="54" />
           <folding>
             <element signature="e#51#107#0#PHP" expanded="true" />
           </folding>
@@ -874,13 +767,20 @@
     </entry>
     <entry file="file://$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="519">
-          <caret line="139" column="51" selection-start-line="139" selection-start-column="51" selection-end-line="139" selection-end-column="51" />
+        <state relative-caret-position="510">
+          <caret line="181" column="62" lean-forward="true" selection-start-line="181" selection-start-column="14" selection-end-line="181" selection-end-column="62" />
           <folding>
             <element signature="e#129#150#0#PHP" expanded="true" />
           </folding>
         </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="381">
+          <caret line="92" column="52" lean-forward="true" selection-start-line="87" selection-start-column="13" selection-end-line="92" selection-end-column="52" />
+        </state>
+      </provider>
+    </entry>
   </component>
 </project>

+ 32 - 0
Modules/Camera/Database/Migrations/2021_12_22_162404_add_field_to_camera_list.php

@@ -0,0 +1,32 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class AddFieldToCameraList extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('camera_list', function (Blueprint $table) {
+            $table->tinyInteger('video_recorder')->after('cover_picture')->default('1')->comment('视频服务器来源 1:海康 2:大华(camera_source为1是使用)');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('camera_list', function (Blueprint $table) {
+            $table->dropColumn('video_recorder');
+        });
+    }
+}

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

@@ -65,6 +65,15 @@ class CameraEnum
         self::CAMERA_SOURCE_3 => '内网服务器',
     ];
 
+    //视频服务器来源
+    const VIDEO_RECORDER_HK = 1;  //海康
+    const VIDEO_RECORDER_DH = 2;  //大华
+
+    const VIDEO_RECORDER_EXCHANGE = [
+        self::VIDEO_RECORDER_HK => '海康',
+        self::VIDEO_RECORDER_DH => '大华',
+    ];
+
     //乐橙接口url
     const ACCESS_TOKEN_URL = 'https://openapi.lechange.cn:443/openapi/accessToken';  //获取access_token
     const LIVE_LIST_URL    = 'https://openapi.lechange.cn/openapi/liveList';         //获取视频列表
@@ -104,4 +113,10 @@ class CameraEnum
         self::CODE_STREAM_SUB  => 'sub',
         self::CODE_STREAM_MAIN => 'main',
     ];
+
+    //大华视频码流转义
+    const CODE_STREAM_DH = [
+        self::CODE_STREAM_SUB  => '1',  //子码流
+        self::CODE_STREAM_MAIN => '0',  //主码流
+    ];
 }

+ 7 - 1
Modules/Camera/Http/Controllers/CameraController.php

@@ -122,6 +122,7 @@ class CameraController extends BaseController
             'camera_list.camera_type',
             'camera_list.camera_source',
             'camera_list.cover_picture',
+            'camera_list.video_recorder',
             'mine_list.title',
             'mine_list.degree'
         )->first();
@@ -144,6 +145,9 @@ class CameraController extends BaseController
         $tableObj->column('camera_source', '摄像头来源', function ($camera_source) {
             return CameraEnum::CAMERA_SOURCE_EXCHANGE[$camera_source];
         });
+        $tableObj->column('video_recorder', '视频服务器来源', function ($video_recorder) {
+            return CameraEnum::VIDEO_RECORDER_EXCHANGE[$video_recorder];
+        });
         $tableObj->column('revert_id', '流媒体id');
         $tableObj->column('user_name', '用户名');
         $tableObj->column('password', '密码');
@@ -172,6 +176,7 @@ class CameraController extends BaseController
         $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->radio('video_recorder', '视频服务器来源',CameraEnum::VIDEO_RECORDER_EXCHANGE, CameraEnum::VIDEO_RECORDER_HK);
         $formObj->input('camera_url', '摄像头链接');
         $formObj->input('user_name', '用户名');
         $formObj->input('password', '密码');
@@ -261,6 +266,7 @@ class CameraController extends BaseController
         $formObj->input('camera_name', '摄像头名称');
         $formObj->select('camera_type', '摄像头类型', CameraEnum::CAMERA_TYPE_EXCHANGE);
         $formObj->select('camera_source', '摄像头来源', CameraEnum::CAMERA_SOURCE_EXCHANGE);
+        $formObj->radio('video_recorder', '视频服务器来源',CameraEnum::VIDEO_RECORDER_EXCHANGE);
         $formObj->input('camera_url', '摄像头链接');
         $formObj->input('user_name', '用户名');
         $formObj->input('password', '密码');
@@ -359,7 +365,7 @@ class CameraController extends BaseController
     //下载摄像头列表导入模板
     public function cameraListTemplate()
     {
-        return $this->redirect('/template/摄像头列表导入模板_v2.0.xlsx');
+        return $this->redirect('/template/摄像头列表导入模板_v3.0.xlsx');
     }
 
     //字段列表

+ 34 - 31
Modules/Camera/Jobs/CameraListExcel.php

@@ -85,11 +85,12 @@ class CameraListExcel implements ShouldQueue
             }
 
             $params = [
-                'user_name'  => trim($item[1]),
-                'password'   => trim($item[2]),
-                'ip'         => trim($item[3]),
-                'port'       => trim($item[4]),
-                'com_number' => trim($item[5]),
+                'user_name'      => trim($item[1]),
+                'password'       => trim($item[2]),
+                'ip'             => trim($item[3]),
+                'port'           => trim($item[4]),
+                'com_number'     => trim($item[5]),
+                'video_recorder' => trim($item[10]),
             ];
 
             $camera_source = $item[8] ? trim($item[8]) : CameraEnum::CAMERA_SOURCE_1;
@@ -114,38 +115,40 @@ class CameraListExcel implements ShouldQueue
             if ($query && $params['ip'] && $params['port'] && $params['com_number']) {
                 $res = CameraList::where('id', $query->id)->update(
                     [
-                        'mine_id'       => $mine_id,
-                        'camera_name'   => trim($item[0]),
-                        'user_name'     => trim($item[1]),
-                        'password'      => trim($item[2]),
-                        'ip'            => trim($item[3]),
-                        'port'          => trim($item[4]),
-                        'com_number'    => trim($item[5]),
-                        'sort'          => $sort,
-                        'camera_type'   => trim($item[7]),
-                        'camera_source' => $camera_source,
-                        'camera_url'    => $camera_url,
-                        'updated_at'    => date('Y-m-d H:i:s'),
+                        'mine_id'        => $mine_id,
+                        'camera_name'    => trim($item[0]),
+                        'user_name'      => trim($item[1]),
+                        'password'       => trim($item[2]),
+                        'ip'             => trim($item[3]),
+                        'port'           => trim($item[4]),
+                        'com_number'     => trim($item[5]),
+                        'sort'           => $sort,
+                        'camera_type'    => trim($item[7]),
+                        'camera_source'  => $camera_source,
+                        'camera_url'     => $camera_url,
+                        'video_recorder' => trim($item[10]),
+                        'updated_at'     => date('Y-m-d H:i:s'),
                     ]
                 );
                 continue;
             }
 
             $data[] = [
-                'mine_id'       => $mine_id,
-                'camera_name'   => trim($item[0]),
-                'user_name'     => trim($item[1]),
-                'password'      => trim($item[2]),
-                'ip'            => trim($item[3]),
-                'port'          => trim($item[4]),
-                'com_number'    => trim($item[5]),
-                'sort'          => $sort,
-                'camera_type'   => trim($item[7]),
-                'revert_id'     => CameraEnum::CAMERA_DEFAULT_REVERT_ID,
-                'camera_source' => $camera_source,
-                'camera_url'    => $camera_url,
-                'created_at'    => date('Y-m-d H:i:s'),
-                'updated_at'    => date('Y-m-d H:i:s'),
+                'mine_id'        => $mine_id,
+                'camera_name'    => trim($item[0]),
+                'user_name'      => trim($item[1]),
+                'password'       => trim($item[2]),
+                'ip'             => trim($item[3]),
+                'port'           => trim($item[4]),
+                'com_number'     => trim($item[5]),
+                'sort'           => $sort,
+                'camera_type'    => trim($item[7]),
+                'revert_id'      => CameraEnum::CAMERA_DEFAULT_REVERT_ID,
+                'camera_source'  => $camera_source,
+                'camera_url'     => $camera_url,
+                'video_recorder' => trim($item[10]),
+                'created_at'     => date('Y-m-d H:i:s'),
+                'updated_at'     => date('Y-m-d H:i:s'),
             ];
         }
 

+ 59 - 40
Modules/Camera/Services/CameraServices.php

@@ -59,23 +59,24 @@ class CameraServices
         //入库动作
         $res = CameraList::insert(
             [
-                'mine_id'       => $params['mine_id'],
-                'ip'            => $params['ip'],
-                'port'          => $params['port'],
-                'user_name'     => $params['user_name'],
-                'password'      => $params['password'],
-                'com_number'    => $params['com_number'],
-                'camera_name'   => $params['camera_name'],
-                'revert_id'     => CameraEnum::CAMERA_DEFAULT_REVERT_ID,
+                'mine_id'        => $params['mine_id'],
+                'ip'             => $params['ip'],
+                'port'           => $params['port'],
+                'user_name'      => $params['user_name'],
+                'password'       => $params['password'],
+                'com_number'     => $params['com_number'],
+                'camera_name'    => $params['camera_name'],
+                'revert_id'      => CameraEnum::CAMERA_DEFAULT_REVERT_ID,
 //                'status'     => $params['status'],
-                'camera_url'    => $camera_url,
-                'sort'          => $params['sort'],
-                'camera_type'   => $params['camera_type'],
-                'camera_source' => $params['camera_source'],
-                'code_stream'   => $params['code_stream'],
-                'cover_picture' => $params['cover_picture'],
-                'created_at'    => date('Y-m-d H:i:s'),
-                'updated_at'    => date('Y-m-d H:i:s'),
+                'camera_url'     => $camera_url,
+                'sort'           => $params['sort'],
+                'camera_type'    => $params['camera_type'],
+                'camera_source'  => $params['camera_source'],
+                'code_stream'    => $params['code_stream'],
+                'cover_picture'  => $params['cover_picture'],
+                'video_recorder' => $params['video_recorder'],
+                'created_at'     => date('Y-m-d H:i:s'),
+                'updated_at'     => date('Y-m-d H:i:s'),
             ]
         );
 
@@ -90,19 +91,36 @@ class CameraServices
     //生成摄像头请求链接
     public static function makeCameraUrl($params)
     {
-        if (isset($params['code_stream'])) {
-            $code_stream = CameraEnum::CODE_STREAM_TRANS[$params['code_stream']];
-        } else {
-            $code_stream = 'sub';
-        }
+        if ($params['video_recorder'] == CameraEnum::VIDEO_RECORDER_HK) {
+            if (isset($params['code_stream'])) {
+                $code_stream = CameraEnum::CODE_STREAM_TRANS[$params['code_stream']];
+            } else {
+                $code_stream = 'sub';
+            }
 
-        if ($params['user_name'] && $params['password'] && $params['ip'] && $params['port'] && $params['com_number']) {
-            $url  = 'rtsp://' . $params['user_name'] . ':' . $params['password'] . '@';
-            $url .= $params['ip'] . ':' . $params['port'] . '/' . 'h264' . '/' . 'ch' . $params['com_number'] . '/';
-            $url .= $code_stream . '/av_stream';  //sub 子码流 main 主码流
+            if ($params['user_name'] && $params['password'] && $params['ip'] && $params['port'] && $params['com_number']) {
+                $url  = 'rtsp://' . $params['user_name'] . ':' . $params['password'] . '@';
+                $url .= $params['ip'] . ':' . $params['port'] . '/' . 'h264' . '/' . 'ch' . $params['com_number'] . '/';
+                $url .= $code_stream . '/av_stream';  //sub 子码流 main 主码流
+            } else {
+                $url = '';
+            }
         } else {
-            $url = '';
+            if (isset($params['code_stream'])) {
+                $code_stream = CameraEnum::CODE_STREAM_DH[$params['code_stream']];
+            } else {
+                $code_stream = 'sub';
+            }
+
+            if ($params['user_name'] && $params['password'] && $params['ip'] && $params['port'] && $params['com_number']) {
+                $url  = 'rtsp://' . $params['user_name'] . ':' . $params['password'] . '@';
+                $url .= $params['ip'] . ':' . $params['port'] . '/cam/realmonitor?channel=' . $params['com_number'] . '&';
+                $url .= 'subtype=' . $code_stream;
+            } else {
+                $url = '';
+            }
         }
+
         return $url;
     }
 
@@ -147,21 +165,22 @@ class CameraServices
         //更新动作
         $res = CameraList::where('id', $params['id'])->update(
             [
-                'mine_id'       => $params['mine_id'],
-                'ip'            => $params['ip'],
-                'port'          => $params['port'],
-                'user_name'     => $params['user_name'],
-                'password'      => $params['password'],
-                'com_number'    => $params['com_number'],
-                'camera_name'   => $params['camera_name'],
+                'mine_id'        => $params['mine_id'],
+                'ip'             => $params['ip'],
+                'port'           => $params['port'],
+                'user_name'      => $params['user_name'],
+                'password'       => $params['password'],
+                'com_number'     => $params['com_number'],
+                'camera_name'    => $params['camera_name'],
 //                'status'     => $params['status'],
-                'camera_url'    => $camera_url,
-                'sort'          => $params['sort'],
-                'camera_type'   => $params['camera_type'],
-                'camera_source' => $params['camera_source'],
-                'code_stream'   => $params['code_stream'],
-                'cover_picture' => $params['cover_picture'],
-                'updated_at'    => date('Y-m-d H:i:s'),
+                'camera_url'     => $camera_url,
+                'sort'           => $params['sort'],
+                'camera_type'    => $params['camera_type'],
+                'camera_source'  => $params['camera_source'],
+                'code_stream'    => $params['code_stream'],
+                'cover_picture'  => $params['cover_picture'],
+                'video_recorder' => $params['video_recorder'],
+                'updated_at'     => date('Y-m-d H:i:s'),
             ]
         );
 

+ 3 - 3
app/Http/Controllers/TestsController.php

@@ -25,8 +25,8 @@ class TestsController {
 
     public function test()
     {
-        $a = 'nohup /usr/bin/ffmpeg -i rtmp://10.71.53.203:1935/live/openUrl/g7A3z0I -vcodec copy -acodec copy -vbsf h264_mp4toannexb -f hls -hls_flags delete_segments -segment_list_size 10 -hls_list_size 2 /www/wwwroot/video.nxjiewei.com/public/files/video/m3u8/洗选中心/双马洗煤厂/双马-筛分至水洗283块煤转载皮带/20211109/out.m3u8 >./123.txt &';
-        $aaa = ' zaoquan yangchangwan ';
-        dd(trim($aaa));
+        $result = CameraServices::getHaiKangCamera('1', 'e866db0b-c63a-4818-8de5-194f98e98cc8', CameraEnum::CAMERA_TYPE_ALL);
+
+        dd($result);
     }
 }

BIN=BIN
public/template/摄像头列表导入模板_v2.0.xlsx


BIN=BIN
public/template/摄像头列表导入模板_v3.0.xlsx