|
|
@@ -69,9 +69,10 @@ class AnimeService
|
|
|
}
|
|
|
|
|
|
// 保存角色信息
|
|
|
- $boolen = DB::table('mp_anime_episodes')->where('anime_id', $anime_id)->where('episode_number', $episode_number)->update([
|
|
|
+ $boolen = DB::table('mp_anime_episodes')->where('anime_id', $anime_id)->where('episode_number', $episode_number)->where('is_default', 1)->update([
|
|
|
'roles' => json_encode($roles, 256),
|
|
|
'generate_status' => '执行中',
|
|
|
+ 'generate_status' => date('Y-m-d H:i:s'),
|
|
|
'updated_at' => date('Y-m-d H:i:s')
|
|
|
]);
|
|
|
if (!$boolen) {
|
|
|
@@ -217,34 +218,15 @@ class AnimeService
|
|
|
$anime['roles'] = json_decode($anime['roles']);
|
|
|
$anime['scenes'] = json_decode($anime['scenes']);
|
|
|
|
|
|
- // // 获取分集信息
|
|
|
- // $episodes = DB::table('mp_anime_episodes')->where('anime_id', $anime_id)->orderBy('episode_number')
|
|
|
- // ->select('id', 'episode_number', 'title', 'content', 'segment_number', 'segment_content')
|
|
|
- // ->orderBy('episode_number')->orderBy('segment_number')->get()->map(function ($value) {
|
|
|
- // return (array)$value;
|
|
|
- // })->toArray();
|
|
|
- // $return_episodes = [];
|
|
|
- // foreach($episodes as $episode) {
|
|
|
- // $episode_number = getProp($episode, 'episode_number');
|
|
|
- // if (isset($return_episodes[$episode_number])) {
|
|
|
- // $return_episodes[$episode_number]['segments'][] = [
|
|
|
- // 'segment_number' => getProp($episode, 'segment_number'),
|
|
|
- // 'segment_content' => getProp($episode, 'segment_content')
|
|
|
- // ];
|
|
|
- // }else {
|
|
|
- // $return_episodes[$episode_number] = [
|
|
|
- // 'episode_number' => $episode_number,
|
|
|
- // 'title' => getProp($episode, 'title'),
|
|
|
- // 'segments' => [
|
|
|
- // [
|
|
|
- // 'segment_number' => getProp($episode, 'segment_number'),
|
|
|
- // 'segment_content' => getProp($episode, 'segment_content')
|
|
|
- // ]
|
|
|
- // ]
|
|
|
- // ];
|
|
|
- // }
|
|
|
- // }
|
|
|
- // $anime['episodes'] = array_values($return_episodes);
|
|
|
+ // 获取分集信息
|
|
|
+ $episodes = DB::table('mp_anime_episodes')->where('anime_id', $anime_id)->where('is_default', 1)
|
|
|
+ ->select('id as episode_id', 'episode_number', 'title')
|
|
|
+ ->orderBy('episode_number')->get()->map(function ($value) {
|
|
|
+ return (array)$value;
|
|
|
+ })->toArray();
|
|
|
+
|
|
|
+ $anime['episodes'] = $episodes;
|
|
|
+
|
|
|
return $anime;
|
|
|
}
|
|
|
|
|
|
@@ -255,7 +237,7 @@ class AnimeService
|
|
|
Utils::throwError('1002:请选择剧集');
|
|
|
}
|
|
|
|
|
|
- $episode = DB::table('mp_anime_episodes')->where('anime_id', $anime_id)->where('episode_number', $episode_number)->select('anime_id', 'episode_number', 'title', 'intro', 'art_style', 'roles', 'scenes', 'acts')->first();
|
|
|
+ $episode = DB::table('mp_anime_episodes')->where('anime_id', $anime_id)->where('episode_number', $episode_number)->where('is_default', 1)->select('id as episode_id', 'anime_id', 'episode_number', 'title', 'intro', 'art_style', 'roles', 'scenes', 'acts')->first();
|
|
|
if (!$episode) Utils::throwError('20003: 该剧集不存在!');
|
|
|
$episode = (array)$episode;
|
|
|
$episode['roles'] = json_decode($episode['roles'], true);
|
|
|
@@ -264,4 +246,96 @@ class AnimeService
|
|
|
|
|
|
return $episode;
|
|
|
}
|
|
|
+
|
|
|
+ public function copyEpisodeVersion($data) {
|
|
|
+ $episode_id = getProp($data, 'episode_id');
|
|
|
+
|
|
|
+ $episode = DB::table('mp_anime_episodes')->where('id', $episode_id)->first();
|
|
|
+ if (!$episode) Utils::throwError('20003:该剧集不存在');
|
|
|
+
|
|
|
+ $episode = (array)$episode;
|
|
|
+ $count = DB::table('mp_anime_episodes')->where('anime_id', $episode['anime_id'])->where('episode_number', $episode['episode_number'])->count('id');
|
|
|
+ $sequence = $count + 1;
|
|
|
+ unset($episode['id']);
|
|
|
+ $episode['sequence'] = $sequence;
|
|
|
+ $episode['created_at'] = date('Y-m-d H:i:s');
|
|
|
+ $episode['updated_at'] = date('Y-m-d H:i:s');
|
|
|
+ $episode['is_default'] = 1;
|
|
|
+
|
|
|
+ try {
|
|
|
+ DB::beginTransaction();
|
|
|
+ // 移除is_default标志
|
|
|
+ $boolen = DB::table('mp_anime_episodes')->where('anime_id', $episode['anime_id'])->where('episode_number', $episode['episode_number'])->update(['is_default' => 0, 'updated_at'=>date('Y-m-d H:i:s')]);
|
|
|
+ if (!$boolen) {
|
|
|
+ Utils::throwError('20003:更新失败!');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 新增副本
|
|
|
+ $new_episode_id = DB::table('mp_anime_episodes')->insertGetId($episode);
|
|
|
+ if (!$new_episode_id) {
|
|
|
+ Utils::throwError('20003:创建副本失败!');
|
|
|
+ }
|
|
|
+ $episode['episode_id'] = $new_episode_id;
|
|
|
+ }catch (\Exception $e) {
|
|
|
+ DB::rollBack();
|
|
|
+ Utils::throwError('20003:'.$e->getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ DB::commit();
|
|
|
+
|
|
|
+ return $episode;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function episodeVersions($data) {
|
|
|
+ $anime_id = getProp($data, 'anime_id');
|
|
|
+ $episode_number = getProp($data, 'episode_number');
|
|
|
+ if (!$anime_id || !$episode_number) {
|
|
|
+ Utils::throwError('1002:请选择剧集');
|
|
|
+ }
|
|
|
+
|
|
|
+ $episodes = DB::table('mp_anime_episodes')->where('anime_id', $anime_id)->where('episode_number', $episode_number)->select('anime_id', 'episode_number', 'sequence', 'title', 'intro', 'art_style', 'roles', 'scenes', 'acts')->get()->map(function($value) {
|
|
|
+ return (array)$value;
|
|
|
+ })->toArray();
|
|
|
+ if (!$episodes) Utils::throwError('20003: 该剧集不存在!');
|
|
|
+ foreach($episodes as &$episode) {
|
|
|
+ $episode['version'] = 'V'.$episode['sequence'];
|
|
|
+ $episode['roles'] = json_decode($episode['roles'], true);
|
|
|
+ $episode['scenes'] = json_decode($episode['scenes'], true);
|
|
|
+ $episode['acts'] = json_decode($episode['acts'], true);
|
|
|
+ }
|
|
|
+
|
|
|
+ return $episodes;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function bindEpisodeVersion($data) {
|
|
|
+ $episode_id = getProp($data, 'episode_id');
|
|
|
+
|
|
|
+ $episode = DB::table('mp_anime_episodes')->where('id', $episode_id)->first();
|
|
|
+ if (!$episode) Utils::throwError('20003:该剧集不存在');
|
|
|
+ $episode = (array)$episode;
|
|
|
+
|
|
|
+ if ((int)$episode['is_default'] === 1) return true;
|
|
|
+
|
|
|
+ try {
|
|
|
+ DB::beginTransaction();
|
|
|
+ // 移除is_default标志
|
|
|
+ $boolen = DB::table('mp_anime_episodes')->where('anime_id', $episode['anime_id'])->where('episode_number', $episode['episode_number'])->update(['is_default' => 0, 'updated_at'=>date('Y-m-d H:i:s')]);
|
|
|
+ if (!$boolen) {
|
|
|
+ Utils::throwError('20003:更新失败!');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 绑定副本
|
|
|
+ $boolen2 = DB::table('mp_anime_episodes')->where('id', $episode_id)->update(['is_default' => 1, 'updated_at'=>date('Y-m-d H:i:s')]);
|
|
|
+ if (!$boolen2) {
|
|
|
+ Utils::throwError('20003:绑定失败!');
|
|
|
+ }
|
|
|
+ }catch (\Exception $e) {
|
|
|
+ DB::rollBack();
|
|
|
+ Utils::throwError('20003:'.$e->getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ DB::commit();
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|