feat(cleaning): close settlement integrity and reconciliation

This commit is contained in:
Codex
2026-08-11 02:07:59 +08:00
parent 5e0f5e39ee
commit 1f1071501f
23 changed files with 1562 additions and 208 deletions
@@ -0,0 +1,43 @@
DELETE FROM qipai_schema_migrations WHERE version = '2026081006';
ALTER TABLE qipai_cleaning_settlement_items
DROP FOREIGN KEY fk_qipai_cleaning_settlement_items_reversal;
DELETE reversed
FROM qipai_cleaning_settlement_items reversed
INNER JOIN qipai_cleaning_settlement_items active
ON active.tenant_id = reversed.tenant_id
AND active.task_id = reversed.task_id
AND active.cleaner_user_id = reversed.cleaner_user_id
AND active.reversed_at IS NULL
WHERE reversed.reversed_at IS NOT NULL;
DELETE older
FROM qipai_cleaning_settlement_items older
INNER JOIN qipai_cleaning_settlement_items newer
ON newer.tenant_id = older.tenant_id
AND newer.task_id = older.task_id
AND newer.cleaner_user_id = older.cleaner_user_id
AND newer.id > older.id
WHERE older.reversed_at IS NOT NULL AND newer.reversed_at IS NOT NULL;
ALTER TABLE qipai_cleaning_settlement_items
DROP INDEX uq_qipai_cleaning_settlement_active_share,
DROP INDEX idx_qipai_cleaning_settlement_item_reversal,
DROP COLUMN active_share_key,
DROP COLUMN reversed_at,
DROP COLUMN reversal_id,
ADD UNIQUE KEY uq_qipai_cleaning_settlement_item_task_user
(tenant_id, task_id, cleaner_user_id);
ALTER TABLE qipai_cleaning_settlements
DROP FOREIGN KEY fk_qipai_cleaning_settlements_cancelled_by,
DROP INDEX idx_qipai_cleaning_settlement_cancelled,
DROP INDEX uq_qipai_cleaning_settlement_payout_request,
DROP COLUMN payout_request_key,
DROP COLUMN payout_request_no,
DROP COLUMN cancelled_at,
DROP COLUMN cancelled_by;
DROP TABLE IF EXISTS qipai_cleaning_settlement_events;
DROP TABLE IF EXISTS qipai_cleaning_settlement_reversals;