暂存一下,防止丢失

This commit is contained in:
2026-07-24 16:07:18 +08:00
parent 5d6e23f1a5
commit a18ed8bc8d
180 changed files with 13597 additions and 1986 deletions

View File

@@ -1,66 +1,12 @@
BEGIN;
-- 本脚本已停用。
--
-- 原实现会直接修改代理主钱包余额,绕过 Wallet Application、Domain Ledger、
-- 幂等资金流水和 Outbox因此在信用钱包切换后不再允许执行。
-- 如需清理代理主钱包余额,必须先建立具有稳定业务单号的受控 Application 用例,
-- 并在同一事务内写入权威资金流水与可靠事件;禁止恢复本文件中的历史直写逻辑。
-- 锁定代理主钱包,确认余额和冻结余额
SELECT *
FROM tb_agent_wallet
WHERE shop_id = :shop_id
AND wallet_type = 'main'
AND deleted_at IS NULL
FOR UPDATE;
-- 确认 frozen_balance = 0 且 balance > 0 后执行
INSERT INTO tb_agent_wallet_transaction (
agent_wallet_id,
shop_id,
user_id,
transaction_type,
amount,
balance_before,
balance_after,
status,
reference_type,
reference_id,
remark,
metadata,
creator,
shop_id_tag,
enterprise_id_tag,
created_at,
updated_at
)
SELECT
id,
shop_id,
:operator_user_id,
'deduct',
-balance,
balance,
0,
1,
NULL,
NULL,
'平台清理代理预充值剩余余额,历史消费流水保留',
jsonb_build_object('reason', 'clear_agent_main_wallet_balance'),
:operator_user_id,
shop_id_tag,
enterprise_id_tag,
NOW(),
NOW()
FROM tb_agent_wallet
WHERE shop_id = :shop_id
AND wallet_type = 'main'
AND deleted_at IS NULL
AND balance > 0
AND frozen_balance = 0;
UPDATE tb_agent_wallet
SET balance = 0,
version = version + 1,
updated_at = NOW()
WHERE shop_id = :shop_id
AND wallet_type = 'main'
AND deleted_at IS NULL
AND balance > 0
AND frozen_balance = 0;
COMMIT;
DO $$
BEGIN
RAISE EXCEPTION '代理主钱包直写清理脚本已停用,请使用受控 Wallet Application 用例';
END
$$;