You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
6.2 KiB
6.2 KiB
school_pay_refund 表文档
表概述
表名: school_pay_refund
功能: 支付退款管理表,用于处理和管理各种业务场景下的退款申请和处理流程,包括课程退费、订单取消、服务纠纷等退款场景,支持多渠道退款、状态跟踪、失败处理和凭证管理,为学校提供完整的退款业务管理和财务对账功能
字段说明
Field Type Collation Null Key Default Extra Privileges Comment
id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references 主键
refund_no varchar(255) utf8mb4_general_ci NO select,insert,update,references 退款单号
out_trade_no varchar(255) utf8mb4_general_ci NO select,insert,update,references 支付流水号
type varchar(255) utf8mb4_general_ci NO select,insert,update,references 支付方式
channel varchar(50) utf8mb4_general_ci NO select,insert,update,references 支付渠道
money decimal(10,2) NULL NO 0.00 select,insert,update,references 支付金额
reason varchar(255) utf8mb4_general_ci NO select,insert,update,references 退款原因
status varchar(255) utf8mb4_general_ci NO 0 select,insert,update,references 支付状态(0.待退款 1. 退款中 2. 已退款 -1已关闭)
create_time int NULL NO 0 select,insert,update,references 创建时间
refund_time int NULL NO 0 select,insert,update,references 支付时间
close_time int NULL NO 0 select,insert,update,references 关闭时间
fail_reason varchar(255) utf8mb4_general_ci NO select,insert,update,references 失败原因
voucher varchar(255) utf8mb4_general_ci NO select,insert,update,references 支付凭证
trade_type varchar(255) utf8mb4_general_ci NO select,insert,update,references 业务类型
trade_id varchar(50) utf8mb4_general_ci NO select,insert,update,references 业务关联id
refund_type varchar(255) utf8mb4_general_ci NO select,insert,update,references 退款方式
main_type varchar(255) utf8mb4_general_ci NO select,insert,update,references 操作人类型
main_id int NULL NO 0 select,insert,update,references 操作人
pay_refund_no varchar(255) utf8mb4_general_ci NO select,insert,update,references 外部支付方式的退款单号
功能用途
主要功能
- 退款申请管理: 处理各种业务场景下的退款申请和审批流程
- 退款流程控制: 管理退款的完整流程(申请→审核→退款→完成)
- 退款状态跟踪: 实时跟踪退款状态变化和处理进度
- 多渠道退款: 支持多种支付渠道的退款处理(微信、支付宝、银行卡等)
- 退款金额管理: 精确计算和管理退款金额,支持部分退款
- 退款凭证管理: 管理退款凭证和相关票据信息
- 失败处理机制: 记录退款失败原因,支持重新处理
- 业务关联: 与原始支付记录和相关业务进行关联
- 操作人员管理: 记录退款操作的具体执行人员
业务场景
- 课程退费: 学员申请课程退费的退款处理
- 订单取消退款: 订单取消后的自动退款
- 服务纠纷退款: 因服务质量问题产生的退款
- 系统错误退款: 因系统错误导致的多收费用退款
- 部分退款: 课程部分完成后的按比例退款
- 批量退款: 因活动取消等原因的批量退款处理
- 退款审核: 财务人员审核退款申请的合理性
- 退款对账: 与第三方支付平台进行退款对账
关联关系
主要关联表
school_pay: 支付记录表 (out_trade_no)school_member: 会员信息表 (main_id)school_order: 订单信息表 (通过trade_id关联)school_contract: 合同信息表 (通过trade_id关联)school_course: 课程信息表 (通过业务关联)school_sys_user: 系统用户表 (操作人员信息)school_member_account: 会员账户表 (退款到余额)school_member_account_log: 账户流水表 (资金变动记录)
关联说明
- 支付关联: out_trade_no关联原始支付记录,确保退款与支付匹配
- 会员关联: main_id关联退款接收方的会员信息
- 业务关联: 通过trade_type和trade_id关联具体的业务记录
- 操作人关联: main_id在不同main_type下关联不同类型的操作人员
- 账户关联: 退款到余额时需要关联会员账户信息
- 流水关联: 退款完成后在账户流水表中记录资金变动
- 渠道关联: channel和type字段关联支付渠道配置
索引建议
- 主键索引: id (已存在)
- 唯一索引: refund_no (退款单号唯一性)
- 外键索引:
- out_trade_no (支付流水号查询)
- main_id (操作人查询)
- 业务索引:
- trade_type (业务类型查询)
- trade_id (业务ID查询)
- 状态索引: status (退款状态查询)
- 时间索引:
- create_time (创建时间查询)
- refund_time (退款时间查询)
- close_time (关闭时间查询)
- 复合索引:
- (out_trade_no, status) (支付退款状态查询)
- (main_id, status) (操作人退款状态查询)
- (trade_type, trade_id) (业务关联查询)
- (type, status) (退款方式状态查询)
- (create_time, status) (时间状态查询)
注意事项
- 金额精度: money字段使用decimal(10,2),确保财务计算精度
- 退款限制: 退款金额不能超过原支付金额
- 状态流转: 退款状态有严格的流转规则(0→1→2或0→-1)
- 时间逻辑: refund_time不能早于create_time,close_time只在关闭时设置
- 支付关联: 必须基于有效的支付记录才能发起退款
- 渠道一致性: 退款渠道应与原支付渠道保持一致
- 重复退款: 防止同一笔支付重复退款或超额退款
- 失败处理: 退款失败时必须记录详细的fail_reason
- 凭证管理: voucher字段用于存储退款凭证,确保可追溯
- 业务完整性: trade_type和trade_id必须与原支付记录保持一致
- 操作权限: 不同类型的操作人员有不同的退款权限
- 数据一致性: 退款成功后必须同步更新相关业务状态
- 审核机制: 大额退款需要多级审核确认
- 对账要求: 定期与第三方支付平台进行退款对账
- 法律合规: 退款操作需要符合相关法律法规要求