From 836182a85b573126844df08050c40d5901906332 Mon Sep 17 00:00:00 2001 From: Slime-hatena Date: Fri, 26 Apr 2024 05:01:11 +0900 Subject: [PATCH 1/7] =?UTF-8?q?feat:=20=E3=83=90=E3=83=88=E3=83=AB?= =?UTF-8?q?=E3=82=B9=E3=82=B3=E3=82=A2=E9=9B=86=E8=A8=88=E3=83=86=E3=83=BC?= =?UTF-8?q?=E3=83=96=E3=83=AB=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OngekiScoreLog/app/AggregateBattleScore.php | 61 +++++++++++++++++++ ...26_000000_create_aggregate_battlescore.php | 34 +++++++++++ 2 files changed, 95 insertions(+) create mode 100644 OngekiScoreLog/app/AggregateBattleScore.php create mode 100644 OngekiScoreLog/database/migrations/2024_04_26_000000_create_aggregate_battlescore.php diff --git a/OngekiScoreLog/app/AggregateBattleScore.php b/OngekiScoreLog/app/AggregateBattleScore.php new file mode 100644 index 0000000..d47b730 --- /dev/null +++ b/OngekiScoreLog/app/AggregateBattleScore.php @@ -0,0 +1,61 @@ +basic_level !== null){ + foreach ($normalDifficulties as $difficulty) { + \App\AggregateBattleScore::record($music->id, $difficulty); + } + } + + if($music->lunatic_level !== null){ + \App\AggregateBattleScore::record($music->id, $lunaticDifficulty); + } + } + + \App\Facades\Slack::Debug("Max Battle Scoreの集計を行いました。"); + } + + public static function record($song_id, $difficulty){ + $max = AggregateBattleScore::calculation($song_id, $difficulty); + + $key = $song_id . "_" . $difficulty; + AggregateBattleScore::updateOrCreate( + ['id' => $key], + ['song_id' => $song_id, 'difficulty' => $difficulty, 'max' => $max] + ); + } + + private static function calculation($song_id, $difficulty){ + $sql = DB::table('score_datas') + ->select('song_id', 'difficulty', DB::raw('MAX(battle_high_score) as max_battle_high_score')) + ->where('song_id', $song_id) + ->where('difficulty', $difficulty) + ->groupBy('song_id', 'difficulty') + ; + try { + return $sql->get()[0]->max_battle_high_score; + } catch (\Throwable $th) { + return 0; + } + } +} diff --git a/OngekiScoreLog/database/migrations/2024_04_26_000000_create_aggregate_battlescore.php b/OngekiScoreLog/database/migrations/2024_04_26_000000_create_aggregate_battlescore.php new file mode 100644 index 0000000..06742a6 --- /dev/null +++ b/OngekiScoreLog/database/migrations/2024_04_26_000000_create_aggregate_battlescore.php @@ -0,0 +1,34 @@ +string('id')->primary(); + $table->integer('song_id')->unsigned(); + $table->integer("difficulty")->unsigned(); + $table->integer("max"); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('aggregate_battlescore'); + } +} From 0bda1d1be6a0ea0cd205c48c03008f5da684689e Mon Sep 17 00:00:00 2001 From: Slime-hatena Date: Fri, 26 Apr 2024 05:07:23 +0900 Subject: [PATCH 2/7] =?UTF-8?q?feat:=20Developer=E3=83=90=E3=83=83?= =?UTF-8?q?=E3=82=B8=E3=81=AB=E3=83=AA=E3=83=B3=E3=82=AF=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OngekiScoreLog/app/Http/Controllers/ViewUserController.php | 4 ++-- .../app/Http/Controllers/ViewUserTrophyController.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/OngekiScoreLog/app/Http/Controllers/ViewUserController.php b/OngekiScoreLog/app/Http/Controllers/ViewUserController.php index 107d36e..921a610 100644 --- a/OngekiScoreLog/app/Http/Controllers/ViewUserController.php +++ b/OngekiScoreLog/app/Http/Controllers/ViewUserController.php @@ -44,7 +44,7 @@ public function getUserPage(Request $request, $id, $mode = null){ } $status[0]->badge = ""; if($user->role == 7){ - $status[0]->badge .= ' ProjectPrimera Developer'; + $status[0]->badge .= ' ProjectPrimera Developer'; } if(\App\UserInformation::IsPremiumPlan($user->id)){ $status[0]->badge .= ' OngekiNet Premium'; @@ -358,7 +358,7 @@ public function getOverDamegePage($id, $difficulty = ""){ } $status[0]->badge = ""; if($user->role == 7){ - $status[0]->badge .= ' ProjectPrimera Developer'; + $status[0]->badge .= ' ProjectPrimera Developer'; } if(\App\UserInformation::IsPremiumPlan($user->id)){ $status[0]->badge .= ' OngekiNet Premium'; diff --git a/OngekiScoreLog/app/Http/Controllers/ViewUserTrophyController.php b/OngekiScoreLog/app/Http/Controllers/ViewUserTrophyController.php index 9423705..b9fc04f 100644 --- a/OngekiScoreLog/app/Http/Controllers/ViewUserTrophyController.php +++ b/OngekiScoreLog/app/Http/Controllers/ViewUserTrophyController.php @@ -29,7 +29,7 @@ function getIndex(int $id){ $status[0]->badge = ""; if($user->role == 7){ - $status[0]->badge .= ' ProjectPrimera Developer'; + $status[0]->badge .= ' ProjectPrimera Developer'; } if(\App\UserInformation::IsPremiumPlan($user->id)){ $status[0]->badge .= ' OngekiNet Premium'; From bc17f6620920c55eb85c8a9cb5ce4b3d079b3fd4 Mon Sep 17 00:00:00 2001 From: Slime-hatena Date: Fri, 26 Apr 2024 05:09:55 +0900 Subject: [PATCH 3/7] =?UTF-8?q?feat:=20=E3=83=90=E3=83=88=E3=83=AB?= =?UTF-8?q?=E3=82=B9=E3=82=B3=E3=82=A2=E9=9B=86=E8=A8=88=E3=82=92=E8=A1=8C?= =?UTF-8?q?=E3=81=86=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OngekiScoreLog/app/Console/Kernel.php | 7 ++++++- OngekiScoreLog/app/Http/Controllers/AdminController.php | 6 ++++++ OngekiScoreLog/resources/views/admin/index.blade.php | 4 ++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/OngekiScoreLog/app/Console/Kernel.php b/OngekiScoreLog/app/Console/Kernel.php index 48d3f58..83ac983 100644 --- a/OngekiScoreLog/app/Console/Kernel.php +++ b/OngekiScoreLog/app/Console/Kernel.php @@ -32,10 +32,15 @@ protected function schedule(Schedule $schedule) \App\Facades\Slack::Info(" すべてのユーザーの課金情報をリセットしました。"); })->monthlyOn(1, '7:00'); + // Max BattleScoreの集計 + $schedule->call(function () { + \App\AggregateBattleScore::execute(); + })->dailyAt('4:10'); + // Max OverDamageの集計 $schedule->call(function () { \App\AggregateOverdamage::execute(); - })->dailyAt('4:30'); + })->dailyAt('4:10'); } /** diff --git a/OngekiScoreLog/app/Http/Controllers/AdminController.php b/OngekiScoreLog/app/Http/Controllers/AdminController.php index 8012529..4e88c4a 100644 --- a/OngekiScoreLog/app/Http/Controllers/AdminController.php +++ b/OngekiScoreLog/app/Http/Controllers/AdminController.php @@ -143,6 +143,12 @@ public function GetApply($type, $action = null){ return redirect('/admin?message=' . $message); } + public function GetGenerateBattleScore(){ + ini_set("max_execution_time", 0); + \App\AggregateBattleScore::execute(); + return redirect('/admin?message=' . "Generate Battle Score: max. 実行しました!"); + } + public function GetGenerateOverDamage(){ ini_set("max_execution_time", 0); \App\AggregateOverdamage::execute(); diff --git a/OngekiScoreLog/resources/views/admin/index.blade.php b/OngekiScoreLog/resources/views/admin/index.blade.php index b80b4dd..081511b 100644 --- a/OngekiScoreLog/resources/views/admin/index.blade.php +++ b/OngekiScoreLog/resources/views/admin/index.blade.php @@ -43,6 +43,10 @@

統計データ生成

超絶重いので実行する時間とタイミングに注意!

+

Battle Score

+

+ +

Over Damage

From a7fd762f90dd918dead1dc964de03659477be825 Mon Sep 17 00:00:00 2001 From: Slime-hatena Date: Fri, 26 Apr 2024 05:13:24 +0900 Subject: [PATCH 4/7] =?UTF-8?q?feat:=20=E3=83=90=E3=83=88=E3=83=AB?= =?UTF-8?q?=E3=82=B9=E3=82=B3=E3=82=A2=E9=9B=86=E8=A8=88=E3=83=9A=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Http/Controllers/ViewUserController.php | 68 ++++++++++++++++ .../user/song_status_battlescore.blade.php | 77 +++++++++++++++++++ .../views/user_battlescore.blade.php | 72 +++++++++++++++++ 3 files changed, 217 insertions(+) create mode 100644 OngekiScoreLog/resources/views/layouts/components/user/song_status_battlescore.blade.php create mode 100644 OngekiScoreLog/resources/views/user_battlescore.blade.php diff --git a/OngekiScoreLog/app/Http/Controllers/ViewUserController.php b/OngekiScoreLog/app/Http/Controllers/ViewUserController.php index 921a610..e2d7446 100644 --- a/OngekiScoreLog/app/Http/Controllers/ViewUserController.php +++ b/OngekiScoreLog/app/Http/Controllers/ViewUserController.php @@ -8,6 +8,7 @@ use App\User; use App\UserStatus; use App\ScoreData; +use App\AggregateBattleScore; use App\AggregateOverdamage; use App\Facades\OngekiUtility; use DateTime; @@ -340,6 +341,73 @@ public function getUserPage(Request $request, $id, $mode = null){ return view('user', compact('id', 'status', 'score', 'stat', 'mode', 'submenuActive', 'sidemark', 'archive')); } + + public function getBattleScorePage($id, $difficulty = ""){ + // 存在しないdifficultyが指定された場合はリダイレクト + if(!in_array($difficulty, ["", "basic", "advanced", "expert", "master", "lunatic"])){ + return redirect("/user/" . $id . "/battlescore"); + } + + $userStatus = new UserStatus(); + $user = User::where('id' ,$id)->first(); + $status = $userStatus->getRecentUserData($id); + if(count($status) === 0){ + if(is_null($user)){ + abort(404); + }else{ + return view("user_error", ['message' => '

このユーザーはOngekiScoreLogに登録していますが、オンゲキNETからスコア取得を行っていません。(UserID: ' . $id . ')

スコアの取得方法はこちらをお読みください。

']); + } + } + $status[0]->badge = ""; + if($user->role == 7){ + $status[0]->badge .= ' ProjectPrimera Developer'; + } + if(\App\UserInformation::IsPremiumPlan($user->id)){ + $status[0]->badge .= ' OngekiNet Premium'; + }else if(\App\UserInformation::IsStandardPlan($user->id)){ + $status[0]->badge .= ' OngekiNet Standard'; + } + + // トップランカーのスコアを取得してkey: song_id, difficulty, value: over_damage_high_score の配列を作る + $lastUpdate = (new DateTime())->setTimestamp(0); + $topRankerScore = []; + { + $temp = AggregateBattleScore::all(); + foreach ($temp as $value) { + $key = $value->song_id . "_" . $value->difficulty; + $topRankerScore[$key] = $value->max; + + // 最終更新日時を取得 + if($lastUpdate < $value->updated_at){ + $lastUpdate = $value->updated_at; + } + } + } + + // 自分のスコアを取得 + $score = (new ScoreData)->getRecentUserScore($id)->addMusicData()->exclusionDeletedMusic()->getValue(); + + // 難易度を指定のものに絞る + $scoreDatas = []; + { + foreach ($score as $value) { + $key = $value->song_id; + 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; + } + } + } + } + return view('user_battlescore', compact('id', 'difficulty', 'status', 'lastUpdate', 'scoreDatas', 'topRankerScore')); + } + public function getOverDamegePage($id, $difficulty = ""){ // 存在しないdifficultyが指定された場合はリダイレクト if(!in_array($difficulty, ["", "basic", "advanced", "expert", "master", "lunatic"])){ diff --git a/OngekiScoreLog/resources/views/layouts/components/user/song_status_battlescore.blade.php b/OngekiScoreLog/resources/views/layouts/components/user/song_status_battlescore.blade.php new file mode 100644 index 0000000..cf974f9 --- /dev/null +++ b/OngekiScoreLog/resources/views/layouts/components/user/song_status_battlescore.blade.php @@ -0,0 +1,77 @@ +
+

登録されている全ユーザーのバトルスコアのうち、一番高いものと比較することが出来ます。
+ (※全国ランキング1位のスコアではありません!)

+

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

+ + +
+ +
+ @component('layouts/components/user/table_scale_button') @endcomponent + +
+ + + + + + + + + + + + + + + + + + + + + + + + + @foreach ($score as $s) + + + + + @if (array_key_exists($s->song_id . "_" . $s->difficulty, $topRankerScore)) + + + @if ($topRankerScore[$s->song_id . "_" . $s->difficulty] == 0) + {{-- ありえなさそうだけどDIV/0対策 --}} + + @elseif ($s->battle_high_score == $topRankerScore[$s->song_id . "_" . $s->difficulty]) + {{-- 1位なので100%! --}} + + @elseif ($s->battle_high_score == 0) + {{-- 未プレイなので0%にする --}} + + @else + {{-- 1位ではないので計算 --}} + + @endif + @else + + + + @endif + + + @endforeach + +
TitleDifBSTopdiff達成度Update
TitleDifBSTopdiff達成度Update
{{$s->title}}song_id . "/" . strtolower($s->difficulty_str))}}">{{$s->title}}{{$s->difficulty}}{{substr($s->difficulty_str, 0, 3)}}{{number_format($s->battle_high_score)}}{{number_format($topRankerScore[$s->song_id . "_" . $s->difficulty])}}{{number_format(abs(($s->battle_high_score - $topRankerScore[$s->song_id . "_" . $s->difficulty])))}}100.00%100.00%0.00%{{number_format(floor((($s->battle_high_score / $topRankerScore[$s->song_id . "_" . $s->difficulty]))))}}%?%?%?%{{date('Y-m-d', strtotime($s->updated_at))}}
+
+ +
diff --git a/OngekiScoreLog/resources/views/user_battlescore.blade.php b/OngekiScoreLog/resources/views/user_battlescore.blade.php new file mode 100644 index 0000000..51e6410 --- /dev/null +++ b/OngekiScoreLog/resources/views/user_battlescore.blade.php @@ -0,0 +1,72 @@ +@extends('layouts.app') + +@section('title', $status[0]->name) +@section('hero_subtitle', $status[0]->trophy) +@section('hero_title', $status[0]->name) +@section('additional_head') + +@endsection +@section('additional_footer') + + +@endsection +@section('sidemark_mypage_overdamage', "is-active") + +@section('submenu') +
  • 簡易
  • +
  • 詳細
  • +
  • Technical
  • +
  • BattleScore
  • +
  • OverDamage
  • +
  • 称号
  • +
  • Rating
  • +
  • 更新差分
  • +@endsection + +@section('content') + @component('layouts/components/user/user_status') + @slot('badge') + {!!$status[0]->badge!!} + @endslot + @slot('name') + {{$status[0]->name}} + @endslot + @slot('trophy') + {{$status[0]->trophy}} + @endslot + @slot('level') + {{$status[0]->level}} + @endslot + @slot('battle_point') + {{$status[0]->battle_point}} + @endslot + @slot('rating') + {{$status[0]->rating}} + @endslot + @slot('rating_max') + {{$status[0]->rating_max}} + @endslot + @slot('money') + {{$status[0]->money}} + @endslot + @slot('money_max') + {{$status[0]->total_money}} + @endslot + @slot('total_play') + {{$status[0]->total_play}} + @endslot + @slot('friend_code') + {{$status[0]->friend_code}} + @endslot + @slot('comment') + {!! nl2br(e($status[0]->comment)) !!} + @endslot + @endcomponent + + {{-- @component('layouts/components/user/song_filter') + @endcomponent --}} + + @component('layouts/components/user/song_status_battlescore', ['score' => $scoreDatas, 'topRankerScore' => $topRankerScore, 'id' => $id, 'difficulty' => $difficulty, 'lastUpdate' => $lastUpdate]) + @endcomponent + +@endsection From 1f8b5dd160553433e4e5a5dd1179293b4bc01385 Mon Sep 17 00:00:00 2001 From: Slime-hatena Date: Fri, 26 Apr 2024 05:18:35 +0900 Subject: [PATCH 5/7] =?UTF-8?q?feat:=20=E3=83=A1=E3=83=8B=E3=83=A5?= =?UTF-8?q?=E3=83=BC=E3=81=AEurl=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/views/layouts/components/sidebar.blade.php | 2 +- OngekiScoreLog/resources/views/user.blade.php | 2 +- OngekiScoreLog/resources/views/user_battlescore.blade.php | 4 ++-- OngekiScoreLog/resources/views/user_music.blade.php | 3 ++- OngekiScoreLog/resources/views/user_overdamage.blade.php | 2 +- OngekiScoreLog/resources/views/user_progress.blade.php | 2 +- OngekiScoreLog/resources/views/user_rating.blade.php | 2 +- OngekiScoreLog/resources/views/user_rating_error.blade.php | 2 +- OngekiScoreLog/resources/views/user_trophy.blade.php | 2 +- 9 files changed, 11 insertions(+), 10 deletions(-) diff --git a/OngekiScoreLog/resources/views/layouts/components/sidebar.blade.php b/OngekiScoreLog/resources/views/layouts/components/sidebar.blade.php index 27d1e40..d9c3096 100644 --- a/OngekiScoreLog/resources/views/layouts/components/sidebar.blade.php +++ b/OngekiScoreLog/resources/views/layouts/components/sidebar.blade.php @@ -19,7 +19,7 @@
  • 簡易表示
  • 詳細表示
  • Technical Score
  • -
  • Battle Score
  • +
  • Battle Score
  • Over Damage
  • 称号
  • レーティング情報
  • diff --git a/OngekiScoreLog/resources/views/user.blade.php b/OngekiScoreLog/resources/views/user.blade.php index 54f9fb0..c18b5af 100644 --- a/OngekiScoreLog/resources/views/user.blade.php +++ b/OngekiScoreLog/resources/views/user.blade.php @@ -15,7 +15,7 @@
  • 簡易
  • 詳細
  • Technical
  • -
  • Battle
  • +
  • Battle
  • OverDamage
  • 称号
  • Rating
  • diff --git a/OngekiScoreLog/resources/views/user_battlescore.blade.php b/OngekiScoreLog/resources/views/user_battlescore.blade.php index 51e6410..3328b03 100644 --- a/OngekiScoreLog/resources/views/user_battlescore.blade.php +++ b/OngekiScoreLog/resources/views/user_battlescore.blade.php @@ -10,13 +10,13 @@ @endsection -@section('sidemark_mypage_overdamage', "is-active") +@section('sidemark_mypage_battle', "is-active") @section('submenu')
  • 簡易
  • 詳細
  • Technical
  • -
  • BattleScore
  • +
  • Battle
  • OverDamage
  • 称号
  • Rating
  • diff --git a/OngekiScoreLog/resources/views/user_music.blade.php b/OngekiScoreLog/resources/views/user_music.blade.php index c9d695b..77fc6c7 100644 --- a/OngekiScoreLog/resources/views/user_music.blade.php +++ b/OngekiScoreLog/resources/views/user_music.blade.php @@ -19,8 +19,9 @@ @section('submenu')
  • 簡易
  • 詳細
  • -
  • Battle
  • Technical
  • +
  • Battle
  • +
  • OverDamage
  • 称号
  • Rating
  • 更新差分
  • diff --git a/OngekiScoreLog/resources/views/user_overdamage.blade.php b/OngekiScoreLog/resources/views/user_overdamage.blade.php index 9933e0d..c92805a 100644 --- a/OngekiScoreLog/resources/views/user_overdamage.blade.php +++ b/OngekiScoreLog/resources/views/user_overdamage.blade.php @@ -16,7 +16,7 @@
  • 簡易
  • 詳細
  • Technical
  • -
  • Battle
  • +
  • Battle
  • OverDamage
  • 称号
  • Rating
  • diff --git a/OngekiScoreLog/resources/views/user_progress.blade.php b/OngekiScoreLog/resources/views/user_progress.blade.php index 71bc478..fc8cfa7 100644 --- a/OngekiScoreLog/resources/views/user_progress.blade.php +++ b/OngekiScoreLog/resources/views/user_progress.blade.php @@ -15,7 +15,7 @@
  • 簡易
  • 詳細
  • Technical
  • -
  • Battle
  • +
  • Battle
  • OverDamage
  • 称号
  • Rating
  • diff --git a/OngekiScoreLog/resources/views/user_rating.blade.php b/OngekiScoreLog/resources/views/user_rating.blade.php index f11f619..37f2b48 100644 --- a/OngekiScoreLog/resources/views/user_rating.blade.php +++ b/OngekiScoreLog/resources/views/user_rating.blade.php @@ -15,7 +15,7 @@
  • 簡易
  • 詳細
  • Technical
  • -
  • Battle
  • +
  • Battle
  • OverDamage
  • 称号
  • Rating
  • diff --git a/OngekiScoreLog/resources/views/user_rating_error.blade.php b/OngekiScoreLog/resources/views/user_rating_error.blade.php index 730497e..e69affa 100644 --- a/OngekiScoreLog/resources/views/user_rating_error.blade.php +++ b/OngekiScoreLog/resources/views/user_rating_error.blade.php @@ -15,7 +15,7 @@
  • 簡易
  • 詳細
  • Technical
  • -
  • Battle
  • +
  • Battle
  • OverDamage
  • 称号
  • Rating
  • diff --git a/OngekiScoreLog/resources/views/user_trophy.blade.php b/OngekiScoreLog/resources/views/user_trophy.blade.php index 5210c9d..1e6924b 100644 --- a/OngekiScoreLog/resources/views/user_trophy.blade.php +++ b/OngekiScoreLog/resources/views/user_trophy.blade.php @@ -15,7 +15,7 @@
  • 簡易
  • 詳細
  • Technical
  • -
  • Battle
  • +
  • Battle
  • OverDamage
  • 称号
  • Rating
  • From 2307c0e20d1a908c14be94b18b0c7612b9965e30 Mon Sep 17 00:00:00 2001 From: Slime-hatena Date: Fri, 26 Apr 2024 05:18:51 +0900 Subject: [PATCH 6/7] =?UTF-8?q?feat:=20=E3=83=9A=E3=83=BC=E3=82=B8?= =?UTF-8?q?=E3=81=AEurl=E3=82=92router=E3=81=B8=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OngekiScoreLog/routes/web.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OngekiScoreLog/routes/web.php b/OngekiScoreLog/routes/web.php index aa1f1c5..67cb5bd 100644 --- a/OngekiScoreLog/routes/web.php +++ b/OngekiScoreLog/routes/web.php @@ -20,6 +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::get('/user/{id}/battlescore/{difficulty?}', 'ViewUserController@getBattleScorePage')->where(['id' => '\d+', 'difficulty' => '\w+']); Route::get('/user/{id}/overdamage/{difficulty?}', 'ViewUserController@getOverDamegePage')->where(['id' => '\d+', 'difficulty' => '\w+']); Route::get('/user/{id}/{mode?}', 'ViewUserController@getUserPage')->where(['id' => '\d+']); @@ -59,6 +60,7 @@ Route::get('/admin/config', 'AdminController@GetConfig'); Route::get('/admin/aggregate', 'AdminController@GetAggregate'); Route::get('/admin/apply/{type}/{action?}', 'AdminController@GetApply'); + Route::get('/admin/generate/battle-score', 'AdminController@GetGenerateBattleScore'); Route::get('/admin/generate/over-damage', 'AdminController@GetGenerateOverDamage'); Route::get('/admin/log/{path}/{fileName}', 'SimpleViewController@getLogFile'); }); From ebd1320585b5b781b1edc37fde2be82991a5a883 Mon Sep 17 00:00:00 2001 From: Slime-hatena Date: Tue, 30 Apr 2024 21:33:08 +0900 Subject: [PATCH 7/7] =?UTF-8?q?feat:=20=E7=A7=B0=E5=8F=B7=E3=81=AE?= =?UTF-8?q?=E5=88=9D=E6=9C=9F=E4=B8=A6=E3=81=B3=E9=A0=86=E3=82=92=E5=A4=89?= =?UTF-8?q?=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/ViewUserTrophyController.php | 2 +- .../resources/views/user_trophy.blade.php | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/OngekiScoreLog/app/Http/Controllers/ViewUserTrophyController.php b/OngekiScoreLog/app/Http/Controllers/ViewUserTrophyController.php index 9423705..12c066e 100644 --- a/OngekiScoreLog/app/Http/Controllers/ViewUserTrophyController.php +++ b/OngekiScoreLog/app/Http/Controllers/ViewUserTrophyController.php @@ -37,7 +37,7 @@ function getIndex(int $id){ $status[0]->badge .= ' OngekiNet Standard'; } - $trophies = json_decode(json_encode(UserTrophy::where('user_id', $id)->get()), true); + $trophies = json_decode(json_encode(UserTrophy::where('user_id', $id)->orderBy('grade', 'desc')->orderBy('updated_at', 'desc')->get()), true); $trophyIdToStr = [ 0 => "ノーマル", diff --git a/OngekiScoreLog/resources/views/user_trophy.blade.php b/OngekiScoreLog/resources/views/user_trophy.blade.php index 5210c9d..ebd4c2c 100644 --- a/OngekiScoreLog/resources/views/user_trophy.blade.php +++ b/OngekiScoreLog/resources/views/user_trophy.blade.php @@ -83,14 +83,14 @@ - @for ($i = count($trophies) - 1; $i >= 0; --$i) - - {{$trophies[$i]['name']}} - {{$trophies[$i]['grade']}}{{$trophyIdToStr[$trophies[$i]['grade']]}} - {{$trophies[$i]['detail']}} - {{date('Y-m-d', strtotime($trophies[$i]['updated_at']))}} - - @endfor + @foreach ($trophies as $trophy) + + {{$trophy['name']}} + {{$trophy['grade']}}{{$trophyIdToStr[$trophy['grade']]}} + {{$trophy['detail']}} + {{date('Y-m-d', strtotime($trophy['updated_at']))}} + + @endforeach