Exemple #1
0
 public function show(Request $request, $id)
 {
     $episode = Episode::find($id, ['id', 'drama_id', 'title', 'alias', 'release_date', 'url', 'sc', 'duration', 'poster_url', 'introduction', 'reviews']);
     $episode->load(['drama' => function ($query) {
         $query->select('id', 'title', 'type', 'era', 'genre', 'original');
     }]);
     if (Auth::check()) {
         $episode->userFavorite = Epfav::select('type', 'rating')->where('user_id', $request->user()->id)->where('episode_id', $id)->first();
     }
     return $episode;
 }
Exemple #2
0
 public function destroy(Request $request, $id)
 {
     $version = Episodever::select('user_id')->where('episode_id', $id)->where('first', 1)->first();
     if ($version->user_id != $request->user()->id) {
         return '抱歉, 目前仅支持添加此条目的用户删除分集> <';
     }
     $favorite = Epfav::select('user_id')->where('episode_id', $id)->first();
     if ($favorite) {
         return '抱歉, 已有人收藏本集,不能删除> <';
     }
     $review = Review::select('id')->where('episode_id', $id)->first();
     if ($review) {
         return '抱歉,已有人评论本集,不能删除> <';
     }
     $role = Role::select('id')->where('episode_id', $id)->first();
     if ($role) {
         return '抱歉,请先逐一删除SC关联后再删除本集';
     }
     $item = Item::select('id')->where('episode_id', $id)->first();
     if ($item) {
         return '抱歉,已有剧单收录本集,不能删除> <';
     }
     $ed = Ed::select('id')->where('episode_id', $id)->first();
     if ($ed) {
         return '抱歉,请先逐一删除歌曲关联后再删除本集';
     }
     $episode = Episode::find($id, ['id', 'drama_id']);
     if ($episode->delete()) {
         DB::table('users')->where('id', $version->user_id)->decrement('episodevers');
         return redirect()->route('drama.show', [$episode->drama_id]);
     } else {
         return '删除失败';
     }
 }
Exemple #3
0
 public function destroy(Request $request, $episode_id)
 {
     $user_id = $request->user()->id;
     $favorite = Epfav::select('type')->where('user_id', $user_id)->where('episode_id', $episode_id)->first();
     $result = DB::table('epfavs')->where('user_id', $user_id)->where('episode_id', $episode_id)->delete();
     if ($result) {
         DB::table('users')->where('id', $user_id)->decrement('epfav' . $favorite->type);
         DB::table('episodes')->where('id', $episode_id)->decrement('favorites');
         return ['result' => 'success'];
     }
     return response('删除失败> <', 422);
 }
Exemple #4
0
 /**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function show(Request $request, $id)
 {
     $drama = Drama::find($id, ['id', 'title', 'alias', 'type', 'era', 'genre', 'original', 'count', 'state', 'sc', 'poster_url', 'introduction', 'reviews', 'favorites']);
     $episodes = Episode::select('id', 'title', 'alias', 'release_date', 'url', 'sc', 'duration', 'poster_url', 'introduction')->where('drama_id', $id)->orderByRaw('release_date, id')->get();
     $roles = Role::with(['sc' => function ($query) {
         $query->select('id', 'name');
     }])->select('sc_id', 'job')->distinct()->where('drama_id', $id)->whereIn('job', [0, 1, 2, 3, 4, 11])->get();
     $roles = $roles->groupBy('job');
     $reviews = Review::with(['user' => function ($query) {
         $query->select('id', 'name');
     }, 'episode' => function ($query) {
         $query->select('id', 'title');
     }])->select('id', 'episode_id', 'user_id', 'title', 'content', 'created_at', 'banned')->where('drama_id', $id)->orderBy('id', 'desc')->take(20)->get();
     $eds = Ed::with(['song' => function ($query) {
         $query->select('id', 'title', 'artist');
     }])->select('song_id')->distinct()->where('drama_id', $id)->get();
     $listids = Item::select('list_id')->where('drama_id', $id)->where('episode_id', 0)->orderBy('id', 'desc')->take(10)->lists('list_id');
     $lists = Dramalist::with(['user' => function ($query) {
         $query->select('id', 'name');
     }])->select('id', 'title', 'user_id')->whereIn('id', $listids)->get();
     $favorites = Favorite::with(['user' => function ($query) {
         $query->select('id', 'name');
     }])->select('user_id', 'type', 'updated_at')->where('drama_id', $id)->orderBy('updated_at', 'desc')->take(5)->get();
     $tagmaps = Tagmap::with('tag')->select(DB::raw('count(*) as count, tag_id'))->where('drama_id', $id)->groupBy('tag_id')->orderBy('count', 'desc')->take(20)->get();
     //若用户已登录则取得其对整部剧及每个分集的收藏状态,及其全部评论
     $epfavs = [];
     if (Auth::check()) {
         $user_id = $request->user()->id;
         $favorite = Favorite::select('id', 'user_id', 'type', 'rating', 'tags')->where('user_id', $user_id)->where('drama_id', $id)->first();
         $ids = $episodes->pluck('id');
         $rows = Epfav::select('episode_id', 'type', 'rating')->where('user_id', $user_id)->whereIn('episode_id', $ids->all())->get();
         foreach ($rows as $row) {
             $epfavs[$row->episode_id] = $row;
         }
         $userReviews = Review::with(['episode' => function ($query) {
             $query->select('id', 'title');
         }])->select('id', 'episode_id', 'title', 'content', 'created_at')->where('user_id', $user_id)->where('drama_id', $id)->get();
         $usertags = Tagmap::with('tag')->select(DB::raw('count(*) as count, tag_id'))->where('user_id', $user_id)->groupBy('tag_id')->orderBy('count', 'desc')->take(15)->get();
     } else {
         $favorite = 0;
         $userReviews = 0;
         $usertags = [];
     }
     return view('drama.show', ['drama' => $drama, 'episodes' => $episodes, 'reviews' => $reviews, 'eds' => $eds, 'roles' => $roles, 'lists' => $lists, 'favorites' => $favorites, 'tagmaps' => $tagmaps, 'favorite' => $favorite, 'epfavs' => $epfavs, 'userReviews' => $userReviews, 'usertags' => $usertags]);
 }
Exemple #5
0
 public function destroy(Request $request, $episode_id)
 {
     $user_id = $request->user()->id;
     $favorite = Epfav::select('type')->where('user_id', $user_id)->where('episode_id', $episode_id)->first();
     $result = DB::table('epfavs')->where('user_id', $user_id)->where('episode_id', $episode_id)->delete();
     if ($result) {
         DB::table('users')->where('id', $user_id)->decrement('epfav' . $favorite->type);
         DB::table('episodes')->where('id', $episode_id)->decrement('favorites');
     }
     return redirect()->back();
 }