feat(distribution): 通道费改主站承担,并按冷却期自动释放结算
利润不再扣支付通道费;站点可配置结算冷却期,到期自动入账,已释放后退款从收款站钱包回冲。同时修复当日自动批次无法追加、三方回冲打错钱包,以及测试库自增重置被 MySQL 统计缓存跳过的问题。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
-- +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;
|
||||
Reference in New Issue
Block a user