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,65 @@
# 小程序前端 → 后端接口需求记录
> 记录小程序前端在硬编码审计中发现的、需要后端配合的接口需求。
> 创建时间2026-03-18
---
## REQ-1技能类型配置接口
- 来源页面:`board-coach`
- 当前状态:`SKILL_OPTIONS` 硬编码 5 项(全部/中🎱/🎯斯诺克/小组课/打赏课)
- 需求:门店技能类型应可配置,需要后端提供配置接口
- 建议接口:`GET /api/xcx/config/skill-types`
- 返回格式:`{ skills: Array<{ value: string; text: string }> }`
- 优先级P2联调阶段处理
---
## REQ-2对话图标颜色固定化
- 来源页面:`chat-history`
- 当前状态:`iconGradient` 每次渲染随机分配颜色,刷新后颜色会变
- 需求:颜色应按对话 ID 哈希固定,无需后端配合
- 前端方案:已改为按 `id` 字符串哈希取模,从 6 色渐变数组中固定选取
- 状态:✅ 已完成(前端自行处理)
---
## REQ-3开发模式 openid 上线安全
- 来源页面:`login`
- 当前状态:开发模式使用固定 `dev_test_openid`,通过 `API_BASE.startsWith("http://127.0.0.1")` 判断
- 风险:如果 `isDevMode` 判断逻辑被绕过,可能存在安全隐患
- 需求:上线前确保后端 `/api/xcx/dev-login` 接口在生产环境不可用
- 建议:后端通过环境变量控制 dev-login 路由注册,生产环境不注册该路由
- 优先级P0上线前必须处理
---
## REQ-4`authUser` 字段扩展
- 来源页面:`performance-records``my-profile``coach-detail`
- 当前状态:`globalData.authUser` 仅有 `userId``status``nickname`
- 需求:多个页面需要展示当前用户的角色、门店名、助教等级等信息
- 建议:`GET /api/xcx/me` 返回扩展字段,前端存入 `authUser`
- 新增字段:
| 字段 | 类型 | 说明 | 来源 |
|------|------|------|------|
| `role` | `string` | 用户角色(如"助教" | 后端用户表 |
| `storeName` | `string` | 所属门店名称 | 后端门店表 |
| `coachLevel` | `string?` | 助教等级junior/middle/senior/star | 后端助教表(仅助教角色有) |
| `avatar` | `string?` | 用户头像 URL | 后端用户表 |
- 优先级P1联调阶段处理
---
## REQ-5筛选选项全平台共用
- 来源页面:`board-coach``board-customer`
- 当前状态:`SORT_OPTIONS`6 项排序维度)、`TIME_OPTIONS`6 项时间范围)、维度选项等硬编码在前端
- 决定:这些筛选选项全平台共用,暂保持前端硬编码
- 后续:如果需要动态调整,再改为后端配置接口
- 状态:🔒 暂不处理