diff --git a/OngekiScoreLog/app/Http/Controllers/ViewUserController.php b/OngekiScoreLog/app/Http/Controllers/ViewUserController.php index e50ae4f..107d36e 100644 --- a/OngekiScoreLog/app/Http/Controllers/ViewUserController.php +++ b/OngekiScoreLog/app/Http/Controllers/ViewUserController.php @@ -340,7 +340,12 @@ public function getUserPage(Request $request, $id, $mode = null){ return view('user', compact('id', 'status', 'score', 'stat', 'mode', 'submenuActive', 'sidemark', 'archive')); } - public function getOverDamegePage($id){ + public function getOverDamegePage($id, $difficulty = ""){ + // 存在しないdifficultyが指定された場合はリダイレクト + if(!in_array($difficulty, ["", "basic", "advanced", "expert", "master", "lunatic"])){ + return redirect("/user/" . $id . "/overdamage"); + } + $userStatus = new UserStatus(); $user = User::where('id' ,$id)->first(); $status = $userStatus->getRecentUserData($id); @@ -380,30 +385,24 @@ public function getOverDamegePage($id){ // 自分のスコアを取得 $score = (new ScoreData)->getRecentUserScore($id)->addMusicData()->exclusionDeletedMusic()->getValue(); - // 難易度を通常難易度1つ+LUNATICだけに絞る - // FIXME: こんなのコード側でやっちゃいけない... けどテーブル設計的にどうしようもなく... - $temp = []; + // 難易度を指定のものに絞る $scoreDatas = []; { foreach ($score as $value) { $key = $value->song_id; - if($value->difficulty === 10){ - if($value->over_damage_high_score !== "0.00"){ + if($value->over_damage_high_score !== "0.00"){ + if(($difficulty === "" && ($value->difficulty === 3 || $value->difficulty === 10)) + || ($difficulty === "basic" && $value->difficulty === 0) + || ($difficulty === "advanced" && $value->difficulty === 1) + || ($difficulty === "expert" && $value->difficulty === 2) + || ($difficulty === "master" && $value->difficulty === 3) + || ($difficulty === "lunatic" && $value->difficulty === 10) + ){ $scoreDatas[] = $value; } - }else{ - $temp[$key][] = $value; - } - } - - foreach ($temp as $value) { - array_multisort(array_column($value, 'over_damage_high_score'), SORT_DESC, $value); - if($value[0]->over_damage_high_score !== "0.00"){ - $scoreDatas[] = $value[0]; } } } - - return view('user_overdamage', compact('id', 'status', 'lastUpdate', 'scoreDatas', 'topRankerScore')); + return view('user_overdamage', compact('id', 'difficulty', 'status', 'lastUpdate', 'scoreDatas', 'topRankerScore')); } } diff --git a/OngekiScoreLog/resources/views/layouts/components/user/song_status_overdamage.blade.php b/OngekiScoreLog/resources/views/layouts/components/user/song_status_overdamage.blade.php index b13b50b..7ac4917 100644 --- a/OngekiScoreLog/resources/views/layouts/components/user/song_status_overdamage.blade.php +++ b/OngekiScoreLog/resources/views/layouts/components/user/song_status_overdamage.blade.php @@ -1,8 +1,17 @@

登録されている全ユーザーのオーバーダメージのうち、一番高いものと比較することが出来ます。
+ (※全国ランキング1位のスコアではありません!)
OD埋めなどにご活用ください。

-

プレイしている楽曲内で、一番ODが高い難易度のみ表示されます。全難易度のODが0の曲は表示されません。

- 最終更新: {{$lastUpdate->format('Y-m-d H:i:s')}} (?%表示は未集計です) +

最終更新: {{$lastUpdate->format('Y-m-d H:i:s')}} (?%表示は未集計です)

+ +
+ Master + Lunatic + Basic + Advanced + Expert + Master + Lunatic +
diff --git a/OngekiScoreLog/resources/views/user_overdamage.blade.php b/OngekiScoreLog/resources/views/user_overdamage.blade.php index dbe1f2d..9933e0d 100644 --- a/OngekiScoreLog/resources/views/user_overdamage.blade.php +++ b/OngekiScoreLog/resources/views/user_overdamage.blade.php @@ -66,7 +66,7 @@ {{-- @component('layouts/components/user/song_filter') @endcomponent --}} - @component('layouts/components/user/song_status_overdamage', ['score' => $scoreDatas, 'topRankerScore' => $topRankerScore, 'id' => $id, 'lastUpdate' => $lastUpdate]) + @component('layouts/components/user/song_status_overdamage', ['score' => $scoreDatas, 'topRankerScore' => $topRankerScore, 'id' => $id, 'difficulty' => $difficulty, 'lastUpdate' => $lastUpdate]) @endcomponent @endsection diff --git a/OngekiScoreLog/routes/web.php b/OngekiScoreLog/routes/web.php index 73bf518..aa1f1c5 100644 --- a/OngekiScoreLog/routes/web.php +++ b/OngekiScoreLog/routes/web.php @@ -20,9 +20,7 @@ Route::get('/user/{id}/trophy', 'ViewUserTrophyController@getIndex')->where(['id' => '\d+']); Route::get('/user/{id}/music/{music}/{difficulty}', 'ViewUserMusicController@getIndex')->where(['id' => '\d+', 'music' => '\d+', 'difficulty' => '\w+']); Route::get('/user/{id}/music/{music}', 'ViewUserMusicController@getRedirect')->where(['id' => '\d+', 'music' => '\d+']); -Route::middleware('throttle:5,1')->group(function () { - Route::get('/user/{id}/overdamage', 'ViewUserController@getOverDamegePage')->where(['id' => '\d+']); -}); +Route::get('/user/{id}/overdamage/{difficulty?}', 'ViewUserController@getOverDamegePage')->where(['id' => '\d+', 'difficulty' => '\w+']); Route::get('/user/{id}/{mode?}', 'ViewUserController@getUserPage')->where(['id' => '\d+']); Route::middleware('throttle:3,1')->group(function () {