bindbox-game/.trae/documents/澄清与验证「退款管理」与「对账管理」的数据可见性.md
邹方成 6ee627139c
Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 40s
feat: 新增支付测试小程序与微信支付集成
feat(pay): 添加支付API基础结构
feat(miniapp): 创建支付测试小程序页面与配置
feat(wechatpay): 配置微信支付参数与证书
fix(guild): 修复成员列表查询条件
docs: 更新代码规范文档与需求文档
style: 统一前后端枚举显示与注释格式
refactor(admin): 重构用户奖励发放接口参数处理
test(title): 添加称号效果参数验证测试
2025-11-17 00:42:08 +08:00

2.6 KiB
Raw Blame History

用途说明

  • 退款管理:全局退款列表与详情,用于按条件检索所有订单的退款记录。前端 web/admin/src/views/refunds/list/index.vue:21-31 通过 fetchAdminRefunds 请求后端分页列表 GET admin/pay/refundsinternal/router/router.go:169-171;实现 internal/api/admin/pay_refund_admin.go:154-181)。
  • 对账管理:导入微信日账单后,对本地交易/退款与微信账单进行比对并生成差异明细。入口 web/admin/src/views/reconcile/diff/index.vue:45-76;后端 POST admin/pay/bills/importGET admin/pay/bills/diffinternal/router/router.go:172-173;实现 internal/api/admin/pay_reconcile_admin.go:37-75,154-182)。

为什么你现在看到的现象成立

  • 订单管理能看到退款:订单详情直接按该订单号聚合退款记录 internal/api/admin/pay_orders_admin.go:216-226,来源同一表 payment_refunds
  • 退款管理为空:通常由筛选条件或分页导致。该页面有 order_no/status 两个筛选项并在挂载时执行一次查询 web/admin/src/views/refunds/list/index.vue:43-55;若筛选为非空但不匹配当前退款,列表会显示为空。
  • 对账管理为空:只有在执行“导入账单”后才会计算并产生差异;未导入则 payment_bill_diff 自然为空(计算逻辑 internal/api/admin/pay_reconcile_admin.go:77-107,109-138)。

快速验证步骤

  1. 在“退款管理”清空筛选并点击“刷新”,或直接调用 GET admin/pay/refunds(默认分页 20 条)确认返回是否包含最近的退款;该接口由认证组保护,需管理员登录(internal/router/router.go:169-171)。
  2. 如仍为空,检查是否写入了 payment_refunds:创建退款的写库在 internal/api/admin/pay_refund_admin.go:70-80,列表读取在 154-181
  3. 在“对账管理”点击“导入账单”:选择“交易账单”或“退款账单”,粘贴当日微信账单的 JSON页面模型 web/admin/src/views/reconcile/diff/index.vue:45-76)。导入后查询 GET admin/pay/bills/diff 是否出现差异。

示例导入 JSON退款账单

  • 格式示例:[{"refund_no":"R202411010001","out_trade_no":"O202411010001","amount_refund":100}]
  • 交易账单示例:[{"transaction_id":"4200001xxx","out_trade_no":"O202411010001","amount_total":100}]

接下来我将执行

  • 复核你当前管理端的筛选条件、分页与管理员登录态是否正常。
  • 指导你导入一份当日测试账单并确认差异计算是否可见。
  • 如需要,再定位具体退款记录的可见性(按 order_no/status 组合查询)。