musicRepository = $musicRepository; } //音乐分类列表 public function categoryList(Request $request) { $categoryList = $this->musicRepository->category_list($request->all()); if (count($categoryList)>0) { foreach ($categoryList as $k => $v) { $v->music_count = PostMusicCategoryRel::where('music_category_id', $v['id'])->count(); } } $fractal = new Manager(); $resource = new Collection($categoryList, new MusicCategoryTransformer()); $resource->setPaginator(new IlluminatePaginatorAdapter($categoryList)); $data = $fractal->createData($resource)->toArray(); $data['extra'] = [ 'filters' => [ 'id' ], 'columns' => [ 'id', 'name', 'music_count', 'is_open' ] ]; return $data; } //新增音乐分类 public function categoryCreate(Request $request) { $validator = Validator::make($request->all(), [ 'name' => 'required|string|max:8', ]); if ($validator->fails()) { return $this->response->error($validator->errors()->first(), 500); } return $this->musicRepository->categoryCreate($request->all()); } //编辑音乐分类 public function categoryEdit(Request $request) { $validator = Validator::make($request->all(), [ 'id' => 'required|exists:post_music_category', 'name' => 'required|string|max:8', ]); if ($validator->fails()) { return $this->response->error($validator->errors()->first(), 500); } return $this->musicRepository->categoryEdit($request->all()); } //修改分类状态 public function editStatus(Request $request) { $validator = Validator::make($request->all(), [ 'id' => 'required|exists:post_music_category', 'is_open' => ['required', Rule::in(0,1)], ]); if ($validator->fails()) { return $this->response->error($validator->errors()->first(), 500); } return $this->musicRepository->editStatus($request->all()); } //删除音乐分类 public function categoryDelete(Request $request) { $validator = Validator::make($request->all(), [ 'id' => 'required|exists:post_music_category' ]); if ($validator->fails()) { return $this->response->error($validator->errors()->first(), 500); } return $this->musicRepository->categoryDelete($request->only('id')); } //音乐列表 public function musicList(Request $request) { $musicList = $this->musicRepository->musicList($request->all()); $fractal = new Manager(); $resource = new Collection($musicList, new MusicTranformer()); $resource->setPaginator(new IlluminatePaginatorAdapter($musicList)); $data = $fractal->createData($resource)->toArray(); $data['extra'] = [ 'filters' => [ 'id', 'name', 'category_id', ], 'columns' => [ 'id', 'name', 'category_name', 'music_duration', 'created_at' ] ]; return $data; } //新增音乐 public function musicCreate(Request $request) { $validator = Validator::make($request->all(), [ 'name' => 'required|string|max:50', 'url' => 'required|string', 'category_id' => 'required|integer', 'music_duration' => 'required|integer', ]); if ($validator->fails()) { return $this->response->error($validator->errors()->first(), 500); } return $this->musicRepository->musicCreate($request->all()); } //修改音乐 public function musicEdit(Request $request) { $validator = Validator::make($request->all(), [ 'id' => 'required|exists:post_music_category_rel', 'name' => 'required|string|max:50', 'category_id' => 'required|integer', 'music_duration' => 'required|integer', 'url' => 'required|string' ]); if ($validator->fails()) { return $this->response->error($validator->errors()->first(), 500); } return $this->musicRepository->musicEdit($request->all()); } //删除音乐 public function musicDelete(Request $request) { $validator = Validator::make($request->all(), [ 'id' => 'required|exists:post_music_category_rel' ]); if ($validator->fails()) { return $this->response->error($validator->errors()->first(), 500); } return $this->musicRepository->musicDelete($request->only('id')); } //用户上传音乐列表 public function userMusic(Request $request) { $musicList = $this->musicRepository->userMusic($request->all()); $fractal = new Manager(); $resource = new Collection($musicList, new UserMusicTranformer()); $resource->setPaginator(new IlluminatePaginatorAdapter($musicList)); $data = $fractal->createData($resource)->toArray(); $data['extra'] = [ 'columns' => [ 'id', 'created_at', 'username', 'name', 'url' ] ]; return $data; } }