|
|
@@ -1661,6 +1661,49 @@ class AnimeService
|
|
|
public function addSegment($data) {
|
|
|
$prev_segment_id = getProp($data, 'prev_segment_id');
|
|
|
$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');
|
|
|
$episode_id = getProp($segment, 'episode_id');
|
|
|
$episode_number = getProp($segment, 'episode_number');
|