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)); }
/** * 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')); }
/** * 按乐器种类返回统计结果 * @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; }
private function GetUploadSongData($title, $band) { $song = Music::where('title', 'like', '%' . $title . '%')->where('band', 'like', '%' . $band . '%')->first(); return $song; }
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); }