Skip to content

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_actiondelete のとき削除実行
ddd_date対象日(type="date"
ddd_halls[]削除対象ホール(HallEnum value)

Nonce フィールド: daily_data_delete_nonce(検証アクション: daily_data_delete_admin

リダイレクト後クエリ(通知)

クエリ内容
ddd_success1 / 0
ddd_msgメッセージ
ddd_dateフォームに戻す日付(任意)

削除対象

データテーブル / 保存先削除の仕組み
台別 rawdb2023DailyDataPerUnitRepository::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
テンプレートキャッシュTransientDailyArticleTemplateDataService による日付×ホール単位クリア

フック実行順: 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
削除 APIcore_src/Service/daily_data_import_service/DailyDataImportService.php
バッチ設計docs/design/バッチ/daily-article-summary-batch.md

関連

  • PR #2410
  • Issue #2412(Admin 層の Repository 直接依存の解消)