feat: 充值订单审计与重新申请,优化赛事展示和余额刷新

- 新增 deposit_order_audit_logs 表,记录提交/审批/拒绝/撤销/重提全链路
- 管理端充值单页增加审计历史;玩家端充值历史支持时间线与重新申请
- 已拒绝订单可原单号重提;撤销入账使用 PLAYER_DEPOSIT_REVERSAL 并加强幂等
- 结算后清除热门标记,允许归档已结算赛事,完善今日赛事时区窗口
- 足球页今日/早盘独立折叠;资料与余额在进入钱包/个人页及下注后自动刷新
- 补充投注玩法、结算返水规则文档;新增 smoke/settlement CLI 脚本

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-15 14:52:05 +08:00
parent 73a94e6be3
commit afb5c5437e
55 changed files with 3050 additions and 160 deletions

View File

@@ -87,8 +87,21 @@ const zh: Record<string, string> = {
'deposit.confirm_reopen': '订单将恢复为待审核,可再次批准或拒绝。确定继续?',
'deposit.delete': '删除',
'deposit.confirm_delete': '【仅删除记录】将永久删除本订单记录及截图文件。确定继续?',
'deposit.delete_failed': '删除失败',
'deposit.prev': '上一页',
'deposit.next': '下一页',
'deposit.audit_history': '审核记录',
'deposit.audit_action': '操作',
'deposit.audit_actor': '操作人',
'deposit.audit_time': '时间',
'deposit.audit_remark': '备注',
'deposit.audit_submitted': '提交申请',
'deposit.audit_approved': '审核通过',
'deposit.audit_rejected': '审核拒绝',
'deposit.audit_revoked': '撤销审核',
'deposit.audit_reopened': '重新审核',
'deposit.audit_deleted': '已删除',
'deposit.audit_empty': '暂无审核记录',
'deposit.add_method': '+ 添加',
'deposit.display_name': '展示名称',
'deposit.details': '详情',
@@ -357,8 +370,21 @@ const en: Record<string, string> = {
'deposit.confirm_reopen': 'The order will return to pending for approve or reject. Continue?',
'deposit.delete': 'Delete',
'deposit.confirm_delete': '[Records only] Permanently delete this order record and screenshot. Continue?',
'deposit.delete_failed': 'Delete failed',
'deposit.prev': 'Prev',
'deposit.next': 'Next',
'deposit.audit_history': 'Review history',
'deposit.audit_action': 'Action',
'deposit.audit_actor': 'Actor',
'deposit.audit_time': 'Time',
'deposit.audit_remark': 'Remark',
'deposit.audit_submitted': 'Submitted',
'deposit.audit_approved': 'Approved',
'deposit.audit_rejected': 'Rejected',
'deposit.audit_revoked': 'Approval revoked',
'deposit.audit_reopened': 'Reopened for review',
'deposit.audit_deleted': 'Deleted',
'deposit.audit_empty': 'No review history yet',
'deposit.add_method': '+ Add',
'deposit.display_name': 'Display Name',
'deposit.details': 'Details',
@@ -625,8 +651,21 @@ const ms: Record<string, string> = {
'deposit.confirm_reopen': 'Pesanan kembali menunggu untuk lulus atau tolak. Teruskan?',
'deposit.delete': 'Padam',
'deposit.confirm_delete': '[Rekod sahaja] Padam rekod pesanan dan tangkapan skrin. Teruskan?',
'deposit.delete_failed': 'Gagal memadam',
'deposit.prev': 'Sebelum',
'deposit.next': 'Seterus',
'deposit.audit_history': 'Sejarah semakan',
'deposit.audit_action': 'Tindakan',
'deposit.audit_actor': 'Pengendali',
'deposit.audit_time': 'Masa',
'deposit.audit_remark': 'Catatan',
'deposit.audit_submitted': 'Dihantar',
'deposit.audit_approved': 'Diluluskan',
'deposit.audit_rejected': 'Ditolak',
'deposit.audit_revoked': 'Kelulusan dibatalkan',
'deposit.audit_reopened': 'Dibuka semula',
'deposit.audit_deleted': 'Dipadam',
'deposit.audit_empty': 'Tiada sejarah semakan',
'deposit.add_method': '+ Tambah',
'deposit.display_name': 'Nama Paparan',
'deposit.details': 'Butiran',