Appearance
ADM-18 日別データ削除 管理画面
概要
- 誤インポートや想定外のデータ登録時に、指定した日付×ホールの台別データおよびインポート時に更新される派生データを削除する管理画面(PR #2410)。
- 削除処理は
DailyDataImportService::delete_by_date_hall_pairs()経由で行い、インポート完了時と同じslot_kouryaku_daily_data_importedフックでサマリ・ランキングを再計算する。
外部インターフェース
管理画面 URL
| 項目 | 値 |
|---|---|
| URL | /wp-admin/admin.php?page=daily-data-delete-admin |
| メニュー名 | 日別データ削除 |
| 権限 | manage_options |
フォーム POST(同期)
POST admin.php?page=daily-data-delete-admin。
| パラメータ | 説明 |
|---|---|
ddd_action | delete のとき削除実行 |
ddd_date | 対象日(type="date") |
ddd_halls[] | 削除対象ホール(HallEnum value) |
Nonce フィールド: daily_data_delete_nonce(検証アクション: daily_data_delete_admin)
リダイレクト後クエリ(通知)
| クエリ | 内容 |
|---|---|
ddd_success | 1 / 0 |
ddd_msg | メッセージ |
ddd_date | フォームに戻す日付(任意) |
削除対象
| データ | テーブル / 保存先 | 削除の仕組み |
|---|---|---|
| 台別 raw | db2023 | DailyDataPerUnitRepository::batch_delete_by_date_hall_pairs で直接 DELETE |
| 機種別サマリ | db_daily_article_kishu_single_day_summary | フック後の replace_all_for_hall_and_period(空行でクリア) |
| 台数変化 | db_daily_article_kishu_count_delta | 同上 + 翌日サマリが存在する場合は N+1 日カスケード再計算(Issue #2171) |
| 事前計算ランキング | slot_precomputed_ranking | フック後の PrecomputedRankingComputer::compute_and_store |
| テンプレートキャッシュ | Transient | DailyArticleTemplateDataService による日付×ホール単位クリア |
フック実行順: AdminServiceProvider では Summary ハンドラを PrecomputedRanking より先に実行する(PR #2410)。削除直後に陳腐化したサマリからランキングが再計算されるのを防ぐ。
削除対象外
| データ | テーブル | 理由 |
|---|---|---|
| 機種マスタ | db_kishu_master | インポート時は INSERT IGNORE のグローバルマスタ。他日付・他機能から FK 参照される |
| 表示マッピング | db_kishu_display_mapping | 生機種名単位のグローバルマッピング。他日付のインポートでも共有される |
機種マスタの孤立行 GC(削除対象日にのみ出現し他参照が無い場合のみ削除)は別 Issue で検討する。
実装参照
| 種別 | パス |
|---|---|
| 画面 | core_src/Admin/daily_data_delete/DailyDataDeleteAdminPage.php |
| メッセージ | core_src/Constants/DailyDataDeleteMessages.php |
| 削除 API | core_src/Service/daily_data_import_service/DailyDataImportService.php |
| バッチ設計 | docs/design/バッチ/daily-article-summary-batch.md |
関連
- PR #2410
- Issue #2412(Admin 層の Repository 直接依存の解消)