Example #1
0
 public function doCreateAlbum(Guard $guard, Request $request)
 {
     if ($guard->guest()) {
         throw new AppException(AppException::NEED_SIGN_IN);
     }
     $musics = $request->get('musics');
     $coverImageId = $request->get('cover_image_id');
     $title = $request->get('title');
     $artist = $request->get('artist');
     $year = $request->get('year');
     $genre = $request->get('genre');
     $album = new Album();
     $album->title = $title;
     $album->artist = $artist;
     $album->year = $year;
     $album->genre = $genre;
     $album->coverImage()->associate($coverImageId);
     $album->user()->associate($guard->id());
     $album->save();
     foreach ($musics as $musicId) {
         /** @var Music $music */
         $music = Music::where('id', $musicId)->first();
         if (!$music) {
             continue;
         }
         $album->musics()->attach($musicId);
         if (!$music->coverImage) {
             $music->coverImage()->associate($album->coverImage);
             $music->save();
         }
     }
     return $this->buildResponse(trans('api.album.create.success'), Tools::toArray($album));
 }
Example #2
0
 /**
  * Show the application dashboard.
  *
  * @return \Illuminate\Http\Response
  */
 public function index()
 {
     $music = Music::orderBy('music_id', 'desc')->first();
     $love = ['song_collection_id' => $music->music_id, 'love_source' => 1];
     $loves = Love::where($love)->count();
     $is_love = false;
     if (Auth::user()) {
         $love['love_user'] = Auth::user()->id;
         $row = Love::where($love)->first();
         if ($row) {
             $is_love = true;
         }
     }
     $previous = Music::where('music_id', '<', $music->music_id)->max('music_id');
     $next = Music::where('music_id', '>', $music->music_id)->min('music_id');
     return view('music/show', compact('music', 'loves', 'is_love', 'previous', 'next'));
 }
Example #3
0
 /**
  * 按乐器种类返回统计结果
  * @method musicStatisticsByInstrument
  * @param  Request                     $request [description]
  * @return [json]                               [description]
  */
 public function musicStatisticsByInstrument(Request $request)
 {
     $instrumentValue = $request->get('instrumentValue');
     if ($instrumentValue == 0) {
         $data['allCount'] = Music::count();
         $data['onshelfCount'] = Music::where('onshelf', 2)->count();
         $data['waitForCheck'] = Music::where('onshelf', 1)->count();
         $data['deleteCount'] = Music::onlyTrashed()->count();
         // 业余考级乐曲统计
         $data['amateur_allCount'] = Music::whereHas('tags', function ($query) {
             $query->where('name', '业余考级');
         })->count();
         $data['amateur_onshelfCount'] = Music::whereHas('tags', function ($query) {
             $query->where('name', '业余考级');
         })->where('onshelf', 2)->count();
         $data['amateur_waitForCheck'] = Music::whereHas('tags', function ($query) {
             $query->where('name', '业余考级');
         })->where('onshelf', 1)->count();
         $data['amateur_deleteCount'] = Music::whereHas('tags', function ($query) {
             $query->where('name', '业余考级');
         })->onlyTrashed()->count();
         // 专业考级乐曲统计
         $data['pro_allCount'] = Music::whereHas('tags', function ($query) {
             $query->where('name', '专业考级');
         })->count();
         $data['pro_onshelfCount'] = Music::whereHas('tags', function ($query) {
             $query->where('name', '专业考级');
         })->where('onshelf', 2)->count();
         $data['pro_waitForCheck'] = Music::whereHas('tags', function ($query) {
             $query->where('name', '专业考级');
         })->where('onshelf', 1)->count();
         $data['pro_deleteCount'] = Music::whereHas('tags', function ($query) {
             $query->where('name', '专业考级');
         })->onlyTrashed()->count();
         // 热门曲目统计
         $data['hot_allCount'] = Music::whereHas('tags', function ($query) {
             $query->where('name', '热门曲目');
         })->count();
         $data['hot_onshelfCount'] = Music::whereHas('tags', function ($query) {
             $query->where('name', '热门曲目');
         })->where('onshelf', 2)->count();
         $data['hot_waitForCheck'] = Music::whereHas('tags', function ($query) {
             $query->where('name', '热门曲目');
         })->where('onshelf', 1)->count();
         $data['hot_deleteCount'] = Music::whereHas('tags', function ($query) {
             $query->where('name', '热门曲目');
         })->onlyTrashed()->count();
     } else {
         $data['allCount'] = Music::where('instrument_id', $instrumentValue)->count();
         $data['onshelfCount'] = Music::where('instrument_id', $instrumentValue)->where('onshelf', 2)->count();
         $data['waitForCheck'] = Music::where('instrument_id', $instrumentValue)->where('onshelf', 1)->count();
         $data['deleteCount'] = Music::where('instrument_id', $instrumentValue)->onlyTrashed()->count();
         // 业余考级乐曲统计
         $data['amateur_allCount'] = Music::where('instrument_id', $instrumentValue)->whereHas('tags', function ($query) {
             $query->where('name', '业余考级');
         })->count();
         $data['amateur_onshelfCount'] = Music::where('instrument_id', $instrumentValue)->whereHas('tags', function ($query) {
             $query->where('name', '业余考级');
         })->where('onshelf', 2)->count();
         $data['amateur_waitForCheck'] = Music::where('instrument_id', $instrumentValue)->whereHas('tags', function ($query) {
             $query->where('name', '业余考级');
         })->where('onshelf', 1)->count();
         $data['amateur_deleteCount'] = Music::where('instrument_id', $instrumentValue)->whereHas('tags', function ($query) {
             $query->where('name', '业余考级');
         })->onlyTrashed()->count();
         // 专业考级乐曲统计
         $data['pro_allCount'] = Music::where('instrument_id', $instrumentValue)->whereHas('tags', function ($query) {
             $query->where('name', '专业考级');
         })->count();
         $data['pro_onshelfCount'] = Music::where('instrument_id', $instrumentValue)->whereHas('tags', function ($query) {
             $query->where('name', '专业考级');
         })->where('onshelf', 2)->count();
         $data['pro_waitForCheck'] = Music::where('instrument_id', $instrumentValue)->whereHas('tags', function ($query) {
             $query->where('name', '专业考级');
         })->where('onshelf', 1)->count();
         $data['pro_deleteCount'] = Music::where('instrument_id', $instrumentValue)->whereHas('tags', function ($query) {
             $query->where('name', '专业考级');
         })->onlyTrashed()->count();
         // 热门曲目统计
         $data['hot_allCount'] = Music::where('instrument_id', $instrumentValue)->whereHas('tags', function ($query) {
             $query->where('name', '热门曲目');
         })->count();
         $data['hot_onshelfCount'] = Music::where('instrument_id', $instrumentValue)->whereHas('tags', function ($query) {
             $query->where('name', '热门曲目');
         })->where('onshelf', 2)->count();
         $data['hot_waitForCheck'] = Music::where('instrument_id', $instrumentValue)->whereHas('tags', function ($query) {
             $query->where('name', '热门曲目');
         })->where('onshelf', 1)->count();
         $data['hot_deleteCount'] = Music::where('instrument_id', $instrumentValue)->whereHas('tags', function ($query) {
             $query->where('name', '热门曲目');
         })->onlyTrashed()->count();
     }
     return $data;
 }
Example #4
0
 private function GetUploadSongData($title, $band)
 {
     $song = Music::where('title', 'like', '%' . $title . '%')->where('band', 'like', '%' . $band . '%')->first();
     return $song;
 }
Example #5
0
 public function getMusicById($id = 0)
 {
     /** @var MusicModel $music */
     $music = MusicModel::where('id', $id)->first();
     if (!$music) {
         throw new NotFoundException(NotFoundException::MUSIC_NOT_FOUND);
     }
     return $this->buildResponse(trans('api.music.get.success'), $music);
 }