-- 代理线下预存款审批字段:收款方式快照、交易流水号与其他凭证。 -- 新增列保持可空以兼容历史行;不新增唯一约束,交易流水号不参与去重。 -- external_transaction_no 独立于在线渠道的 payment_transaction_id,两者语义与写入方互不影响。 ALTER TABLE tb_agent_recharge_record ADD COLUMN IF NOT EXISTS external_transaction_no varchar(128), ADD COLUMN IF NOT EXISTS offline_payment_method_id bigint, ADD COLUMN IF NOT EXISTS offline_payment_method_code varchar(64), ADD COLUMN IF NOT EXISTS offline_payment_method_name varchar(100), ADD COLUMN IF NOT EXISTS other_voucher_keys jsonb; -- 收款方式引用判定与详情查询索引:仅索引有效引用行。 CREATE INDEX IF NOT EXISTS idx_agent_recharge_offline_payment_method ON tb_agent_recharge_record (offline_payment_method_id) WHERE offline_payment_method_id IS NOT NULL AND deleted_at IS NULL; -- 交易流水号检索索引:不是唯一约束,允许重复申报。 CREATE INDEX IF NOT EXISTS idx_agent_recharge_external_transaction_no ON tb_agent_recharge_record (external_transaction_no) WHERE external_transaction_no IS NOT NULL AND external_transaction_no <> '' AND deleted_at IS NULL; COMMENT ON COLUMN tb_agent_recharge_record.external_transaction_no IS '线下充值交易流水号,由付款凭证识别预填并经人工确认,独立于在线渠道第三方交易号'; COMMENT ON COLUMN tb_agent_recharge_record.offline_payment_method_id IS '线下收款方式字典ID(关联tb_employee_collection_payment_method.id)'; COMMENT ON COLUMN tb_agent_recharge_record.offline_payment_method_code IS '线下收款方式稳定编码快照,字典改名或停用不影响历史记录'; COMMENT ON COLUMN tb_agent_recharge_record.offline_payment_method_name IS '线下收款方式名称快照,字典改名或停用不影响历史记录'; COMMENT ON COLUMN tb_agent_recharge_record.other_voucher_keys IS '其他凭证对象存储Key列表(jsonb 存储 []string),只保存对象键引用,最多5个';