浏览代码

修改停止摄像头推流

qiuzijian 4 年之前
父节点
当前提交
3ea573b509
共有 3 个文件被更改,包括 131 次插入107 次删除
  1. 89 74
      .idea/workspace.xml
  2. 0 4
      Modules/Camera/Http/Controllers/Api/CameraApiController.php
  3. 42 29
      Modules/Camera/Services/CameraServices.php

+ 89 - 74
.idea/workspace.xml

@@ -2,11 +2,8 @@
 <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/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/Services/CameraServices.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Modules/Mine/Http/Controllers/Api/MineApiController.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Mine/Http/Controllers/Api/MineApiController.php" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Modules/Mine/Routes/api.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Mine/Routes/api.php" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Modules/Mine/Services/MineServices.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Mine/Services/MineServices.php" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -19,39 +16,53 @@
   </component>
   <component name="FileEditorManager">
     <leaf>
-      <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/Modules/Mine/Http/Controllers/Api/MineApiController.php">
+      <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="273">
-              <caret line="19" column="17" selection-start-line="19" selection-start-column="17" selection-end-line="19" selection-end-column="17" />
+            <state relative-caret-position="550">
+              <caret line="62" column="45" selection-start-line="62" selection-start-column="45" selection-end-line="62" selection-end-column="45" />
               <folding>
-                <element signature="e#139#183#0#PHP" expanded="true" />
+                <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/Services/MineServices.php">
+        <entry file="file://$PROJECT_DIR$/Modules/Camera/Routes/api.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="1433">
-              <caret line="79" column="9" selection-start-line="79" selection-start-column="9" selection-end-line="79" selection-end-column="9" />
-              <folding>
-                <element signature="e#127#148#0#PHP" expanded="true" />
-              </folding>
+            <state relative-caret-position="147">
+              <caret line="16" column="52" lean-forward="true" selection-start-line="16" selection-start-column="52" selection-end-line="16" selection-end-column="52" />
             </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$/.env">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="252">
-              <caret line="12" column="1" lean-forward="true" selection-start-line="12" selection-start-column="1" selection-end-line="12" selection-end-column="1" />
+            <state relative-caret-position="656">
+              <caret line="47" column="19" selection-start-line="47" selection-start-column="19" selection-end-line="47" selection-end-column="19" />
             </state>
           </provider>
         </entry>
       </file>
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="376">
+              <caret line="384" column="45" selection-start-line="384" selection-start-column="45" selection-end-line="384" selection-end-column="45" />
+              <folding>
+                <element signature="e#129#150#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-04-28.log">
+          <provider selected="true" editor-type-id="text-editor" />
+        </entry>
+      </file>
     </leaf>
   </component>
   <component name="FindInProjectRecents">
@@ -94,7 +105,6 @@
   <component name="IdeDocumentHistory">
     <option name="CHANGED_PATHS">
       <list>
-        <option value="$PROJECT_DIR$/Modules/Admin/Http/Requests/MenusRequest.php" />
         <option value="$PROJECT_DIR$/Modules/Admin/Resources/views/component/template_from.blade.php" />
         <option value="$PROJECT_DIR$/storage/logs/laravel-2021-04-15.log" />
         <option value="$PROJECT_DIR$/Modules/Admin/Http/Controllers/BaseController.php" />
@@ -136,15 +146,16 @@
         <option value="$PROJECT_DIR$/app/Helpers.php" />
         <option value="$PROJECT_DIR$/storage/logs/laravel-2021-04-26.log" />
         <option value="$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php" />
-        <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Routes/api.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Jobs/CameraListExcel.php" />
-        <option value="$PROJECT_DIR$/.env" />
         <option value="$PROJECT_DIR$/app/Http/Controllers/Api/BaseController.php" />
-        <option value="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" />
         <option value="$PROJECT_DIR$/Modules/Mine/Routes/api.php" />
         <option value="$PROJECT_DIR$/Modules/Mine/Services/MineServices.php" />
         <option value="$PROJECT_DIR$/Modules/Mine/Http/Controllers/Api/MineApiController.php" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php" />
+        <option value="$PROJECT_DIR$/storage/logs/laravel-2021-04-28.log" />
+        <option value="$PROJECT_DIR$/.env" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" />
       </list>
     </option>
   </component>
@@ -294,6 +305,19 @@
               <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" />
+            </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>
@@ -347,12 +371,12 @@
       <option name="presentableId" value="Default" />
       <updated>1618368322468</updated>
       <workItem from="1618368323697" duration="143000" />
-      <workItem from="1618368497550" duration="146984000" />
+      <workItem from="1618368497550" duration="149863000" />
     </task>
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="147127000" />
+    <option name="totallyTimeSpent" value="150006000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="0" y="0" width="1440" height="900" extended-state="0" />
@@ -383,18 +407,6 @@
     <option name="version" value="1" />
   </component>
   <component name="editorHistoryManager">
-    <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="287">
-          <caret line="232" column="56" selection-start-line="232" selection-start-column="45" selection-end-line="232" selection-end-column="56" />
-          <folding>
-            <element signature="n#style#0;n#span#0;n#!!top" expanded="true" />
-            <element signature="n#style#0;n#span#0;n#!!top" expanded="true" />
-            <element signature="n#style#0;n#span#0;n#!!top" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/Modules/Admin/Http/Controllers/MenusController.php">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="253">
@@ -591,13 +603,6 @@
     <entry file="file://$PROJECT_DIR$/Modules/Mine/Routes/web.php">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Routes/api.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="147">
-          <caret line="16" column="52" lean-forward="true" selection-start-line="16" selection-start-column="52" selection-end-line="16" selection-end-column="52" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Queue/Queue.php">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
@@ -658,13 +663,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/.env">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="504">
-          <caret line="24" column="11" selection-start-line="24" selection-end-line="24" selection-end-column="11" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Routing/Controller.php">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="126">
@@ -686,42 +684,42 @@
         </state>
       </provider>
     </entry>
-    <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="7749">
-          <caret line="374" column="27" lean-forward="true" selection-start-line="374" selection-start-column="27" selection-end-line="374" selection-end-column="27" />
+        <state relative-caret-position="403">
+          <caret line="226" column="9" selection-start-line="226" selection-start-column="9" selection-end-line="226" selection-end-column="9" />
           <folding>
-            <element signature="e#129#150#0#PHP" expanded="true" />
+            <element signature="e#51#107#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="210">
-          <caret line="15" column="40" lean-forward="true" selection-start-line="15" selection-start-column="40" selection-end-line="15" selection-end-column="40" />
+        <state relative-caret-position="525">
+          <caret line="25" column="31" selection-start-line="25" selection-start-column="20" selection-end-line="25" selection-end-column="31" />
           <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/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="403">
-          <caret line="226" column="9" selection-start-line="226" selection-start-column="9" selection-end-line="226" selection-end-column="9" />
+        <state relative-caret-position="300">
+          <caret line="22" column="33" lean-forward="true" selection-start-line="22" selection-start-column="33" selection-end-line="22" selection-end-column="33" />
           <folding>
-            <element signature="e#51#107#0#PHP" expanded="true" />
+            <element signature="e#139#183#0#PHP" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Jobs/CameraListExcel.php">
+    <entry file="file://$PROJECT_DIR$/Modules/Mine/Services/MineServices.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="525">
-          <caret line="25" column="31" selection-start-line="25" selection-start-column="20" selection-end-line="25" selection-end-column="31" />
+        <state relative-caret-position="1433">
+          <caret line="79" column="9" selection-start-line="79" selection-start-column="9" selection-end-line="79" selection-end-column="9" />
           <folding>
-            <element signature="e#39#68#0#PHP" expanded="true" />
+            <element signature="e#127#148#0#PHP" expanded="true" />
           </folding>
         </state>
       </provider>
@@ -733,22 +731,39 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Mine/Services/MineServices.php">
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Routes/api.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1433">
-          <caret line="79" column="9" selection-start-line="79" selection-start-column="9" selection-end-line="79" selection-end-column="9" />
+        <state relative-caret-position="147">
+          <caret line="16" column="52" lean-forward="true" selection-start-line="16" selection-start-column="52" selection-end-line="16" selection-end-column="52" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/storage/logs/laravel-2021-04-28.log">
+      <provider selected="true" editor-type-id="text-editor" />
+    </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="550">
+          <caret line="62" column="45" selection-start-line="62" selection-start-column="45" selection-end-line="62" selection-end-column="45" />
           <folding>
-            <element signature="e#127#148#0#PHP" expanded="true" />
+            <element signature="e#141#162#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$/.env">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="656">
+          <caret line="47" column="19" selection-start-line="47" selection-start-column="19" selection-end-line="47" selection-end-column="19" />
+        </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="273">
-          <caret line="19" column="17" selection-start-line="19" selection-start-column="17" selection-end-line="19" selection-end-column="17" />
+        <state relative-caret-position="376">
+          <caret line="384" column="45" selection-start-line="384" selection-start-column="45" selection-end-line="384" selection-end-column="45" />
           <folding>
-            <element signature="e#139#183#0#PHP" expanded="true" />
+            <element signature="e#129#150#0#PHP" expanded="true" />
           </folding>
         </state>
       </provider>

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

@@ -60,10 +60,6 @@ class CameraApiController extends BaseController
     {
         $camera_id = Input::get('camera_id', '');
 
-        if (!$camera_id) {
-            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
-        }
-
         $result = CameraServices::stopCameraStream($camera_id);
 
         return self::successResponse($result);

+ 42 - 29
Modules/Camera/Services/CameraServices.php

@@ -341,12 +341,18 @@ class CameraServices
     }
 
     //停止流媒体推流
-    public static function stopCameraStream($camera_id)
+    public static function stopCameraStream($camera_id = '')
     {
         $result['status'] = true;
         $result['msg']    = ApiEnum::RETURN_SUCCESS;
 
-        $query = CameraList::where('id', $camera_id)->first();
+        $query = CameraList::where('revert_id', '!=', CameraEnum::CAMERA_DEFAULT_REVERT_ID);
+
+        if ($camera_id) {
+            $query = $query->where('id', $camera_id);
+        }
+
+        $query = $query->get()->toArray();
 
         if (!$query) {
             $result['status'] = false;
@@ -354,37 +360,44 @@ class CameraServices
             return $result;
         }
 
-        $data = [
-            'id' => $query->camera_id
-        ];
-
-        Log::info('请求流媒体服务器参数------------');
-        Log::info($data);
-
-        $curl = env('EASY_DARWIN_URL') . CameraEnum::API_STREAM_STOP . '?' . http_build_query($data);
-
-        //请求流媒体服务器拉流
-        $curl_res = curl_request($curl);
+        $res_data = [];
 
-        Log::info('请求流媒体服务器result------------');
-        Log::info($curl_res);
+        foreach ($query as $key => $val) {
+            $data = [
+                'id' => $val['revert_id']
+            ];
 
-        if (trim($curl_res, '"') != 'OK') {
-            $result['status'] = false;
-            $result['msg'] = ApiEnum::EASY_DAWIN_REQUEST_FAIL;
-            return $result;
+            Log::info('请求流媒体服务器参数------------');
+            Log::info($data);
+
+            $curl = env('EASY_DARWIN_URL') . CameraEnum::API_STREAM_STOP . '?' . http_build_query($data);
+
+            //请求流媒体服务器拉流
+            $curl_res = curl_request($curl);
+
+            Log::info('请求流媒体服务器result------------');
+            Log::info($curl_res);
+
+            if (trim($curl_res, '"') != 'OK') {
+                $res_data['error'][] = [
+                    'id'        => $val['id'],
+                    'revert_id' => $val['revert_id'],
+                    'result'    => $curl_res,
+                ];
+            } else {
+                $res_data['success'][]['id']        = $val['id'];
+                $res_data['success'][]['revert_id'] = $val['revert_id'];
+                //更新拉流id为默认id
+                CameraList::where('id', $val->id)->update(
+                    [
+                        'revert_id'  => CameraEnum::CAMERA_DEFAULT_REVERT_ID,
+                        'updated_at' => date('Y-m-d H:i:s'),
+                    ]
+                );
+            }
         }
 
-        //删除本地m3u8文件目录
-        //todo
-
-        //更新拉流id为默认id
-        CameraList::where('id', $camera_id)->update(
-            [
-                'revert_id'  => CameraEnum::CAMERA_DEFAULT_REVERT_ID,
-                'updated_at' => date('Y-m-d H:i:s'),
-            ]
-        );
+        $result['data'] = $res_data;
 
         return $result;
     }