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

22 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 用途说明
- 退款管理:全局退款列表与详情,用于按条件检索所有订单的退款记录。前端 `web/admin/src/views/refunds/list/index.vue:21-31` 通过 `fetchAdminRefunds` 请求后端分页列表 `GET admin/pay/refunds``internal/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/import``GET admin/pay/bills/diff``internal/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` 组合查询)。