210 lines
6.0 KiB
Markdown
210 lines
6.0 KiB
Markdown
# 系统修复清单
|
||
|
||
> 目的:记录当前项目中需要优先修复的功能缺口、契约风险和稳定性问题,便于后续按优先级逐项整改。
|
||
|
||
## 一、优先级说明
|
||
|
||
- **P0**:会直接导致功能不可用、权限错误或数据异常的问题
|
||
- **P1**:会明显影响核心体验、稳定性或上线质量的问题
|
||
- **P2**:体验优化、容错增强、后续完善项
|
||
|
||
---
|
||
|
||
## 二、P0 级修复项
|
||
|
||
### 1. 修复 `/auth/refresh` 刷新令牌逻辑
|
||
|
||
**问题描述**
|
||
- 当前刷新接口存在明显实现问题,刷新后的 token 里 `user_id` 被写死为 `1`。
|
||
- 这会导致刷新出来的登录态不属于当前用户,存在权限串号风险。
|
||
|
||
**影响范围**
|
||
- 小程序登录态刷新
|
||
- 未来接入 token 自动续期时的安全性
|
||
|
||
**建议修复**
|
||
- 改为根据 refresh token 解析出真实用户身份。
|
||
- 增加 refresh token 有效性校验与失效处理。
|
||
- 若暂未完成完整刷新机制,先关闭前端对该接口的调用。
|
||
|
||
---
|
||
|
||
### 2. 统一登录态失效后的重试逻辑
|
||
|
||
**问题描述**
|
||
- 小程序 `request.js` 会在 401 时自动触发重新登录并重试。
|
||
- 若登录失败或后端持续返回 401,容易造成重复提示,部分场景下可能出现重试链路不清晰。
|
||
|
||
**影响范围**
|
||
- 所有依赖登录态的小程序页面
|
||
|
||
**建议修复**
|
||
- 明确区分:未登录、登录过期、登录失败、后端不可用。
|
||
- 对自动重试增加次数限制与失败兜底。
|
||
- 统一输出标准化错误对象,避免页面侧拿不到 `message`。
|
||
|
||
---
|
||
|
||
### 3. 修复匹配与用户信息返回结构的强依赖问题
|
||
|
||
**问题描述**
|
||
- 小程序“我的匹配”“候选推荐”等页面对后端返回结构依赖很强。
|
||
- 例如 `other_user`、`personality_tags`、`match_reasons` 等字段一旦为空或类型变化,前端容易展示异常。
|
||
|
||
**影响范围**
|
||
- 我的匹配
|
||
- 匹配候选
|
||
- 活动内匹配展示
|
||
|
||
**建议修复**
|
||
- 后端使用明确的 Pydantic schema,尽量不要直接返回裸 `dict`。
|
||
- 前端对数组、对象字段做空值保护。
|
||
- 对字符串/数组字段统一约定数据类型。
|
||
|
||
---
|
||
|
||
## 三、P1 级修复项
|
||
|
||
### 4. 增强活动列表、活动详情页的异常兜底
|
||
|
||
**问题描述**
|
||
- 活动列表和详情页依赖多个派生字段,例如:
|
||
- `is_registered`
|
||
- `can_register`
|
||
- `registered_male`
|
||
- `registered_female`
|
||
- `match_limit`
|
||
- `match_count`
|
||
- `match_remaining`
|
||
- 当前前端虽然能展示,但在字段缺失或数据异常时容错不足。
|
||
|
||
**建议修复**
|
||
- 后端保证这些字段稳定输出。
|
||
- 前端增加默认值与类型判断。
|
||
- 对报名状态、匹配状态增加更明确的空态文案。
|
||
|
||
---
|
||
|
||
### 5. 补强小程序首页与列表页的登录失败引导
|
||
|
||
**问题描述**
|
||
- 首页、活动页、匹配页在 `ensureLogin()` 失败后大多只是记录日志。
|
||
- 用户在后端不可用或微信登录失败时,容易看到空白内容,不知道下一步怎么做。
|
||
|
||
**建议修复**
|
||
- 在首页、活动页、匹配页增加统一错误态。
|
||
- 提示用户检查网络、后端地址、微信开发者工具配置等。
|
||
- 必要时提供“重试登录”按钮。
|
||
|
||
---
|
||
|
||
### 6. 规范后台与小程序的接口契约
|
||
|
||
**问题描述**
|
||
- 当前项目整体能跑通,但部分接口返回结构仍偏宽松。
|
||
- 管理端与小程序对同一业务对象的字段约定不够集中。
|
||
|
||
**建议修复**
|
||
- 为活动、公告、匹配、用户信息建立统一 schema。
|
||
- 后端输出固定字段名和固定类型。
|
||
- 前端禁止依赖未定义字段。
|
||
|
||
---
|
||
|
||
### 7. 提升公共配置能力的可用性
|
||
|
||
**问题描述**
|
||
- 小程序通过 `/auth/public-config` 获取 API 地址和客服微信号。
|
||
- 当前虽然有配置能力,但若后台未配置,就会回落到默认占位值。
|
||
|
||
**建议修复**
|
||
- 后台系统设置中明确标注必填项与默认值。
|
||
- 前端在缺少真实客服信息时,显示更友好的引导文案。
|
||
- 记录公共配置加载失败时的错误日志。
|
||
|
||
---
|
||
|
||
### 8. 完善后台管理端的权限与审计能力
|
||
|
||
**问题描述**
|
||
- 后台已有登录、活动、公告、审核、看板等入口。
|
||
- 但权限控制、操作审计、批量处理等能力仍偏基础。
|
||
|
||
**建议修复**
|
||
- 增加更细粒度的角色权限校验。
|
||
- 记录关键操作日志,如发布、删除、审核、修改系统配置。
|
||
- 为高风险操作增加二次确认。
|
||
|
||
---
|
||
|
||
## 四、P2 级修复项
|
||
|
||
### 9. 优化 AI 推荐与匹配体验
|
||
|
||
**问题描述**
|
||
- 当前 AI 推荐属于“可用但不够稳定”的状态。
|
||
- 当推荐结果为空时,用户体验一般。
|
||
|
||
**建议修复**
|
||
- 增加推荐为空时的解释文案。
|
||
- 支持缓存最近一次推荐结果。
|
||
- 增加推荐理由展示一致性。
|
||
|
||
---
|
||
|
||
### 10. 补充自动化测试
|
||
|
||
**问题描述**
|
||
- 目前缺少覆盖核心链路的自动化测试。
|
||
|
||
**建议修复**
|
||
- 后端增加接口测试:登录、活动列表、报名、匹配、后台管理。
|
||
- 前端补充关键页面的基础回归检查。
|
||
- 对高风险逻辑增加单元测试。
|
||
|
||
---
|
||
|
||
### 11. 增强文档与交付说明一致性
|
||
|
||
**问题描述**
|
||
- README、交付说明、后台使用说明等文档已存在,但在功能完成度上还可继续统一口径。
|
||
|
||
**建议修复**
|
||
- 标注哪些功能已完成、哪些是预留、哪些是待修复。
|
||
- 明确依赖外部配置的功能项。
|
||
- 给出上线前必检项。
|
||
|
||
---
|
||
|
||
## 五、建议修复顺序
|
||
|
||
### 第一阶段:先修 P0
|
||
1. 修复 `/auth/refresh` 逻辑
|
||
2. 统一 401 登录失效重试逻辑
|
||
3. 规范匹配数据返回结构
|
||
|
||
### 第二阶段:再修 P1
|
||
4. 增强活动页/详情页兜底
|
||
5. 补强登录失败引导
|
||
6. 统一接口契约
|
||
7. 完善公共配置
|
||
8. 强化后台权限与审计
|
||
|
||
### 第三阶段:最后修 P2
|
||
9. 优化 AI 推荐体验
|
||
10. 补自动化测试
|
||
11. 统一文档口径
|
||
|
||
---
|
||
|
||
## 六、补充说明
|
||
|
||
本清单面向当前代码状态,重点关注的是:
|
||
|
||
- 核心链路是否可用
|
||
- 接口契约是否稳定
|
||
- 异常场景是否有兜底
|
||
- 上线前是否存在明显风险
|
||
|
||
如果后续代码有更新,建议同步更新本清单,保持与真实系统状态一致。
|