postRepositories = $postRepositories; } /** * 推荐内容列表 */ public function suggestPost(Request $request) { $userInfo = $this->getUserInfo(); if(empty($userInfo)){ Log::info('获取用户信息失败'); return jsonError('获取用户信息失败'); } $param = $request->all(); $list = $this->postRepositories->suggestPost($param); $fractal = new Manager(); $resource = new Collection($list, new SuggestTransformer($userInfo['uid'])); $resource->setPaginator(new IlluminatePaginatorAdapter($list)); $data = $fractal->createData($resource)->toArray(); if(!(isset($param['current_page']) && $param['current_page'] > 1)){ $newData = []; foreach($data['data'] as $key => $val){ if($key == 1){ $newData[] = ['show_type' => 1]; } $newData[] = $val; } $data['data'] = $newData; } return jsonSuccess($data); } /** * 评论列表 */ public function commentList(Request $request) { $validator = Validator::make($request->all(), [ 'post_id' => 'required|integer', ]); if ($validator->fails()) { return jsonError($validator->errors()->first()); } $list = $this->postRepositories->commentList($request->all()); $fractal = new Manager(); $resource = new Collection($list, new CommentTransformer()); $resource->setPaginator(new IlluminatePaginatorAdapter($list)); $data = $fractal->createData($resource)->toArray(); return jsonSuccess($data); } /** * 回复列表 */ public function replyList(Request $request) { $validator = Validator::make($request->all(), [ 'id' => 'required|integer', ]); if ($validator->fails()) { return jsonError($validator->errors()->first()); } $detail = $this->postRepositories->commentDetail($request->all()); if(!$detail){ return jsonError('获取评论信息失败'); } $list = $this->postRepositories->replyList($request->all()); $fractal = new Manager(); $resource = new Collection($list, new ReplyTransformer()); $resource->setPaginator(new IlluminatePaginatorAdapter($list)); $data = $fractal->createData($resource)->toArray(); $data['data']['extra'] = [ 'id' => $detail['id'], 'uid' => $detail['uid'], 'username' => $detail['username'], 'reply_count' => $detail->reply->count(), 'avatar' => $detail['avatar'], 'content' => $detail['is_delete']?'该评论已被删除':$detail['content'], 'created_at' => Carbon::parse($detail['created_at'])->diffForHumans(), ]; return jsonSuccess($data); } }