diff --git a/migrations/000211_add_payment_merchant_column_comments.down.sql b/migrations/000211_add_payment_merchant_column_comments.down.sql new file mode 100644 index 0000000..4beb819 --- /dev/null +++ b/migrations/000211_add_payment_merchant_column_comments.down.sql @@ -0,0 +1,80 @@ +-- 回滚商户池支付路由字段级备注:仅将 000211 补充的字段 COMMENT 置空。 +-- 表级 COMMENT 由 000210 提供,本迁移不做处理。 + +COMMENT ON COLUMN tb_payment_merchant.id IS NULL; +COMMENT ON COLUMN tb_payment_merchant.name IS NULL; +COMMENT ON COLUMN tb_payment_merchant.payment_method IS NULL; +COMMENT ON COLUMN tb_payment_merchant.provider_type IS NULL; +COMMENT ON COLUMN tb_payment_merchant.merchant_identity IS NULL; +COMMENT ON COLUMN tb_payment_merchant.credentials IS NULL; +COMMENT ON COLUMN tb_payment_merchant.credential_version IS NULL; +COMMENT ON COLUMN tb_payment_merchant.status IS NULL; +COMMENT ON COLUMN tb_payment_merchant.remark IS NULL; +COMMENT ON COLUMN tb_payment_merchant.creator IS NULL; +COMMENT ON COLUMN tb_payment_merchant.updater IS NULL; +COMMENT ON COLUMN tb_payment_merchant.created_at IS NULL; +COMMENT ON COLUMN tb_payment_merchant.updated_at IS NULL; +COMMENT ON COLUMN tb_payment_merchant.deleted_at IS NULL; + +COMMENT ON COLUMN tb_payment_merchant_pool.id IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool.name IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool.payment_method IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool.status IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool.strategy IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool.threshold_amount IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool.threshold_count IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool.statistic_cycle IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool.time_period_value IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool.time_period_unit IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool.time_period_started_at IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool.routing_epoch IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool.remark IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool.creator IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool.updater IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool.created_at IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool.updated_at IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool.deleted_at IS NULL; + +COMMENT ON COLUMN tb_payment_merchant_pool_member.id IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool_member.pool_id IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool_member.merchant_id IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool_member.sort_order IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool_member.creator IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool_member.updater IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool_member.created_at IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool_member.updated_at IS NULL; +COMMENT ON COLUMN tb_payment_merchant_pool_member.deleted_at IS NULL; + +COMMENT ON COLUMN tb_wechat_authorization.id IS NULL; +COMMENT ON COLUMN tb_wechat_authorization.oa_app_id IS NULL; +COMMENT ON COLUMN tb_wechat_authorization.oa_app_secret IS NULL; +COMMENT ON COLUMN tb_wechat_authorization.oa_token IS NULL; +COMMENT ON COLUMN tb_wechat_authorization.oa_aes_key IS NULL; +COMMENT ON COLUMN tb_wechat_authorization.oa_oauth_redirect_url IS NULL; +COMMENT ON COLUMN tb_wechat_authorization.miniapp_app_id IS NULL; +COMMENT ON COLUMN tb_wechat_authorization.miniapp_app_secret IS NULL; +COMMENT ON COLUMN tb_wechat_authorization.credential_version IS NULL; +COMMENT ON COLUMN tb_wechat_authorization.status IS NULL; +COMMENT ON COLUMN tb_wechat_authorization.creator IS NULL; +COMMENT ON COLUMN tb_wechat_authorization.updater IS NULL; +COMMENT ON COLUMN tb_wechat_authorization.created_at IS NULL; +COMMENT ON COLUMN tb_wechat_authorization.updated_at IS NULL; +COMMENT ON COLUMN tb_wechat_authorization.deleted_at IS NULL; + +COMMENT ON COLUMN tb_payment_merchant_routing_success.id IS NULL; +COMMENT ON COLUMN tb_payment_merchant_routing_success.payment_id IS NULL; +COMMENT ON COLUMN tb_payment_merchant_routing_success.merchant_id IS NULL; +COMMENT ON COLUMN tb_payment_merchant_routing_success.pool_id IS NULL; +COMMENT ON COLUMN tb_payment_merchant_routing_success.routing_epoch IS NULL; +COMMENT ON COLUMN tb_payment_merchant_routing_success.amount IS NULL; +COMMENT ON COLUMN tb_payment_merchant_routing_success.paid_at IS NULL; +COMMENT ON COLUMN tb_payment_merchant_routing_success.created_at IS NULL; + +COMMENT ON COLUMN tb_payment.merchant_id IS NULL; +COMMENT ON COLUMN tb_payment.merchant_pool_id IS NULL; +COMMENT ON COLUMN tb_payment.merchant_name_snapshot IS NULL; +COMMENT ON COLUMN tb_payment.merchant_payment_method_snapshot IS NULL; +COMMENT ON COLUMN tb_payment.merchant_provider_type_snapshot IS NULL; +COMMENT ON COLUMN tb_payment.merchant_pool_name_snapshot IS NULL; +COMMENT ON COLUMN tb_payment.routing_strategy_snapshot IS NULL; +COMMENT ON COLUMN tb_payment.routing_epoch IS NULL; diff --git a/migrations/000211_add_payment_merchant_column_comments.up.sql b/migrations/000211_add_payment_merchant_column_comments.up.sql new file mode 100644 index 0000000..8270667 --- /dev/null +++ b/migrations/000211_add_payment_merchant_column_comments.up.sql @@ -0,0 +1,86 @@ +-- 补齐商户池支付路由各表字段级中文备注。 +-- 仅补充 COMMENT,不改变任何表结构或数据。 + +-- 实际收款商户 +COMMENT ON COLUMN tb_payment_merchant.id IS '主键,收款商户ID'; +COMMENT ON COLUMN tb_payment_merchant.name IS '商户显示名称'; +COMMENT ON COLUMN tb_payment_merchant.payment_method IS '支付方式:wechat 微信、alipay 支付宝;与 merchant_identity 在未删除记录中唯一'; +COMMENT ON COLUMN tb_payment_merchant.provider_type IS '渠道类型:wechat 微信V3、wechat_v2 微信V2、fuiou 富友、alipay 支付宝'; +COMMENT ON COLUMN tb_payment_merchant.merchant_identity IS '渠道侧商户标识,如微信商户号、富友商户号、支付宝应用ID'; +COMMENT ON COLUMN tb_payment_merchant.credentials IS '渠道凭证 JSON,按 provider_type 保存密钥/证书等敏感字段,仅整体轮换、禁止对外输出'; +COMMENT ON COLUMN tb_payment_merchant.credential_version IS '凭证版本号,密钥轮换时递增,最小为 1'; +COMMENT ON COLUMN tb_payment_merchant.status IS '状态:0 禁用、1 启用'; +COMMENT ON COLUMN tb_payment_merchant.remark IS '备注'; +COMMENT ON COLUMN tb_payment_merchant.creator IS '创建人用户ID,0 表示系统'; +COMMENT ON COLUMN tb_payment_merchant.updater IS '最近更新人用户ID,0 表示系统'; +COMMENT ON COLUMN tb_payment_merchant.created_at IS '创建时间'; +COMMENT ON COLUMN tb_payment_merchant.updated_at IS '最近更新时间'; +COMMENT ON COLUMN tb_payment_merchant.deleted_at IS '软删除时间,非空表示已删除'; + +-- 商户池 +COMMENT ON COLUMN tb_payment_merchant_pool.id IS '主键,商户池ID'; +COMMENT ON COLUMN tb_payment_merchant_pool.name IS '商户池名称,未删除记录中唯一'; +COMMENT ON COLUMN tb_payment_merchant_pool.payment_method IS '支付方式:wechat 微信、alipay 支付宝;同一支付方式至多一个启用池'; +COMMENT ON COLUMN tb_payment_merchant_pool.status IS '状态:0 禁用、1 启用'; +COMMENT ON COLUMN tb_payment_merchant_pool.strategy IS '轮询策略:amount 金额阈值、count 笔数阈值、time 时间轮询'; +COMMENT ON COLUMN tb_payment_merchant_pool.threshold_amount IS '金额策略阈值(单位:分),统计周期内单商户收款金额达到即切换下一成员'; +COMMENT ON COLUMN tb_payment_merchant_pool.threshold_count IS '笔数策略阈值,统计周期内单商户收款笔数达到即切换下一成员'; +COMMENT ON COLUMN tb_payment_merchant_pool.statistic_cycle IS '统计周期:round 累计、day 自然日、month 自然月;amount/count 策略必填,time 策略为空'; +COMMENT ON COLUMN tb_payment_merchant_pool.time_period_value IS '时间策略周期长度,与 time_period_unit 组成轮询周期'; +COMMENT ON COLUMN tb_payment_merchant_pool.time_period_unit IS '时间策略周期单位:minute 分钟、hour 小时、day 天'; +COMMENT ON COLUMN tb_payment_merchant_pool.time_period_started_at IS '时间策略周期起点,周期到期切换到下一成员'; +COMMENT ON COLUMN tb_payment_merchant_pool.routing_epoch IS '路由统计世代,池成员或策略变更及阈值达成时递增;统计按世代隔离,最小为 1'; +COMMENT ON COLUMN tb_payment_merchant_pool.remark IS '备注'; +COMMENT ON COLUMN tb_payment_merchant_pool.creator IS '创建人用户ID,0 表示系统'; +COMMENT ON COLUMN tb_payment_merchant_pool.updater IS '最近更新人用户ID,0 表示系统'; +COMMENT ON COLUMN tb_payment_merchant_pool.created_at IS '创建时间'; +COMMENT ON COLUMN tb_payment_merchant_pool.updated_at IS '最近更新时间'; +COMMENT ON COLUMN tb_payment_merchant_pool.deleted_at IS '软删除时间,非空表示已删除'; + +-- 商户池有序成员 +COMMENT ON COLUMN tb_payment_merchant_pool_member.id IS '主键'; +COMMENT ON COLUMN tb_payment_merchant_pool_member.pool_id IS '所属商户池ID'; +COMMENT ON COLUMN tb_payment_merchant_pool_member.merchant_id IS '成员收款商户ID,未删除时池内唯一'; +COMMENT ON COLUMN tb_payment_merchant_pool_member.sort_order IS '池内轮询顺序,从 0 递增,未删除时池内唯一'; +COMMENT ON COLUMN tb_payment_merchant_pool_member.creator IS '创建人用户ID,0 表示系统'; +COMMENT ON COLUMN tb_payment_merchant_pool_member.updater IS '最近更新人用户ID,0 表示系统'; +COMMENT ON COLUMN tb_payment_merchant_pool_member.created_at IS '创建时间'; +COMMENT ON COLUMN tb_payment_merchant_pool_member.updated_at IS '最近更新时间'; +COMMENT ON COLUMN tb_payment_merchant_pool_member.deleted_at IS '软删除时间,非空表示已移出池'; + +-- C端微信授权配置 +COMMENT ON COLUMN tb_wechat_authorization.id IS '主键'; +COMMENT ON COLUMN tb_wechat_authorization.oa_app_id IS '微信公众号 AppID'; +COMMENT ON COLUMN tb_wechat_authorization.oa_app_secret IS '微信公众号 AppSecret,敏感凭证,禁止对外输出'; +COMMENT ON COLUMN tb_wechat_authorization.oa_token IS '公众号消息校验 Token'; +COMMENT ON COLUMN tb_wechat_authorization.oa_aes_key IS '公众号消息加解密 AES Key,敏感凭证'; +COMMENT ON COLUMN tb_wechat_authorization.oa_oauth_redirect_url IS '公众号网页授权回调地址'; +COMMENT ON COLUMN tb_wechat_authorization.miniapp_app_id IS '微信小程序 AppID'; +COMMENT ON COLUMN tb_wechat_authorization.miniapp_app_secret IS '微信小程序 AppSecret,敏感凭证,禁止对外输出'; +COMMENT ON COLUMN tb_wechat_authorization.credential_version IS '凭证版本号,密钥轮换时递增,最小为 1'; +COMMENT ON COLUMN tb_wechat_authorization.status IS '状态:0 禁用、1 启用;全局至多一条启用记录'; +COMMENT ON COLUMN tb_wechat_authorization.creator IS '创建人用户ID,0 表示系统'; +COMMENT ON COLUMN tb_wechat_authorization.updater IS '最近更新人用户ID,0 表示系统'; +COMMENT ON COLUMN tb_wechat_authorization.created_at IS '创建时间'; +COMMENT ON COLUMN tb_wechat_authorization.updated_at IS '最近更新时间'; +COMMENT ON COLUMN tb_wechat_authorization.deleted_at IS '软删除时间,非空表示已删除'; + +-- 路由成功累计事实 +COMMENT ON COLUMN tb_payment_merchant_routing_success.id IS '主键'; +COMMENT ON COLUMN tb_payment_merchant_routing_success.payment_id IS '支付ID,唯一;仅在支付首次成功时写入,之后不可变'; +COMMENT ON COLUMN tb_payment_merchant_routing_success.merchant_id IS '收款商户ID,支付创建时冻结'; +COMMENT ON COLUMN tb_payment_merchant_routing_success.pool_id IS '商户池ID,支付创建时冻结'; +COMMENT ON COLUMN tb_payment_merchant_routing_success.routing_epoch IS '支付创建时冻结的商户池统计世代,统计按世代隔离'; +COMMENT ON COLUMN tb_payment_merchant_routing_success.amount IS '支付金额(单位:分)'; +COMMENT ON COLUMN tb_payment_merchant_routing_success.paid_at IS '支付首次成功时间'; +COMMENT ON COLUMN tb_payment_merchant_routing_success.created_at IS '记录创建时间'; + +-- 支付单路由字段与快照 +COMMENT ON COLUMN tb_payment.merchant_id IS '路由选中的收款商户ID,支付创建时冻结;空表示未走商户池路由'; +COMMENT ON COLUMN tb_payment.merchant_pool_id IS '路由选中的商户池ID,支付创建时冻结;空表示未走商户池路由'; +COMMENT ON COLUMN tb_payment.merchant_name_snapshot IS '收款商户名称快照,商户后续改名不影响历史单据展示'; +COMMENT ON COLUMN tb_payment.merchant_payment_method_snapshot IS '收款商户支付方式快照:wechat 微信、alipay 支付宝'; +COMMENT ON COLUMN tb_payment.merchant_provider_type_snapshot IS '收款商户渠道类型快照:wechat 微信V3、wechat_v2 微信V2、fuiou 富友、alipay 支付宝'; +COMMENT ON COLUMN tb_payment.merchant_pool_name_snapshot IS '商户池名称快照,池后续改名不影响历史单据展示'; +COMMENT ON COLUMN tb_payment.routing_strategy_snapshot IS '路由策略快照:amount 金额阈值、count 笔数阈值、time 时间轮询'; +COMMENT ON COLUMN tb_payment.routing_epoch IS '支付创建时冻结的商户池统计世代,决定该支付成功后的统计归属';