## 用途说明
- 退款管理：全局退款列表与详情，用于按条件检索所有订单的退款记录。前端 `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` 组合查询）。