categroupRepository = $categoryRepository; $this->topicRepository = $topicRepository; } //列表 public function index(Request $request){ $topic= $this->topicRepository->index($request->all()); $fractal = new Manager(); $resource = new Collection($topic, new TopicTransformer()); $resource->setPaginator(new IlluminatePaginatorAdapter($topic)); $data = $fractal->createData($resource)->toArray(); $data['extra'] = [ 'filters' => [ 'name', 'topic_status', ], 'columns' => [ 'id', 'name', 'category_list', 'img', 'post_count', 'follow_count', 'page_count', 'created_at', 'is_suggest', 'is_hot', 'is_open', ] ]; return $data; } //详情 public function view(Request $request){ $validator = Validator::make($request->all(), [ 'id' => 'required|integer', ]); if ($validator->fails()) { return $this->response->error($validator->errors()->first(), 500); } $topic = $this->topicRepository->view($request->all()); return $this->response->item($topic, new DetailTopicTransformer()); } //添加 public function create(Request $request){ $validator = Validator::make($request->all(), [ 'name' => 'required|string|max:10', 'img' => 'required|url', 'desc' => 'required|string|max:100', 'category_ids' => 'required|string', 'base_count' => 'min:0|max:10000', ]); if ($validator->fails()) { return $this->response->error($validator->errors()->first(), 500); } return $this->topicRepository->create($request->all()); } //编辑 public function edit(Request $request){ $validator = Validator::make($request->all(), [ 'id'=>'integer|required', 'name' => 'required|string|max:10', 'img' => 'required|url', 'desc' => 'required|string|max:100', 'category_ids' => 'required|string', 'base_count' => 'min:0|max:10000', ]); if ($validator->fails()) { return $this->response->error($validator->errors()->first(), 500); } return $this->topicRepository->edit($request->all()); } //开启 public function isOpen(Request $request) { $validator = Validator::make($request->all(), [ 'id' => 'integer|required', 'is_open' => ['required', Rule::in(0, 1)] ]); if ($validator->fails()) { return $this->response->error($validator->errors()->first(), 500); } return $this->topicRepository->update($request->all()); } //开启 public function setStatus(Request $request) { $validator = Validator::make($request->all(), [ 'id' => 'integer|required', 'type'=>['required', Rule::in(1, 2)], 'status' => ['required', Rule::in(0, 1)], ]); if ($validator->fails()) { return $this->response->error($validator->errors()->first(), 500); } return $this->topicRepository->update($request->all()); } //获取多个话题 public function getTopic(Request $request){ $validator = Validator::make($request->all(), [ 'ids' => 'required', ]); if ($validator->fails()) { return $this->response->error($validator->errors()->first(), 500); } return $this->topicRepository->getTopics($request['ids']); } /** * 重置话题redis */ public function resetRedis(){ return $this->topicRepository->resetRedis(); } public function getMemberTopic(Request $request){ $validator = Validator::make($request->all(), [ 'uid' => 'required', ]); if ($validator->fails()) { return $this->response->error($validator->errors()->first(), 500); } return $this->topicRepository->getMemberTopics($request['uid']); } }