@@ -206,3 +206,43 @@
|
||||
- 风险与影响:
|
||||
- 影响范围限定在后台角色读取接口(`/api/v1/admin/roles*`)查询链路。
|
||||
- 对 legacy 表完整的数据库行为保持不变;仅在 `user_role` 缺失时触发 modern 回退逻辑。
|
||||
|
||||
## Work Log - 用户管理优化(编辑/检索/分页)(2026-05-01)
|
||||
|
||||
- 背景:
|
||||
- Issue `FL-121` 要求用户管理支持:用户信息修改、用户检索、用户表格分页。
|
||||
|
||||
- 本次改动(最小闭环):
|
||||
- 后端 `users` 列表接口增强(检索 + 分页参数联动):
|
||||
- 文件:`api/app/api/v1/users.py`
|
||||
- `GET /api/v1/users` 新增查询参数:
|
||||
- `keyword`:按 `user_id/email/username` 模糊检索
|
||||
- `status`:按启用/禁用状态过滤
|
||||
- 后端用户服务增强:
|
||||
- 文件:`api/app/services/user_service.py`
|
||||
- `list_users(...)` 支持 `keyword/status` 条件查询并对 `total` 同步计数。
|
||||
- `update_user(...)` 支持修改 `email` 与 `username`:
|
||||
- 统一 trim/归一化
|
||||
- 重复值冲突校验
|
||||
- 空值保护
|
||||
- 用户更新请求模型补齐:
|
||||
- 文件:`api/app/schemas/user.py`
|
||||
- `UserUpdateRequest` 新增可选字段 `email`。
|
||||
- 前端用户管理页增强:
|
||||
- 文件:`web/src/app/admin/users/page.tsx`
|
||||
- 新增“用户检索”区:关键字输入 + 状态筛选 + 搜索/重置。
|
||||
- 用户列表请求改为受查询条件驱动(query key 包含分页/筛选参数)。
|
||||
- 表格接入分页器(页码、每页条数、总数联动后端)。
|
||||
- 新增“编辑用户”弹窗,支持修改邮箱/用户名/状态。
|
||||
- 编辑提交仅传变更字段,避免无效更新。
|
||||
|
||||
- 验证(未执行编译/构建,遵循当前任务约束):
|
||||
- 代码走读与关键路径自检:
|
||||
- `GET /api/v1/users` -> 支持 `limit/offset/keyword/status`。
|
||||
- `PATCH /api/v1/users/{id}` -> 支持 `email/username/status` 更新。
|
||||
- 前端列表查询参数与分页状态联动一致。
|
||||
|
||||
- 风险与影响:
|
||||
- 影响范围集中在用户管理模块(`/admin/users` 与 `/api/v1/users*`)。
|
||||
- 旧调用方不传 `keyword/status` 时行为保持兼容。
|
||||
- 更新失败错误提示文案仍共用“not found or email/username exists”,后续如需更精确错误码可再拆分。
|
||||
|
||||
Reference in New Issue
Block a user