利润不再扣支付通道费;站点可配置结算冷却期,到期自动入账,已释放后退款从收款站钱包回冲。同时修复当日自动批次无法追加、三方回冲打错钱包,以及测试库自增重置被 MySQL 统计缓存跳过的问题。 Co-authored-by: Cursor <cursoragent@cursor.com>
31 lines
1.3 KiB
SQL
31 lines
1.3 KiB
SQL
-- +goose Up
|
|
|
|
-- 分销站点结算冷却期:订单完成后 N 天自动释放到可提现余额,0 表示立即释放。
|
|
ALTER TABLE distribution_sites
|
|
ADD COLUMN settlement_hold_days INT NOT NULL DEFAULT 7 COMMENT '订单完成后结算释放冷却天数,0=立即释放';
|
|
|
|
-- 财务快照记录释放时间:release_at 为订单完成时间 + 站点冷却期,released_at 为实际入账时间。
|
|
ALTER TABLE distribution_order_financials
|
|
ADD COLUMN release_at DATETIME(6) NULL COMMENT '预计释放时间(订单完成时间+站点冷却期)',
|
|
ADD COLUMN released_at DATETIME(6) NULL COMMENT '实际释放入账时间',
|
|
ADD KEY idx_distribution_financial_release (settlement_status, release_at);
|
|
|
|
-- 回填历史已完成订单的释放时间,使其纳入自动释放。
|
|
UPDATE distribution_order_financials f
|
|
JOIN rental_orders ro ON ro.id = f.order_id
|
|
JOIN distribution_sites s ON s.id = f.site_id
|
|
SET f.release_at = DATE_ADD(COALESCE(ro.settled_at, f.created_at), INTERVAL s.settlement_hold_days DAY)
|
|
WHERE f.settlement_status = 'pending'
|
|
AND f.release_at IS NULL
|
|
AND ro.status = 'completed';
|
|
|
|
-- +goose Down
|
|
|
|
ALTER TABLE distribution_order_financials
|
|
DROP KEY idx_distribution_financial_release,
|
|
DROP COLUMN released_at,
|
|
DROP COLUMN release_at;
|
|
|
|
ALTER TABLE distribution_sites
|
|
DROP COLUMN settlement_hold_days;
|