123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- <?php
- /**
- * Created by PhpStorm.
- * User: durong
- * Date: 2019/7/8
- * Time: 下午10:37
- */
- namespace App\Http\Controllers;
- use App\Models\PostMusicCategoryRel;
- use App\Repositories\MusicRepository;
- use App\Transformers\MusicCategoryTransformer;
- use App\Transformers\MusicTranformer;
- use App\Transformers\UserMusicTranformer;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Validator;
- use Illuminate\Validation\Rule;
- use League\Fractal\Manager;
- use League\Fractal\Pagination\IlluminatePaginatorAdapter;
- use League\Fractal\Resource\Collection;
- class MusicController extends Controller
- {
- public function __construct(MusicRepository $musicRepository) {
- $this->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',
- 'sort'
- ]
- ];
- 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',
- 'sort',
- '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;
- }
- }
|