소스 검색

新增分镜信息接口

lh 3 달 전
부모
커밋
47db7ce045
2개의 변경된 파일54개의 추가작업 그리고 6개의 파일을 삭제
  1. 6 6
      app/Http/Controllers/Anime/AnimeController.php
  2. 48 0
      app/Services/Anime/AnimeService.php

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

@@ -186,13 +186,13 @@ class AnimeController extends BaseController
         return $this->success($result);
     }
 
-    // // 动漫剧集
-    // public function segmentInfo(Request $request) {
-    //     $data = $request->all();
+    // 分镜信息
+    public function segmentInfo(Request $request) {
+        $data = $request->all();
 
-    //     $result = $this->AnimeService->segmentInfo($data);
-    //     return $this->success($result);
-    // }
+        $result = $this->AnimeService->segmentInfo($data);
+        return $this->success($result);
+    }
 
     // 复制剧集副本
     public function copyEpisodeVersion(Request $request) {

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

@@ -307,6 +307,7 @@ class AnimeService
                     'characters' => getProp($segment, 'characters'),
                     'tail_frame' => getProp($segment, 'tail_frame'),
                     'emotion' => getProp($segment, 'emotion'),
+                    'emotion_type' => getProp($segment, 'emotion_type'),
                     'gender' => getProp($segment, 'gender'),
                     'speed_ratio' => getProp($segment, 'speed_ratio'),
                     'loudness_ratio' => getProp($segment, 'loudness_ratio'),
@@ -315,6 +316,9 @@ class AnimeService
                     'voice_name' => getProp($segment, 'voice_name'),
                     'voice_type' => getProp($segment, 'voice_type'),
                     'voice_audio_url' => getProp($segment, 'voice_audio_url'),
+                    'img_url' => getProp($segment, 'img_url'),
+                    'video_url' => getProp($segment, 'video_url'),
+                    'last_frame_url' => getProp($segment, 'last_frame_url'),
                 ];
             }else {
                 $acts[getProp($segment, 'act_number')]= [
@@ -335,6 +339,7 @@ class AnimeService
                             'characters' => getProp($segment, 'characters'),
                             'tail_frame' => getProp($segment, 'tail_frame'),
                             'emotion' => getProp($segment, 'emotion'),
+                            'emotion_type' => getProp($segment, 'emotion_type'),
                             'gender' => getProp($segment, 'gender'),
                             'speed_ratio' => getProp($segment, 'speed_ratio'),
                             'loudness_ratio' => getProp($segment, 'loudness_ratio'),
@@ -343,6 +348,9 @@ class AnimeService
                             'voice_name' => getProp($segment, 'voice_name'),
                             'voice_type' => getProp($segment, 'voice_type'),
                             'voice_audio_url' => getProp($segment, 'voice_audio_url'),
+                            'img_url' => getProp($segment, 'img_url'),
+                            'video_url' => getProp($segment, 'video_url'),
+                            'last_frame_url' => getProp($segment, 'last_frame_url'),
                         ]
                     ]
                 ];
@@ -353,6 +361,46 @@ class AnimeService
         return $episode;
     }
 
+    public function segmentInfo($data) {
+        $segment_id = getProp($data, 'segment_id');
+        if (!$segment_id) {
+            Utils::throwError('1002:请选择分镜');
+        }
+        
+        // 获取分镜信息
+        $segment = DB::table('mp_episode_segments')->where('segment_id', $segment_id)->first();
+        
+        $result = [
+            'segment_id' => getProp($segment, 'segment_id'),
+            'segment_number' => getProp($segment, 'segment_number'),
+            'segment_content' => getProp($segment, 'segment_content'),
+            'description' => getProp($segment, 'description'),
+            'composition' => getProp($segment, 'composition'),
+            'camera_movement' => getProp($segment, 'camera_movement'),
+            'voice_actor' => getProp($segment, 'voice_actor'),
+            'dialogue' => getProp($segment, 'dialogue'),
+            'frame_type' => getProp($segment, 'frame_type'),
+            'scene' => getProp($segment, 'scene'),
+            'characters' => getProp($segment, 'characters'),
+            'tail_frame' => getProp($segment, 'tail_frame'),
+            'emotion' => getProp($segment, 'emotion'),
+            'emotion_type' => getProp($segment, 'emotion_type'),
+            'gender' => getProp($segment, 'gender'),
+            'speed_ratio' => getProp($segment, 'speed_ratio'),
+            'loudness_ratio' => getProp($segment, 'loudness_ratio'),
+            'emotion_scale' => getProp($segment, 'emotion_scale'),
+            'pitch' => getProp($segment, 'pitch'),
+            'voice_name' => getProp($segment, 'voice_name'),
+            'voice_type' => getProp($segment, 'voice_type'),
+            'voice_audio_url' => getProp($segment, 'voice_audio_url'),
+            'img_url' => getProp($segment, 'img_url'),
+            'video_url' => getProp($segment, 'video_url'),
+            'last_frame_url' => getProp($segment, 'last_frame_url'),
+        ];
+
+        return $result;
+    }
+
     public function copyEpisodeVersion($data) {
         $episode_id = getProp($data, 'episode_id');