feat: batch update - gift card breakdown spec, backend APIs, miniprogram pages, ETL finance recharge, docs & migrations

This commit is contained in:
Neo
2026-03-20 01:43:48 +08:00
parent 075caf067f
commit 79f9a0e1da
437 changed files with 118603 additions and 976 deletions

View File

@@ -0,0 +1,98 @@
# reviewing 页面数据来源排查
> 排查日期2026-03-18
> 页面路径pages/reviewing/reviewing
## 概览
| 分类 | 数量 | 说明 |
|------|------|------|
| Mock 数据 | 0 | 无 mock 引用 |
| 硬编码数据 | 5 | 状态跳转路径、Storage key、Toast 文案等 |
| 已对接 API | 1 | `GET /api/xcx/me` |
| 前端计算/派生 | 3 | 状态栏高度、状态条件分支、application 提取 |
| 路由参数 | 0 | 无 |
| WXML 硬编码文案 | 12 | 标题、提示语、标签等 |
## 一、Mock 数据
无。本页面未引用 `mock-data.ts`,所有数据均来自 API。
## 二、硬编码数据
| # | 文件 | 行号 | 内容 | 风险等级 | 说明 |
|---|------|------|------|----------|------|
| 1 | `.ts` | L39 | `url: "/api/xcx/me"` | 🟢 低 | API 端点路径,通常不变 |
| 2 | `.ts` | L55 | `url: "/pages/mvp/mvp"` | 🟢 低 | approved 状态跳转路径 |
| 3 | `.ts` | L61 | `url: "/pages/no-permission/no-permission"` | 🟢 低 | disabled 状态跳转路径 |
| 4 | `.ts` | L67 | `url: "/pages/no-permission/no-permission"` | 🟢 低 | rejected 状态跳转路径 |
| 5 | `.ts` | L73 | `url: "/pages/apply/apply"` | 🟢 低 | new 状态跳转路径 |
| 6 | `.ts` | L82 | `title: "获取状态失败"` | 🟡 中 | Toast 错误提示文案,建议抽取为常量 |
| 7 | `.ts` | L8693 | Storage key: `"token"`, `"refreshToken"`, `"userId"`, `"userStatus"` | 🟡 中 | 多处重复使用,建议抽取为常量统一管理 |
| 8 | `.ts` | L94 | `url: "/pages/login/login"` | 🟢 低 | 切换账号跳转路径 |
## 三、已对接 API
### 3.1 `GET /api/xcx/me`
| 属性 | 值 |
|------|-----|
| 调用位置 | `fetchStatus()` — L37-81 |
| 触发时机 | `onLoad()``onShow()``onPullDownRefresh()` |
| 请求方式 | `GET` |
| 需要鉴权 | ✅ `needAuth: true` |
| 请求参数 | 无 |
| 响应字段(使用中) | `user_id`, `status`, `nickname`, `latest_application` |
| 响应字段application 子对象) | `id`, `site_code`, `role_type`, `phone`, `status`, `reject_reason`, `created_at` |
**状态流转逻辑:**
| `data.status` 值 | 行为 |
|-------------------|------|
| `"approved"` | `wx.reLaunch``/pages/mvp/mvp` |
| `"disabled"` | `wx.reLaunch``/pages/no-permission/no-permission` |
| `"rejected"` | `wx.reLaunch``/pages/no-permission/no-permission` |
| `"new"` | `wx.reLaunch``/pages/apply/apply` |
| `"pending"` | 留在当前页,展示审核中 UI |
**副作用:**
- 同步 `globalData.authUser``userId`, `status`, `nickname`
- 写入 Storage`userId`, `userStatus`
## 四、前端计算/派生数据
| # | 数据 | 来源 | 说明 |
|---|------|------|------|
| 1 | `statusBarHeight` | `wx.getWindowInfo().statusBarHeight` | 系统 API用于自定义导航栏顶部偏移 |
| 2 | `status` | 从 API 响应 `data.status` 赋值 | 控制 pending/rejected 两种 UI 状态 |
| 3 | `application` | 从 API 响应 `data.latest_application` 提取 | 展示申请信息摘要球房ID、身份、手机号 |
## 五、路由参数
无。本页面不接收任何路由参数。
## 六、WXML 硬编码文案
| # | 内容 | 位置 | 建议 |
|---|------|------|------|
| 1 | `"加载中..."` | loading 区域 | 可保留 |
| 2 | `"申请审核中"` | main-titlepending | 可保留 |
| 3 | `"申请未通过"` | main-titlerejected | 可保留 |
| 4 | `"您的访问申请已提交成功,正在等待管理员审核,请耐心等待"` | sub-titlepending | 可保留 |
| 5 | `"很抱歉,您的申请未通过审核"` | sub-titlerejected | 可保留 |
| 6 | `"审核进度"` | progress-title | 可保留 |
| 7 | `"通常需要 1-3 个工作日"` | progress-desc | 🟡 如审核时效变化需同步修改 |
| 8 | `"已提交"` / `"审核中"` / `"通过"` | 进度步骤标签 | 可保留 |
| 9 | `"拒绝原因"` | reject-title | 可保留 |
| 10 | `"申请信息"` | info-card-title | 可保留 |
| 11 | `"球房ID"` / `"申请身份"` / `"手机号"` | info-label | 可保留 |
| 12 | `"如有疑问,请联系管理员"` | contact-text | 可保留 |
| 13 | `"更换登录账号"` | switch-btn-text | 可保留 |
## 七、联调 TODO
| # | 优先级 | 事项 | 当前状态 | 说明 |
|---|--------|------|----------|------|
| 1 | — | — | — | 本页面已完成 API 对接,无待联调项 |
**结论:** reviewing 页面已完全对接 `GET /api/xcx/me`,无 mock 数据残留,联调状态良好。唯一建议是将 Storage key 和 Toast 文案抽取为常量统一管理。