public static function getById($id) { $favorites = Favorite::where('user_id', $id)->get(); $ad_ids_array = []; foreach ($favorites as $favorite) { $ad_ids_array[] = $favorite->ad_id; } $ads = Ad::whereIn('id', $ad_ids_array)->paginate(20); return $ads; }
public function updateFavoriteList(Request $request) { $data = $request->all(); $questionResult = $data['question_id']; $result = explode(',', $questionResult); for ($i = 0; $i < count($result); $i++) { Favorite::where('user_id', $data['user_id'])->where('question_id', $result[$i])->delete(); } $Favoritelist = Favorite::where('user_id', $data['user_id'])->get(); for ($i = 0; $i < count($Favoritelist); $i++) { $Favoritelist[$i]['question'] = Question::where('id', $Favoritelist[$i]['question_id'])->first(); $Favoritelist[$i]['question']['favorite'] = 1; $Favoritelist[$i]['question']['practice'] = 0; $Favoritelist[$i]['question']['delete'] = 0; } return response()->json(['RetCode' => '1', 'Content' => $Favoritelist]); }
public function removefavorite($id) { if (Auth::check()) { Favorite::where('ad_id', $id)->where('user_id', Auth::user()->id)->delete(); } else { return redirect()->back(); } }
public function checkFavorite() { $userId = $this->request->input('userid'); $friendId = $this->request->input('friendid'); $UData = User::where('id', $friendId)->first(); if ($UData) { $Favorite = Favorite::where('favorite_person', $friendId)->where('favorite_by', $userId)->first(); if ($Favorite) { $Response = array('success' => '1'); } else { $Response = array('success' => '0'); } return json_encode($Response); } else { echo 'not found'; } }
public function uploadResult(Request $request) { $data = $request->all(); $questionResult = $data['question']; $result = explode(',', $questionResult); for ($i = 0; $i < count($result); $i++) { $saveResult = explode('-', $result[$i]); Result::create(['user_id' => $data['user_id'], 'question_id' => $saveResult[0], 'answer' => $saveResult[1], 'second' => $saveResult[2]]); if ($saveResult[3] == '1') { $FavoriteRecord = Favorite::where('user_id', $data['user_id'])->where('question_id', $saveResult[0])->first(); if ($FavoriteRecord == null || $FavoriteRecord == 'null') { Favorite::create(['user_id' => $data['user_id'], 'question_id' => $saveResult[0]]); } } else { if ($saveResult[3] == '0') { Favorite::where('user_id', $data['user_id'])->where('question_id', $saveResult[0])->delete(); } } } $UserRecord = UserRecord::where('user_id', $data['user_id'])->get(); $StageRecord = $UserRecord->where('stages_id', $data['stages_id'])->first(); $CrementRecord = UserRecord::where('user_id', $data['user_id'])->where('stages_id', $data['stages_id'])->max('stage_score'); $Crement = $data['score'] - $CrementRecord; $User = User::where('id', $data['user_id'])->first(); if (count($UserRecord) == 0 || $StageRecord == 'null' || $StageRecord == null) { $User->increment('score', $data['score']); } else { if ($Crement > 0) { $User->increment('score', $Crement); } } $UserSrcoreRecord = Score::where('user_id', $data['user_id'])->where('category_id', floor($data['stages_id'] / 100)); if (count($UserSrcoreRecord->get()) == 0) { Score::create(['user_id' => $data['user_id'], 'user_name' => $User['name'], 'category_id' => floor($data['stages_id'] / 100), 'score' => $data['score']]); } else { if ($Crement > 0) { $UserSrcoreRecord->first()->increment('score', $Crement); } } UserRecord::create(['user_id' => $data['user_id'], 'stages_id' => $data['stages_id'], 'accuracy' => $data['accuracy'], 'accuracy_detail' => $data['accuracy_detail'], 'status' => $data['status'], 'status_detail' => $data['status_detail'], 'stage_score' => $data['score']]); return response()->json(['RetCode' => '1']); }
public static function isUserFavoritedTopic(User $user, Topic $topic) { return Favorite::where('user_id', $user->id)->where('topic_id', $topic->id)->first(); }
public function update2(Request $request, $drama_id) { $validator = Validator::make($request->all(), ['content' => 'required_with:title', 'visible' => 'required_with:content', 'type' => 'required|in:0,1,2,3,4', 'rating' => 'in:0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5', 'title' => 'max:255']); if ($validator->fails()) { return response($validator->messages(), 422); } $favorite = Favorite::where('user_id', $request->user()->id)->where('drama_id', $drama_id)->first(); $oldType = $favorite->type; $favorite->type = $request->input('type'); if ($favorite->type == 0) { $favorite->rating = 0; } else { $favorite->rating = $request->input('rating'); } $favorite->tags = $request->input('tags'); if ($favorite->save()) { DB::table('users')->where('id', $favorite->user_id)->decrement('favorite' . $oldType); DB::table('users')->where('id', $favorite->user_id)->increment('favorite' . $favorite->type); $tags_old = DB::table('tagmaps')->where('drama_id', $favorite->drama_id)->where('user_id', $favorite->user_id)->lists('tag_id'); if ($request->input('tags')) { $tagsinput = explode(',', $request->input('tags')); } else { $tagsinput = []; } $tags_new = []; foreach ($tagsinput as $tag) { $tags_new[] = Tag::firstOrCreate(['name' => $tag])->id; } $adds = array_diff($tags_new, $tags_old); $add_maps = []; foreach ($adds as $tag) { $add_maps[] = ['drama_id' => $favorite->drama_id, 'user_id' => $favorite->user_id, 'tag_id' => $tag]; } $removes = array_diff($tags_old, $tags_new); DB::table('tagmaps')->insert($add_maps); DB::table('tagmaps')->where('drama_id', $favorite->drama_id)->where('user_id', $favorite->user_id)->whereIn('tag_id', $removes)->delete(); $review = Review::where('user_id', $favorite->user_id)->where('drama_id', $drama_id)->where('episode_id', 0)->first(); if ($review) { $review->title = $request->input('title'); $review->content = $request->input('content'); $review->visible = $request->input('visible'); if (!$review->save()) { return response('收藏修改成功,评论修改失败', 422); } } else { if ($request->has('content')) { $review = new Review(); $review->user_id = $favorite->user_id; $review->drama_id = $drama_id; $review->title = $request->input('title'); $review->content = $request->input('content'); $review->visible = $request->input('visible'); if ($review->save()) { DB::table('users')->where('id', $review->user_id)->increment('reviews'); DB::table('dramas')->where('id', $review->drama_id)->increment('reviews'); } else { return response('收藏修改成功,添加评论失败', 422); } } } return ['result' => 'success']; } else { return response('修改失败', 422); } }
public function update2(Request $request, $drama_id) { $this->validate($request, ['content' => 'required_with:title', 'visible' => 'required_with:content', 'type' => 'required|in:0,1,2,3,4', 'rating' => 'in:0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5', 'title' => 'max:255']); $favorite = Favorite::where('user_id', $request->user()->id)->where('drama_id', $drama_id)->first(); $oldType = $favorite->type; $favorite->type = $request->input('type'); if ($favorite->type == 0) { $favorite->rating = 0; } else { $favorite->rating = $request->input('rating'); } $favorite->tags = $request->input('tags'); //修改收藏 if ($favorite->save()) { DB::table('users')->where('id', $favorite->user_id)->decrement('favorite' . $oldType); DB::table('users')->where('id', $favorite->user_id)->increment('favorite' . $favorite->type); //获取用户当前标签 $tags_old = DB::table('tagmaps')->where('drama_id', $favorite->drama_id)->where('user_id', $favorite->user_id)->lists('tag_id'); //获取输入标签 if ($request->input('tags')) { $tagsinput = explode(',', $request->input('tags')); } else { $tagsinput = []; } //防止出现空字符串标签 $tags_new = []; foreach ($tagsinput as $tag) { $tags_new[] = Tag::firstOrCreate(['name' => $tag])->id; } //得到新输入标签中有而过去无的新增标签映射 $adds = array_diff($tags_new, $tags_old); $add_maps = []; foreach ($adds as $tag) { $add_maps[] = ['drama_id' => $favorite->drama_id, 'user_id' => $favorite->user_id, 'tag_id' => $tag]; } //得到过去有而现在无的移除标签 $removes = array_diff($tags_old, $tags_new); DB::table('tagmaps')->insert($add_maps); DB::table('tagmaps')->where('drama_id', $favorite->drama_id)->where('user_id', $favorite->user_id)->whereIn('tag_id', $removes)->delete(); $review = Review::where('user_id', $favorite->user_id)->where('drama_id', $drama_id)->where('episode_id', 0)->first(); if ($review) { $review->title = $request->input('title'); $review->content = $request->input('content'); $review->visible = $request->input('visible'); if (!$review->save()) { return redirect()->back()->withInput()->withErrors('收藏修改成功,评论修改失败'); } } else { if ($request->has('content')) { $review = new Review(); $review->user_id = $favorite->user_id; $review->drama_id = $drama_id; $review->title = $request->input('title'); $review->content = $request->input('content'); $review->visible = $request->input('visible'); if ($review->save()) { DB::table('users')->where('id', $review->user_id)->increment('reviews'); DB::table('dramas')->where('id', $review->drama_id)->increment('reviews'); } else { return redirect()->back()->withInput()->withErrors('收藏修改成功,评论添加失败'); } } } return redirect()->route('drama.show', [$drama_id]); } else { return redirect()->back()->withInput()->withErrors('修改失败'); } }
/** * Check is the ad authenticated user's favorite. * * @return boolean */ public function isTheUsersFavorite() { if ($user = Auth::user()) { // todo: change to relation $count = Favorite::where('ad_id', $this->id)->where('user_id', $user->id)->count(); if ($count > 0) { return true; } } return false; }