forked from wangziqi/gongxue-base
feat: use preset avatars and disable leaderboard by default
This commit is contained in:
@@ -253,7 +253,7 @@ tenant:<tenantId>:theme
|
||||
| 错题复习 | `GET /api/learning/wrong-questions/review-plan`、`POST /api/learning/practice-sessions` with `mode=wrong_review` |
|
||||
| 收藏夹 | `GET/POST /api/learning/favorites/questions` |
|
||||
| 练习历史/统计 | `GET /api/learning/practice-sessions/history`、`GET /api/learning/stats`、`GET /api/learning/trend` |
|
||||
| 学习排行榜 | `GET /api/learning/leaderboard?metric=questions&period=all` |
|
||||
| 学习排行榜 | `GET /api/learning/leaderboard?metric=questions&period=all`,仅当租户 `features.enableLeaderboard=true` 时启用 |
|
||||
| 题目视频 | `GET /api/questions/{questionId}/videos`、`POST /api/questions/videos/batch`、`POST /api/videos/play` |
|
||||
| 题目反馈 | `POST /api/profile/feedbacks`、`GET /api/profile/feedbacks` |
|
||||
| 分佣结算 | `GET /api/commission/settings`、`PUT /api/commission/settings`、`PUT /api/commission/member-rate`、`GET /api/commission/summary`、`GET /api/commission/orders`、`GET /api/commission/settlements`、`POST /api/commission/settlements/generate`、`POST /api/commission/settlements/status` |
|
||||
@@ -745,7 +745,7 @@ POST /api/tenant-admin/badge-grants
|
||||
| 学习概览卡片 | `GET /api/learning/stats?days=30` | 返回总答题、正确率、报告数、错题数、收藏数、题型分布 |
|
||||
| 正确率趋势图 | `GET /api/learning/trend?days=14` | 返回每日答题数、正确数、错题数、session 数、报告数 |
|
||||
| 错题复习入口 | `GET /api/learning/wrong-questions/review-plan?limit=20` | 返回建议复习题和后端组卷 nextAction |
|
||||
| 排行榜 | `GET /api/learning/leaderboard?metric=questions&period=7d®ionId=...&classId=...` | 返回排名、用户展示信息、当前用户排名和范围信息 |
|
||||
| 排行榜 | `GET /api/learning/leaderboard?metric=questions&period=7d®ionId=...&classId=...` | 仅租户 `features.enableLeaderboard=true` 时请求;返回排名、用户展示信息、当前用户排名和范围信息 |
|
||||
|
||||
错题复习创建 session:
|
||||
|
||||
@@ -765,7 +765,7 @@ POST /api/tenant-admin/badge-grants
|
||||
|
||||
### 排行榜
|
||||
|
||||
排行榜由后端统一聚合,前端不要读取答题记录、单词进度或模考报告后自行排名,避免越权、口径漂移和跨租户数据泄露。
|
||||
排行榜由后端统一聚合,但当前产品默认关闭,租户 `feature_flags.enableLeaderboard` 未开启时接口返回 `LEADERBOARD_DISABLED`。前端默认不要在个人中心请求或展示排行榜;只有租户明确开启并完成压测后,再进入独立排行榜页或活动页。前端不要读取答题记录、单词进度或模考报告后自行排名,避免越权、口径漂移和跨租户数据泄露。
|
||||
|
||||
可选参数:
|
||||
|
||||
@@ -1114,6 +1114,41 @@ GET /api/tenant-content/assets/security-scan-events?assetId=<assetId>&limit=100
|
||||
|
||||
首页可用 `GET /api/catalog/exam-dates?regionId=<regionId>` 展示地区公开考试日期;个人中心优先用 `GET /api/profile/exam-countdowns`,后端会按学生当前 `regionId/selectedSchoolId` 返回匹配倒计时。
|
||||
|
||||
## 个人中心预设头像
|
||||
|
||||
学生端不支持用户上传头像。系统只提供男女两种默认头像预设,避免头像上传带来的存储、内容安全、隐私和审核复杂度。前端不要展示文件选择器,不要调用对象存储上传链路,也不要把微信/QQ 返回的头像 URL 写入学生资料。
|
||||
|
||||
当前 Taro service 使用:
|
||||
|
||||
```text
|
||||
apps/taro/src/services/profile.ts
|
||||
|
||||
loadProfile
|
||||
updateProfile({ avatarPreset: 'male' | 'female' })
|
||||
```
|
||||
|
||||
`GET /api/profile/me` 会返回:
|
||||
|
||||
```json
|
||||
{
|
||||
"item": {
|
||||
"avatarPreset": "male",
|
||||
"avatar": {
|
||||
"preset": "male",
|
||||
"displayUrl": "/assets/avatars/default-male.svg"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
前端展示规则:
|
||||
|
||||
- 直接使用 `item.avatar.displayUrl` 展示头像。
|
||||
- 允许用户在 UI 中二选一切换 `male` / `female`,调用 `PATCH /api/profile/me` 的 `avatarPreset` 字段保存。
|
||||
- `PATCH /api/profile/me` 传 `avatarUrl` 会返回 `PROFILE_AVATAR_URL_DIRECT_UPDATE_REJECTED`,前端不应提供该输入。
|
||||
- `avatarPreset` 只能是 `male` 或 `female`;其它值会返回 `INVALID_AVATAR_PRESET`。
|
||||
- 默认头像资源由前端静态资产或 CDN 提供,路径保持 `/assets/avatars/default-male.svg` 和 `/assets/avatars/default-female.svg`。
|
||||
|
||||
签到入口调用:
|
||||
|
||||
```http
|
||||
|
||||
Reference in New Issue
Block a user