智慧教务系统
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

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必须与原支付记录保持一致
  • 操作权限: 不同类型的操作人员有不同的退款权限
  • 数据一致性: 退款成功后必须同步更新相关业务状态
  • 审核机制: 大额退款需要多级审核确认
  • 对账要求: 定期与第三方支付平台进行退款对账
  • 法律合规: 退款操作需要符合相关法律法规要求