Explorar o código

新增应用分镜接口

lh hai 2 meses
pai
achega
42d36d23aa

+ 6 - 0
app/Http/Controllers/Anime/AnimeController.php

@@ -348,6 +348,12 @@ class AnimeController extends BaseController
         return $this->success(['success'=>$result ? 1: 0]);
     }
 
+    public function applySegment(Request $request) {
+        $data = $request->all();
+        $result = $this->AnimeService->applySegment($data);
+        return $this->success(['success'=>$result ? 1: 0]);
+    }
+
     // 分镜历史图片|视频
     public function segmentHistory(Request $request) {
         $data = $request->all();

+ 41 - 0
app/Services/Anime/AnimeService.php

@@ -2164,6 +2164,47 @@ class AnimeService
         return true;
     }
 
+    public function applySegment($data) {
+        $segment_id = getProp($data, 'segment_id');
+        $url = getProp($data, 'url');
+        if (!$segment_id) Utils::throwError('20003:请选择分镜');
+        if (!$url) Utils::throwError('20003:URL不能为空');
+        
+        // 获取URL的文件扩展名
+        $urlPath = parse_url($url, PHP_URL_PATH);
+        $extension = strtolower(pathinfo($urlPath, PATHINFO_EXTENSION));
+        
+        // 定义图片和视频的扩展名
+        $imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'svg'];
+        $videoExtensions = ['mp4', 'avi', 'mov', 'wmv', 'flv', 'mkv', 'webm', 'm4v'];
+        
+        // 判断是图片还是视频
+        $updateData = ['updated_at' => date('Y-m-d H:i:s')];
+        
+        if (in_array($extension, $imageExtensions)) {
+            // 图片类型
+            $updateData['img_url'] = $url;
+            $updateData['current_type'] = 1;
+        } elseif (in_array($extension, $videoExtensions)) {
+            // 视频类型
+            $updateData['video_url'] = $url;
+            $updateData['current_type'] = 2;
+        } else {
+            Utils::throwError('20003:不支持的文件类型');
+        }
+        
+        // 更新分镜表
+        $result = DB::table('mp_episode_segments')
+            ->where('segment_id', $segment_id)
+            ->update($updateData);
+        
+        if (!$result) {
+            Utils::throwError('20003:更新分镜失败');
+        }
+        
+        return true;
+    }
+
     public function segmentHistory($data) {
         $segment_id = getProp($data, 'segment_id');
 

+ 1 - 0
routes/api.php

@@ -162,6 +162,7 @@ Route::group(['middleware' => ['bindToken', 'bindExportToken', 'checkLogin']], f
         Route::post('copySegment', [AnimeController::class, 'copySegment']);                    // 复制分镜
         Route::post('moveSegment', [AnimeController::class, 'moveSegment']);                    // 移动分镜
         Route::post('delSegment', [AnimeController::class, 'delSegment']);                      // 删除分镜
+        Route::post('applySegment', [AnimeController::class, 'applySegment']);                  // 应用分镜
         Route::post('segmentHistory', [AnimeController::class, 'segmentHistory']);              // 分镜历史图片/视频
         Route::get('segmentChatHistory', [AnimeController::class, 'segmentChatHistory']);           // 分镜对话历史记录
         Route::post('createSegmentVideoTask', [AnimeController::class, 'createSegmentVideoTask']);  // 分镜图片转视频