リクエスト詳細
🐛 バグ報告
対応完了
対象アプリ: 合体ドロップ
rank_check.phpのJSON応答で昨日(yesterday)だけ1位情報(top)が欠落
1. 不具合の内容:
ゲームオーバー時の順位プレビューAPI (pages/rank_check.php) のJSONレスポンスには、今日(today_top)・今週(weekly_top)・今月(monthly_top)・歴代(alltime_top)について、その期間の1位プレイヤー名とスコアを返すフィールドが用意されているが、昨日(yesterday)だけ対応する yesterday_top が存在しない。
2. 根拠・発生しそうな条件:
pages/rank_check.php を見ると、today/weekly/monthly/alltime にはそれぞれ「$stmtTodayTop」「$stmtWeeklyTop」「$stmtMonthlyTop」「$stmtAlltimeTop」という、player_name, score をORDER BY score DESC LIMIT 1で取得するクエリが個別に用意され、JSON出力にも today_top / weekly_top / monthly_top / alltime_top として組み込まれている。一方 yesterday については $yesterdayAbove(順位計算用のCOUNT)と $yesterdayTotal(総数)は計算されているものの、1位を取得する $stmtYesterdayTop に相当するクエリが存在せず、JSON末尾にも yesterday_top キーが一切出力されていない。他の4期間はすべて対称的に top 情報を持つのに、昨日だけ欠落しているのは実装漏れであり、意図した仕様ではないと判断できる。ゲームオーバー画面や今後の表示改修でフロントエンドが data.yesterday_top を参照した場合、常に undefined になり「昨日の1位」だけ表示できない、あるいは表示ロジックが他の期間と非対称なコードになってしまう。
3. 期待動作:
today_top / weekly_top / monthly_top / alltime_top と同様に、yesterday についても該当日の1位プレイヤー名とスコアを yesterday_top として返す。該当日に記録が無い場合は他のフィールドと同じく null を返す。
4. 修正方針:
pages/rank_check.php に、today_top と同じ形の $stmtYesterdayTop クエリ (`SELECT player_name, score FROM scores WHERE score_date = ? AND mode = ? ORDER BY score DESC, created_at ASC LIMIT 1`) を追加し、$yesterday, $mode で実行して $yesterdayTop を取得する。JSON出力部分に
```
'yesterday_top' => $yesterdayTop ? [
'player_name' => (string)$yesterdayTop['player_name'],
'score' => (int)$yesterdayTop['score'],
] : null,
```
を他の *_top と同じ並びで追加する。既存のキー構成・型・null許容ルールは変更せず、他の期間の実装パターンと完全に一致させることで後方互換を保つ。
ゲームオーバー時の順位プレビューAPI (pages/rank_check.php) のJSONレスポンスには、今日(today_top)・今週(weekly_top)・今月(monthly_top)・歴代(alltime_top)について、その期間の1位プレイヤー名とスコアを返すフィールドが用意されているが、昨日(yesterday)だけ対応する yesterday_top が存在しない。
2. 根拠・発生しそうな条件:
pages/rank_check.php を見ると、today/weekly/monthly/alltime にはそれぞれ「$stmtTodayTop」「$stmtWeeklyTop」「$stmtMonthlyTop」「$stmtAlltimeTop」という、player_name, score をORDER BY score DESC LIMIT 1で取得するクエリが個別に用意され、JSON出力にも today_top / weekly_top / monthly_top / alltime_top として組み込まれている。一方 yesterday については $yesterdayAbove(順位計算用のCOUNT)と $yesterdayTotal(総数)は計算されているものの、1位を取得する $stmtYesterdayTop に相当するクエリが存在せず、JSON末尾にも yesterday_top キーが一切出力されていない。他の4期間はすべて対称的に top 情報を持つのに、昨日だけ欠落しているのは実装漏れであり、意図した仕様ではないと判断できる。ゲームオーバー画面や今後の表示改修でフロントエンドが data.yesterday_top を参照した場合、常に undefined になり「昨日の1位」だけ表示できない、あるいは表示ロジックが他の期間と非対称なコードになってしまう。
3. 期待動作:
today_top / weekly_top / monthly_top / alltime_top と同様に、yesterday についても該当日の1位プレイヤー名とスコアを yesterday_top として返す。該当日に記録が無い場合は他のフィールドと同じく null を返す。
4. 修正方針:
pages/rank_check.php に、today_top と同じ形の $stmtYesterdayTop クエリ (`SELECT player_name, score FROM scores WHERE score_date = ? AND mode = ? ORDER BY score DESC, created_at ASC LIMIT 1`) を追加し、$yesterday, $mode で実行して $yesterdayTop を取得する。JSON出力部分に
```
'yesterday_top' => $yesterdayTop ? [
'player_name' => (string)$yesterdayTop['player_name'],
'score' => (int)$yesterdayTop['score'],
] : null,
```
を他の *_top と同じ並びで追加する。既存のキー構成・型・null許容ルールは変更せず、他の期間の実装パターンと完全に一致させることで後方互換を保つ。
💬 返信 (3)
🛠 開発を開始しました (バグ修正 (vegetable-drop))
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「合体ドロップ」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=vegetable-drop
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/vegetable-drop/
ご利用ありがとうございます!
ご要望いただいた「合体ドロップ」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=vegetable-drop
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/vegetable-drop/
ご利用ありがとうございます!
Echo
Iris