-- +goose Up -- 邀请返利来源扩展:线下提号(admin_pickups)此前不经过正常订单结账流程, -- 因此提号产生的平台毛利从未参与返利计算(已确认漏发)。 -- source 标识来源单据类型:rental_order=租赁订单,pickup=线下提号; -- order_id 统一存「来源单据 ID」(rental_orders.id 或 admin_pickups.id); -- 唯一键加入 source 后,两类来源的幂等键互不干扰,历史租赁订单行默认 rental_order。 ALTER TABLE invitation_rebate_ledgers ADD COLUMN source VARCHAR(32) NOT NULL DEFAULT 'rental_order' COMMENT '来源单据类型: rental_order=租赁订单, pickup=线下提号' AFTER order_no, MODIFY COLUMN order_id BIGINT UNSIGNED NOT NULL COMMENT '来源单据ID(rental_order=>rental_orders.id;pickup=>admin_pickups.id)', DROP INDEX uk_invitation_rebate_order_role, ADD UNIQUE KEY uk_invitation_rebate_source_role (source, order_id, trade_role); -- +goose Down ALTER TABLE invitation_rebate_ledgers DROP INDEX uk_invitation_rebate_source_role, ADD UNIQUE KEY uk_invitation_rebate_order_role (order_id, trade_role), MODIFY COLUMN order_id BIGINT UNSIGNED NOT NULL COMMENT '关联订单ID', DROP COLUMN source;