post = $post; $this->postComment = $postComment; } /** * 推荐内容列表 */ public function suggestPost($request) { $perPage = isset($request['per_page']) ? $request['per_page'] : 20; return $this->post ->join('post_data', 'post_data.post_id', '=', 'post.id') ->select('post.*') ->orderBy('weight','desc') ->paginate($perPage); } /** * 评论列表 */ public function commentList($request) { $perPage = isset($request['per_page']) ? $request['per_page'] : 20; return $this->postComment ->where('post_id', $request['post_id']) ->where('parent_id', 0) ->orderBy('id','desc') ->paginate($perPage); } /** * 回复列表 */ public function replyList($request) { $perPage = isset($request['per_page']) ? $request['per_page'] : 20; return $this->postComment ->where('parent_id', $request['id']) ->orderBy('id','desc') ->paginate($perPage); } /** * 评论详情 */ public function commentDetail($request) { return $this->postComment ->where('id', $request['id']) ->first(); } /** * 更新帖子统计数量 * @param $request * @return mixed */ public function updatePostData($request) { $postId = $request['post_id']; $post = PostData::where('post_id', $postId)->first(); if (isset($request['behavior_flag']) && $request['behavior_flag'] == 'read') { $post->pv += 1; $post->pv_real += 1; } elseif (isset($request['behavior_flag']) && $request['behavior_flag'] == 'unlike') { $post->dislike += 1; } elseif (isset($request['behavior_flag']) && $request['behavior_flag'] == 'like') { if($request['behavior_value']){ $post->praise_count += 1; $post->praise_real_count += 1; PostLike::create(['uid'=>$request['target_id'],'post_id'=>$request['post_id']]); }else{ $post->praise_count -= 1; $post->praise_real_count -= 1; PostLike::where(['uid'=>$request['target_id'],'post_id'=>$request['post_id']])->delete(); } } elseif (isset($request['behavior_flag']) && $request['behavior_flag'] == 'forward') { $post->share_count += 1; $post->share_real_count += 1; } elseif (isset($request['behavior_flag']) && $request['behavior_flag'] == 'comment') { $post->comment_count += 1; } elseif (isset($request['behavior_flag']) && $request['behavior_flag'] == 'collect') { if($request['behavior_value']) { $post->collect_count += 1; $post->collect_real_count += 1; PostCollect::create(['uid'=>$request['target_id'],'post_id'=>$request['post_id']]); }else{ $post->collect_count -= 1; $post->collect_real_count -= 1; PostCollect::where(['uid'=>$request['target_id'],'post_id'=>$request['post_id']])->delete(); } } return $post->save(); } /** * 收集所有有操作的帖子,存入redis * 供后续计算帖子权重 * @param $id */ public function collectPostId($id) { $key = "community_calc_post_score"; Redis::sadd($key,$id); } }