Browse Source

后台添加摄像头类型

qiuzijian 4 years ago
parent
commit
30dddce28f

+ 118 - 128
.idea/workspace.xml

@@ -3,7 +3,13 @@
   <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/Mine/Services/MineServices.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Mine/Services/MineServices.php" 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/Jobs/CameraListExcel.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Camera/Jobs/CameraListExcel.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Modules/Camera/Routes/api.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Camera/Routes/api.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$/public/template/摄像头列表导入模板_v1.0.xlsx" beforeDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -19,8 +25,8 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="71">
-              <caret line="418" column="54" selection-start-line="418" selection-start-column="44" selection-end-line="418" selection-end-column="54" />
+            <state relative-caret-position="249">
+              <caret line="131" column="56" selection-start-line="131" selection-start-column="56" selection-end-line="131" selection-end-column="56" />
               <folding>
                 <element signature="e#129#150#0#PHP" expanded="true" />
               </folding>
@@ -29,19 +35,10 @@
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/app/Helpers.php">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="162">
-              <caret line="66" column="26" selection-start-line="66" selection-start-column="26" selection-end-line="66" selection-end-column="26" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <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="441">
-              <caret line="26" column="26" selection-start-line="26" selection-start-column="10" selection-end-line="26" selection-end-column="26" />
+            <state relative-caret-position="361">
+              <caret line="33" column="28" selection-start-line="33" selection-start-column="10" selection-end-line="33" selection-end-column="28" />
             </state>
           </provider>
         </entry>
@@ -49,8 +46,8 @@
       <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="611">
-              <caret line="36" column="43" lean-forward="true" selection-start-line="36" selection-start-column="43" selection-end-line="36" selection-end-column="43" />
+            <state relative-caret-position="735">
+              <caret line="104" column="38" selection-start-line="104" selection-start-column="38" selection-end-line="104" selection-end-column="38" />
               <folding>
                 <element signature="e#141#162#0#PHP" expanded="true" />
               </folding>
@@ -58,35 +55,11 @@
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Modules/Mine/Http/Controllers/Api/MineApiController.php">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="356">
-              <caret line="52" column="21" lean-forward="true" selection-start-line="52" selection-start-column="21" selection-end-line="52" selection-end-column="21" />
-              <folding>
-                <element signature="e#139#160#0#PHP" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/app/Console/Commands/StopStreamDelFiles.php">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="571">
-              <caret line="40" column="31" selection-start-line="40" selection-start-column="31" selection-end-line="40" selection-end-column="31" />
-              <folding>
-                <element signature="e#40#71#0#PHP" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
+      <file pinned="false" current-in-tab="true">
         <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="-333">
-              <caret line="241" column="26" selection-start-line="241" selection-start-column="26" selection-end-line="241" selection-end-column="26" />
+            <state relative-caret-position="252">
+              <caret line="45" lean-forward="true" selection-start-line="45" selection-end-line="45" />
               <folding>
                 <element signature="e#51#107#0#PHP" expanded="true" />
               </folding>
@@ -94,32 +67,18 @@
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/Modules/Mine/Services/MineServices.php">
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/Modules/Camera/Jobs/CameraListExcel.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="610">
-              <caret line="94" column="9" selection-start-line="94" selection-start-column="9" selection-end-line="94" selection-end-column="9" />
+            <state relative-caret-position="422">
+              <caret line="134" column="48" selection-start-line="134" selection-start-column="48" selection-end-line="134" selection-end-column="48" />
               <folding>
-                <element signature="e#127#148#0#PHP" expanded="true" />
+                <element signature="e#39#68#0#PHP" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/storage/logs/laravel-2021-05-08.log">
-          <provider selected="true" editor-type-id="text-editor" />
-        </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="336">
-              <caret line="16" column="28" selection-start-line="16" selection-start-column="21" selection-end-line="16" selection-end-column="28" />
-            </state>
-          </provider>
-        </entry>
-      </file>
     </leaf>
   </component>
   <component name="FindInProjectRecents">
@@ -162,7 +121,6 @@
   <component name="IdeDocumentHistory">
     <option name="CHANGED_PATHS">
       <list>
-        <option value="$PROJECT_DIR$/Modules/Mine/Entities/MineList.php" />
         <option value="$PROJECT_DIR$/Modules/Mine/Routes/web.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Entities/CameraFieldList.php" />
         <option value="$PROJECT_DIR$/app/Enum/CommonEnum.php" />
@@ -190,7 +148,6 @@
         <option value="$PROJECT_DIR$/resources/lang/en/auth.php" />
         <option value="$PROJECT_DIR$/Modules/Admin/Http/Controllers/LoginController.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_04_26_024115_add_sort_to_camera_list_table.php" />
-        <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php" />
         <option value="$PROJECT_DIR$/app/Enum/ApiEnum.php" />
         <option value="$PROJECT_DIR$/storage/logs/laravel-2021-04-26.log" />
         <option value="$PROJECT_DIR$/Modules/Mine/Routes/api.php" />
@@ -204,15 +161,17 @@
         <option value="$PROJECT_DIR$/Modules/Mine/Http/Controllers/MineController.php" />
         <option value="$PROJECT_DIR$/app/Http/Controllers/Api/BaseController.php" />
         <option value="$PROJECT_DIR$/Modules/Mine/Enum/MineEnum.php" />
-        <option value="$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php" />
-        <option value="$PROJECT_DIR$/Modules/Camera/Routes/api.php" />
-        <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/HaiKangController.php" />
-        <option value="$PROJECT_DIR$/Modules/Camera/Jobs/CameraListExcel.php" />
         <option value="$PROJECT_DIR$/storage/logs/laravel-2021-05-08.log" />
-        <option value="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.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/Routes/api.php" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_05_11_092132_add_camera_type_to_camera_list.php" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Jobs/CameraListExcel.php" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php" />
       </list>
     </option>
   </component>
@@ -387,6 +346,37 @@
               <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
               <item name="video_system" type="462c0819:PsiDirectoryNode" />
               <item name="Modules" type="462c0819:PsiDirectoryNode" />
+              <item name="Camera" type="462c0819:PsiDirectoryNode" />
+              <item name="Http" 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="Camera" 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="Camera" 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="Camera" 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="Modules" type="462c0819:PsiDirectoryNode" />
               <item name="Mine" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
@@ -447,12 +437,12 @@
       <option name="presentableId" value="Default" />
       <updated>1618368322468</updated>
       <workItem from="1618368323697" duration="143000" />
-      <workItem from="1618368497550" duration="194856000" />
+      <workItem from="1618368497550" duration="205404000" />
     </task>
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="194999000" />
+    <option name="totallyTimeSpent" value="205547000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="0" y="0" width="1440" height="900" extended-state="0" />
@@ -483,20 +473,6 @@
     <option name="version" value="1" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/resources/lang/en/auth.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="336">
-          <caret line="16" column="46" selection-start-line="16" selection-start-column="46" selection-end-line="16" selection-end-column="46" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Admin/Http/Controllers/LoginController.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-738">
-          <caret line="46" column="5" selection-start-line="46" selection-start-column="5" selection-end-line="46" selection-end-column="5" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="260">
@@ -726,13 +702,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="441">
-          <caret line="26" column="26" selection-start-line="26" selection-start-column="10" selection-end-line="26" selection-end-column="26" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/Modules/Mine/Enum/MineEnum.php">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="189">
@@ -761,89 +730,110 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Jobs/CameraListExcel.php">
+    <entry file="file://$PROJECT_DIR$/Modules/Mine/Routes/api.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="718">
-          <caret line="133" column="43" selection-start-line="133" selection-start-column="43" selection-end-line="133" selection-end-column="43" />
+        <state relative-caret-position="336">
+          <caret line="16" column="28" selection-start-line="16" selection-start-column="21" selection-end-line="16" selection-end-column="28" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/storage/logs/laravel-2021-05-08.log">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/app/Console/Commands/StopStreamDelFiles.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="571">
+          <caret line="40" column="31" selection-start-line="40" selection-start-column="31" selection-end-line="40" selection-end-column="31" />
           <folding>
-            <element signature="e#39#68#0#PHP" expanded="true" />
+            <element signature="e#40#71#0#PHP" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php">
+    <entry file="file://$PROJECT_DIR$/Modules/Mine/Http/Controllers/Api/MineApiController.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-333">
-          <caret line="241" column="26" selection-start-line="241" selection-start-column="26" selection-end-line="241" selection-end-column="26" />
+        <state relative-caret-position="265">
+          <caret line="45" column="38" selection-start-line="45" selection-start-column="38" selection-end-line="45" selection-end-column="38" />
           <folding>
-            <element signature="e#51#107#0#PHP" expanded="true" />
+            <element signature="e#139#160#0#PHP" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Routes/api.php">
+    <entry file="file://$PROJECT_DIR$/Modules/Mine/Services/MineServices.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="168">
-          <caret line="17" column="33" selection-start-line="17" selection-start-column="17" selection-end-line="17" selection-end-column="33" />
+        <state relative-caret-position="-386">
+          <caret line="74" column="26" selection-start-line="74" selection-start-column="26" selection-end-line="74" selection-end-column="26" />
+          <folding>
+            <element signature="e#127#148#0#PHP" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Mine/Routes/api.php">
+    <entry file="file://$USER_HOME$/Downloads/php/lc_open_accesstoken_sample.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="336">
-          <caret line="16" column="28" selection-start-line="16" selection-start-column="21" selection-end-line="16" selection-end-column="28" />
+        <state relative-caret-position="399">
+          <caret line="50" column="32" selection-start-line="50" selection-start-column="19" selection-end-line="50" selection-end-column="32" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/storage/logs/laravel-2021-05-08.log">
-      <provider selected="true" editor-type-id="text-editor" />
+    <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">
+        <state relative-caret-position="546">
+          <caret line="28" column="43" selection-start-line="28" selection-start-column="43" selection-end-line="28" selection-end-column="43" />
+        </state>
+      </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/Console/Commands/StopStreamDelFiles.php">
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Routes/api.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="571">
-          <caret line="40" column="31" selection-start-line="40" selection-start-column="31" selection-end-line="40" selection-end-column="31" />
-          <folding>
-            <element signature="e#40#71#0#PHP" expanded="true" />
-          </folding>
+        <state relative-caret-position="357">
+          <caret line="26" column="3" selection-start-line="26" selection-start-column="3" selection-end-line="26" selection-end-column="3" />
+        </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="361">
+          <caret line="33" column="28" selection-start-line="33" selection-start-column="10" selection-end-line="33" selection-end-column="28" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="71">
-          <caret line="418" column="54" selection-start-line="418" selection-start-column="44" selection-end-line="418" selection-end-column="54" />
+        <state relative-caret-position="249">
+          <caret line="131" column="56" selection-start-line="131" selection-start-column="56" selection-end-line="131" selection-end-column="56" />
           <folding>
             <element signature="e#129#150#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/Jobs/CameraListExcel.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="611">
-          <caret line="36" column="43" lean-forward="true" selection-start-line="36" selection-start-column="43" selection-end-line="36" selection-end-column="43" />
+        <state relative-caret-position="422">
+          <caret line="134" column="48" selection-start-line="134" selection-start-column="48" selection-end-line="134" selection-end-column="48" />
           <folding>
-            <element signature="e#141#162#0#PHP" expanded="true" />
+            <element signature="e#39#68#0#PHP" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Mine/Http/Controllers/Api/MineApiController.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="356">
-          <caret line="52" column="21" lean-forward="true" selection-start-line="52" selection-start-column="21" selection-end-line="52" selection-end-column="21" />
+        <state relative-caret-position="735">
+          <caret line="104" column="38" selection-start-line="104" selection-start-column="38" selection-end-line="104" selection-end-column="38" />
           <folding>
-            <element signature="e#139#160#0#PHP" expanded="true" />
+            <element signature="e#141#162#0#PHP" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Mine/Services/MineServices.php">
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="610">
-          <caret line="94" column="9" selection-start-line="94" selection-start-column="9" selection-end-line="94" selection-end-column="9" />
+        <state relative-caret-position="252">
+          <caret line="45" lean-forward="true" selection-start-line="45" selection-end-line="45" />
           <folding>
-            <element signature="e#127#148#0#PHP" expanded="true" />
+            <element signature="e#51#107#0#PHP" expanded="true" />
           </folding>
         </state>
       </provider>

+ 32 - 0
Modules/Camera/Database/Migrations/2021_05_11_092132_add_camera_type_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 AddCameraTypeToCameraList extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('camera_list', function (Blueprint $table) {
+            $table->tinyInteger('camera_type')->after('camera_name')->default(1)->index()->comment('摄像头类型');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('camera_list', function (Blueprint $table) {
+            $table->dropColumn('camera_type');
+        });
+    }
+}

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

@@ -25,4 +25,23 @@ class CameraEnum
 
     //视频服务器反向代理url
     const VIDEO_AGENCY_URL = 'http://video.nxjiewei.com:8011/';
+
+    //乐橙视频接口配置
+    const LECHANGE_APPID     = 'lc753b03152e3b4f1e';
+    const LECHANGE_APPSECRET = 'cc9b1224acd24571a5daf18e8c7f94';
+
+    //摄像头类型
+    const CAMERA_TYPE_NORMAL   = 1;  //普通
+    const CAMERA_TYPE_AREA     = 2;  //关键区域
+    const CAMERA_TYPE_WORK     = 3;  //工作面
+    const CAMERA_TYPE_MATERIAL = 4;  //物资
+    const CAMERA_TYPE_COALYARD = 5;  //煤场
+
+    const CAMERA_TYPE_EXCHANGE = [
+        self::CAMERA_TYPE_NORMAL   => '普通摄像头',
+        self::CAMERA_TYPE_AREA     => '关键区域监控',
+        self::CAMERA_TYPE_WORK     => '工作面监控',
+        self::CAMERA_TYPE_MATERIAL => '物资监控',
+        self::CAMERA_TYPE_COALYARD => '煤场监控',
+    ];
 }

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

@@ -99,4 +99,9 @@ class CameraApiController extends BaseController
 
         return self::successResponse($result);
     }
+
+    public function test()
+    {
+        $result = CameraServices::getLeChangeCamera();
+    }
 }

+ 28 - 2
Modules/Camera/Http/Controllers/CameraController.php

@@ -13,6 +13,7 @@ use Modules\Admin\Auxiliary\View\TreeAuxiliary;
 use Modules\Admin\Http\Controllers\BaseController;
 use Modules\Camera\Entities\CameraFieldList;
 use Modules\Camera\Entities\CameraList;
+use Modules\Camera\Enum\CameraEnum;
 use Modules\Camera\Jobs\CameraListExcel;
 use Modules\Camera\Services\CameraServices;
 use Modules\Mine\Entities\MineList;
@@ -37,12 +38,19 @@ class CameraController extends BaseController
 
         $camera_list = CameraList::join(
             'mine_list', 'camera_list.mine_id', '=', 'mine_list.id'
-        )->orderBy('camera_list.sort', 'desc')->select(
+        )->orderBy('camera_list.sort', 'desc');
+
+//        if ($request->has('mine_name')) {
+//            $camera_list = $camera_list->where('mine_list.title', 'like', '%' . $request->input('mine_name') . '%');
+//        }
+
+        $camera_list = $camera_list->select(
             'camera_list.id',
             'camera_list.camera_url',
             'camera_list.camera_name',
             'camera_list.revert_id',
             'camera_list.sort',
+            'camera_list.camera_type',
             'mine_list.title',
             'mine_list.degree'
         )->paginate(50);
@@ -52,10 +60,14 @@ class CameraController extends BaseController
         }
 
         $tableObj             = new TableAuxiliary('camera/list', $camera_list);
+//        $tableObj->search('input', 'mine_name', '矿区名称');
         $tableObj->topActions = ['add', 'import', 'importTemplate'];
         $tableObj->column('parent_title', '矿区名称');
         $tableObj->column('title', '区域名称');
         $tableObj->column('camera_name', '摄像头名称');
+        $tableObj->column('camera_type', '摄像头类型', function ($camera_type) {
+            return CameraEnum::CAMERA_TYPE_EXCHANGE[$camera_type];
+        });
         $tableObj->column('revert_id', '流媒体id');
         $tableObj->column('camera_url', '链接');
         $tableObj->column('sort', '排序');
@@ -82,6 +94,7 @@ class CameraController extends BaseController
             'camera_list.camera_name',
             'camera_list.revert_id',
             'camera_list.sort',
+            'camera_list.camera_type',
             'mine_list.title',
             'mine_list.degree'
         )->first();
@@ -92,6 +105,9 @@ class CameraController extends BaseController
         $tableObj->column('parent_title', '矿区名称');
         $tableObj->column('title', '区域名称');
         $tableObj->column('camera_name', '摄像头名称');
+        $tableObj->column('camera_type', '摄像头类型', function ($camera_type) {
+            return CameraEnum::CAMERA_TYPE_EXCHANGE[$camera_type];
+        });
         $tableObj->column('revert_id', '流媒体id');
         $tableObj->column('user_name', '用户名');
         $tableObj->column('password', '密码');
@@ -114,6 +130,7 @@ class CameraController extends BaseController
         $formObj = new FromAuxiliary('camera/list/add');
         $formObj->tree_select('mine_id', '矿区单位', $titleList);
         $formObj->input('camera_name', '摄像头名称');
+        $formObj->select('camera_type', '摄像头类型', CameraEnum::CAMERA_TYPE_EXCHANGE, CameraEnum::CAMERA_TYPE_NORMAL);
         $formObj->input('user_name', '用户名');
         $formObj->input('password', '密码');
         $formObj->input('ip', 'ip地址');
@@ -131,6 +148,10 @@ class CameraController extends BaseController
             return $this->error(1, '请选择矿区单位');
         }
 
+        if (!$request->input('camera_type')) {
+            return $this->error(1, '请选择摄像头类型');
+        }
+
         if (!$request->input('camera_name')) {
             return $this->error(1, '请输入摄像头名称');
         }
@@ -168,6 +189,7 @@ class CameraController extends BaseController
         $formObj = new FromAuxiliary('camera/list/edit', $camera_list);
         $formObj->tree_select('mine_id', '矿区单位', $titleList);
         $formObj->input('camera_name', '摄像头名称');
+        $formObj->select('camera_type', '摄像头类型', CameraEnum::CAMERA_TYPE_EXCHANGE);
         $formObj->input('user_name', '用户名');
         $formObj->input('password', '密码');
         $formObj->input('ip', 'ip地址');
@@ -185,6 +207,10 @@ class CameraController extends BaseController
             return $this->error(1, '请选择矿区单位');
         }
 
+        if (!$request->input('camera_type')) {
+            return $this->error(1, '请选择摄像头类型');
+        }
+
         if (!$request->input('camera_name')) {
             return $this->error(1, '请输入摄像头名称');
         }
@@ -247,7 +273,7 @@ class CameraController extends BaseController
     //下载摄像头列表导入模板
     public function cameraListTemplate()
     {
-        return $this->redirect('/template/摄像头列表导入模板_v1.0.xlsx');
+        return $this->redirect('/template/摄像头列表导入模板_v2.0.xlsx');
     }
 
     //字段列表

+ 2 - 0
Modules/Camera/Jobs/CameraListExcel.php

@@ -114,6 +114,7 @@ class CameraListExcel implements ShouldQueue
                         'port'        => trim($item[4]),
                         'com_number'  => trim($item[5]),
                         'sort'        => trim($item[6]),
+                        'camera_type' => trim($item[7]),
 //                        'status'     => $params['status'],
                         'camera_url'  => $camera_url,
                         'updated_at'  => date('Y-m-d H:i:s'),
@@ -131,6 +132,7 @@ class CameraListExcel implements ShouldQueue
                 'port'        => trim($item[4]),
                 'com_number'  => trim($item[5]),
                 'sort'        => trim($item[6]),
+                'camera_type' => trim($item[7]),
                 'revert_id'   => CameraEnum::CAMERA_DEFAULT_REVERT_ID,
 //                'status'     => $params['status'],
                 'camera_url'  => $camera_url,

+ 1 - 0
Modules/Camera/Routes/api.php

@@ -17,6 +17,7 @@ Route::namespace('Api')->group(function () {
     Route::post('camera/geturl', 'CameraApiController@getCamerasUrl');
     Route::post('camera/transcode', 'CameraApiController@getTranscodeInfo');
     Route::get('camera/stopstream', 'CameraApiController@stopCamerasStream');
+    Route::get('camera/test', 'CameraApiController@test');
 
     //海康视频接口
     Route::get('haikang/monitor/regions/list', 'HaiKangController@getRegionsList');

+ 80 - 0
Modules/Camera/Services/CameraServices.php

@@ -60,6 +60,7 @@ class CameraServices
 //                'status'     => $params['status'],
                 'camera_url'  => $camera_url,
                 'sort'        => $params['sort'],
+                'camera_type' => $params['camera_type'],
                 'created_at'  => date('Y-m-d H:i:s'),
                 'updated_at'  => date('Y-m-d H:i:s'),
             ]
@@ -128,6 +129,7 @@ class CameraServices
 //                'status'     => $params['status'],
                 'camera_url'  => $camera_url,
                 'sort'        => $params['sort'],
+                'camera_type' => $params['camera_type'],
                 'updated_at'  => date('Y-m-d H:i:s'),
             ]
         );
@@ -508,4 +510,82 @@ class CameraServices
 
         return $result;
     }
+
+    //
+    public static function getLeChangeCamera()
+    {
+        $url = 'https://openapi.lechange.cn/openapi/liveList';
+        $params = [
+            'token' => 'At_0000ad07c9eb68084b4b827af8e0bba4',
+            'queryRange' => '1-10',
+        ];
+        $data = self::getLeChangeSign($params);
+
+        $ch = curl_init();
+        $res= curl_setopt ($ch, CURLOPT_URL,$url);
+        var_dump($res);
+        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
+        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
+        curl_setopt ($ch, CURLOPT_HEADER, 0);
+        curl_setopt($ch, CURLOPT_POST, 1);
+        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
+        $result = curl_exec ($ch);
+        curl_close($ch);
+
+        $utf8 = iconv('utf-8', 'UTF-8', $result);
+
+        dd(json_decode($utf8, true));
+        'http://cmgw-vpc.lechange.com:8888/LCO/5L02759PANB82DD/0/1/20210511T035148/20c1daf67ffc65657f0b8f52d262808b.m3u8';
+        'http://cmgw-vpc.lechange.com:8888/LCO/5L02759PANB82DD/0/0/20210511T035148/20c1daf67ffc65657f0b8f52d262808b.m3u8';
+        'https://cmgw-vpc.lechange.com:8890/LCO/5L02759PANB82DD/0/1/20210511T035148/20c1daf67ffc65657f0b8f52d262808b.m3u8?proto=https';
+
+
+        $url = 'https://openapi.lechange.cn:443/openapi/accessToken';
+        $data = self::getLeChangeSign();
+
+        $ch = curl_init();
+        $res= curl_setopt ($ch, CURLOPT_URL,$url);
+        var_dump($res);
+        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
+        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
+        curl_setopt ($ch, CURLOPT_HEADER, 0);
+        curl_setopt($ch, CURLOPT_POST, 1);
+        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
+        $result = curl_exec ($ch);
+        curl_close($ch);
+        if ($result == NULL) {
+            return 0;
+        }
+        $utf8 = iconv('utf-8', 'UTF-8', $result);
+
+        dd(nl2br($utf8));
+    }
+
+    //乐橙数据接口验签
+    private static function getLeChangeSign($params = [])
+    {
+        $time      = strtotime(date('Y-m-d H:i:s', time()));
+        $nonce     = md5(time());
+        $appId     = CameraEnum::LECHANGE_APPID;
+        $appSecret = CameraEnum::LECHANGE_APPSECRET;
+        $signStr   = "time:$time,nonce:$nonce,appSecret:$appSecret";
+        $sign      = md5($signStr);
+        $data      = json_encode(
+            [
+                'system' =>
+                    [
+                        'ver'   => '1.0',
+                        'sign'  => $sign,
+                        'appId' => $appId,
+                        'time'  => $time,
+                        'nonce' => $nonce
+                    ],
+                'params' => empty($params) ? new \stdClass() : $params,
+                'id'     => '88'
+            ]
+        );
+        return $data;
+    }
 }

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


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