feat(M10-A): 完成统一通知中心与投递闭环

This commit is contained in:
Codex
2026-08-11 09:17:18 +08:00
parent 41b9cf7349
commit 5d70114bab
46 changed files with 1724 additions and 74 deletions
+13 -1
View File
@@ -443,7 +443,7 @@ export class WechatPaymentService {
const [rows] = await connection.execute<RowDataPacket[]>(
`SELECT user_id AS userId FROM qipai_order_user_access
WHERE tenant_id = ? AND order_id = ? AND revoked_at IS NULL
ORDER BY id LIMIT 1`,
ORDER BY user_id LIMIT 1`,
[tenantId, orderId]
);
return rows[0]?.userId ? String(rows[0].userId) : undefined;
@@ -523,6 +523,18 @@ export class WechatPaymentService {
[tenantId, refund.orderId, payment.orderStatus, traceId,
refund.id, refund.amountCents]
);
await connection.execute(
`INSERT IGNORE INTO qipai_outbox_events
(tenant_id, aggregate_type, aggregate_id, event_type, idempotency_key, payload)
VALUES (?, 'ORDER', ?, 'ORDER_COMPLETE_REFUND', ?, JSON_OBJECT(
'storeId', ?, 'orderId', ?, 'customerId', (
SELECT user_id FROM qipai_order_user_access
WHERE tenant_id = ? AND order_id = ? ORDER BY user_id LIMIT 1
), 'refundId', ?, 'amountCents', ?, 'status', 'REFUNDED'))`,
[tenantId, refund.orderId, `refund:${refund.id}:succeeded:notification`,
payment.storeId, refund.orderId, tenantId, refund.orderId,
refund.id, refund.amountCents]
);
}
});
}