circleRepository = $circleRepository; $this->circleArticleRepository = $circleArticleRepository; $this->circleMemberRepository = $circleMemberRepository; $this->circleMessageRepository = $circleMessageRepository; } public function valid(Request $request){ } /** * 圈子首页 * @param Request $request */ public function index(Request $request) { $userInfo = $this->getUserInfo(); if ($userInfo) { $uid = $userInfo['uid']; } else { $uid = 0; } $validator = Validator::make($request->all(), [ 'id' => 'required|exists:interest_circles' ]); if ($validator->fails()) { return $this->jsonError($validator->errors()->first()); } $detail = $this->circleRepository->detail($request->all()); if ($detail) { $fractal = new Manager(); $res = new Item($detail, new DetailTransformer($uid)); $data = $fractal->createData($res)->toArray(); } return $this->jsonSuccess($data); } /** * 查询圈子问题 * @param Request $request * @return array */ public function getQuestion(Request $request) { $userInfo = $this->getUserInfo(); if ($userInfo) { $uid = $userInfo['uid']; } else { $uid = 0; } $validator = Validator::make($request->all(), [ 'id' => 'required|exists:interest_circles' ]); if ($validator->fails()) { return $this->jsonError($validator->errors()->first()); } $detail = $this->circleRepository->detail($request->all()); if ($detail) { $fractal = new Manager(); $res = new Item($detail, new QuestionTransformer($uid)); $data = $fractal->createData($res)->toArray(); } return $this->jsonSuccess($data); } /** * 加入圈子 * @param Request $request * @return array */ public function joinCircle(Request $request) { $userInfo = $this->getUserInfo(); if (empty($userInfo)) { return $this->jsonError('获取用户信息失败'); } // else{ // $userInfo['uid'] = 268; // } $validator = Validator::make($request->all(), [ 'id' => 'required|exists:interest_circles' ]); if ($validator->fails()) { return $this->jsonError($validator->errors()->first()); } return $this->circleRepository->joinCircle($request->all(), $userInfo); } /** * 退出圈子 * @param Request $request * @return array */ public function exitCircle(Request $request) { $userInfo = $this->getUserInfo(); if (empty($userInfo)) { return $this->jsonError('获取用户信息失败'); } // else{ // $userInfo['uid'] = 268; // } $validator = Validator::make($request->all(), [ 'id' => 'required|exists:interest_circles' ]); if ($validator->fails()) { return $this->jsonError($validator->errors()->first()); } return $this->circleRepository->exitCircle($request->all(), $userInfo); } /** * 精华列表 * @param Request $request * @return array */ public function articleList(Request $request) { $userInfo = $this->getUserInfo(); if ($userInfo) { $uid = $userInfo['uid']; $inviteCode = $userInfo['invite_code']; } else { $uid = 0; $inviteCode = ''; } $validator = Validator::make($request->all(), [ 'id' => 'required|exists:interest_circles' ]); if ($validator->fails()) { return $this->jsonError($validator->errors()->first()); } $list = $this->circleArticleRepository->lists($request->all()); $fractal = new Manager(); $resource = new Collection($list, new ArticleListTransformer($uid, $inviteCode)); $resource->setPaginator(new IlluminatePaginatorAdapter($list)); $data = $fractal->createData($resource)->toArray(); return jsonSuccess($data); } /** * 圈子成员列表 * @param Request $request * @return array */ public function memberList(Request $request) { $validator = Validator::make($request->all(), [ 'id' => 'required|exists:interest_circles' ]); if ($validator->fails()) { return $this->jsonError($validator->errors()->first()); } $list = $this->circleMemberRepository->lists($request->all()); $fractal = new Manager(); $resource = new Collection($list, new CircleMemberTransformer()); $resource->setPaginator(new IlluminatePaginatorAdapter($list)); $data = $fractal->createData($resource)->toArray(); return jsonSuccess($data); } public function messageList(Request $request){ $validator = Validator::make($request->all(), [ 'id' => 'required|exists:interest_circles' ]); if ($validator->fails()) { return $this->jsonError($validator->errors()->first()); } $list = $this->circleMessageRepository->lists($request->all()); $fractal = new Manager(); $resource = new Collection($list, new MessageListTransformer()); $resource->setPaginator(new IlluminatePaginatorAdapter($list)); $data = $fractal->createData($resource)->toArray(); return jsonSuccess($data); } }