cmsSubjectRepository = $cmsSubjectRepository; } //专题列表 public function index(Request $request) { $cmsSubject = $this->cmsSubjectRepository->index($request->all()); if (count($cmsSubject)>0) { foreach ($cmsSubject as $k => $v) { $v->product_count = CmsSubjectProduct::where('subject_id', $v['id'])->count(); } } $fractal = new Manager(); $resource = new Collection($cmsSubject, new CmsSubjectTransformer()); $resource->setPaginator(new IlluminatePaginatorAdapter($cmsSubject)); $data = $fractal->createData($resource)->toArray(); $data['extra'] = [ 'filters' => [ 'id' ], 'columns' => [ 'id', 'city_id', 'city_name', 'title', 'show_type', 'is_open', 'product_count', ] ]; return $data; } //新建专题 public function create(Request $request) { $validator = Validator::make($request->all(), [ 'product_id' => 'required', 'sort' => 'required', 'city_id' => 'required|integer', 'city_name' => 'required|string', 'title' => 'required|string', 'show_type' => ['required', Rule::in(0,1,2)], 'is_open' => ['required', Rule::in(0,1)], ]); if ($validator->fails()) { return $this->response->error($validator->errors()->first(), 500); } return $this->cmsSubjectRepository->create($request->all()); } //编辑专题 public function edit(Request $request) { $validator = Validator::make($request->all(), [ 'id' => 'required|exists:cms_subject', 'product_id' => 'required', 'sort' => 'required', 'city_id' => 'required|integer', 'city_name' => 'required|string', 'title' => 'required|string', 'show_type' => ['required', Rule::in(0,1,2)], 'is_open' => ['required', Rule::in(0,1)], ]); if ($validator->fails()) { return $this->response->error($validator->errors()->first(), 500); } return $this->cmsSubjectRepository->edit($request->all()); } //查看某专题 public function view(Request $request) { $all = $request->all(); $validator = Validator::make($all, [ 'id' => 'required|integer', ]); if($validator->fails()) { return $this->response->error($validator->errors()->first(), 500); } $getSubject = $this->cmsSubjectRepository->index($request->all()); if (count($getSubject)>0) { foreach ($getSubject as $k => $v) { $product = CmsSubjectProduct::select('subject_id','product_id','sort')->where('subject_id',$v['id'])->orderBy('sort','asc')->get(); $num = $product->toArray(); $product_arr = array_column($num,'product_id'); $getSubject[$k]->product_id = implode(',',$product_arr); $sort_arry = array_column($num,'sort'); $getSubject[$k]->sort = implode(',',$sort_arry); } } if(!$getSubject){ return $this->response->error($validator->errors()->first(), 500); } $fractal = new Manager(); $resource = new Collection($getSubject, new CmsSubjectViewTransformer()); $resource->setPaginator(new IlluminatePaginatorAdapter($getSubject)); $data = $fractal->createData($resource)->toArray(); $data['extra'] = [ 'filters' => [ 'id' ], 'columns' => [ 'id', 'city_id', 'city_name', 'title', 'show_type', 'is_open', 'product_id', 'sort', ] ]; return $data; } //删除专题 public function delete(Request $request) { $validator = Validator::make($request->all(), [ 'id' => 'required|exists:cms_subject' ]); if ($validator->fails()) { return $this->response->error($validator->errors()->first(), 500); } return $this->cmsSubjectRepository->delete($request->all()); } //修改专题状态 public function editStatus(Request $request) { $validator = Validator::make($request->all(), [ 'id' => 'required|exists:cms_subject', 'is_open' => ['required', Rule::in(0,1)], ]); if ($validator->fails()) { return $this->response->error($validator->errors()->first(), 500); } return $this->cmsSubjectRepository->editStatus($request->all()); } }