lh 2 months ago
parent
commit
1d535bfcbf
1 changed files with 43 additions and 0 deletions
  1. 43 0
      app/Services/Anime/AnimeService.php

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

@@ -1661,6 +1661,49 @@ class AnimeService
     public function addSegment($data) {
     public function addSegment($data) {
         $prev_segment_id = getProp($data, 'prev_segment_id');
         $prev_segment_id = getProp($data, 'prev_segment_id');
         $segment = DB::table('mp_episode_segments')->where('segment_id', $prev_segment_id)->first();
         $segment = DB::table('mp_episode_segments')->where('segment_id', $prev_segment_id)->first();
+        if (!$segment)  Utils::throwError('20003:该分镜不存在');
+        $anime_id = getProp($segment, 'anime_id');
+        $episode_id = getProp($segment, 'episode_id');
+        $episode_number = getProp($segment, 'episode_number');
+        $segment_number = getProp($segment, 'segment_number');
+
+        $new_segment_number = $segment_number + 1;
+        $segment_id = date('YmdHis') . mt_rand(1000, 9999) . str_pad($new_segment_number, 3, "0", STR_PAD_LEFT);
+        // 分镜剧本数组
+        $insert_data = [
+            'anime_id'      => $anime_id,
+            'episode_id'    => $episode_id,
+            'episode_number' => $episode_number,
+            'act_number'    => getProp($segment, 'act_number'),
+            'act_title'     => getProp($segment, 'act_title'),
+            'segment_id'    => $segment_id,
+            'segment_number' => $new_segment_number,
+            'segment_content' => '',
+            'img_url'       => '',
+            'video_url'     => '',
+            'created_at' => date('Y-m-d H:i:s'),
+            'updated_at' => date('Y-m-d H:i:s')
+        ];
+
+        try {
+            DB::beginTransaction();
+            // 先更新序号
+            DB::table('mp_episode_segments')->where('anime_id', $anime_id)->where('episode_id', $episode_id)->where('segment_number', '>', $segment_number)->increment('segment_number');
+
+            $id = DB::table('mp_episode_segments')->insertGetId($insert_data);
+            if (!$id) {
+                Utils::throwError('20003:新增分镜失败!');
+            }
+        }catch (\Exception $e) {
+            DB::rollBack();
+            Utils::throwError('20003:'.$e->getMessage());
+        }
+        DB::commit();
+        $segment = DB::table('mp_episode_segments')->where('id', $id)->first();
+        $segment = $segment ? (array)$segment : [];
+        return $segment;
+
+        // 以下代码暂弃用
         $anime_id = getProp($segment, 'anime_id');
         $anime_id = getProp($segment, 'anime_id');
         $episode_id = getProp($segment, 'episode_id');
         $episode_id = getProp($segment, 'episode_id');
         $episode_number = getProp($segment, 'episode_number');
         $episode_number = getProp($segment, 'episode_number');