lty/docs/功能清单与开发状态.md
pmc bd95ba470c feat: update admin panel, API modules, and add migrations
- Update food, outfits, props, home-decor pages and components
- Add permissions page and sidebar updates
- Update API client and all API modules (auth, food, dances, etc.)
- Add card model migrations for optional fields
- Update Django views, serializers, and authentication
- Add affinity level migrations and user app updates
- Add project documentation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 13:06:50 +08:00

341 lines
14 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 洛天依管理系统 - 功能清单与开发状态
> 生成时间2026-03-19已通过 API 实测验证)
---
## 一、整体架构
| 组件 | 技术栈 | 路径 |
|------|--------|------|
| 后端 API | Django + DRF + Channels + Daphne | `qy_lty/` |
| 管理后台前端 | Next.js 15 + React 19 + Tailwind + shadcn/ui | `qy-lty-admin/` |
| 数据库 | PostgreSQL阿里云 RDS | 远程 |
| 缓存/消息 | Redis阿里云 | 远程 |
---
## 二、功能模块状态总览
| 模块 | 前端页面 | 后端 API | 前后端对接 | 后端实测数据 | 状态 |
|------|----------|----------|------------|-------------|------|
| 邮箱登录 | ✅ | ✅ | ✅ 已对接 | ✅ 返回 token | ✅ 完成 |
| 手机登录 | ✅ UI | ✅ 已验证 | ❌ 未对接 | ✅ 接口可用 | ⚠️ 待对接 |
| 注册 | ✅ UI | ✅ 已验证 | ❌ 未对接 | ✅ 接口可用(返回参数校验) | ⚠️ 待对接 |
| 忘记密码 | ✅ UI | ✅ 已验证 | ❌ 未对接 | ✅ 接口可用 | ⚠️ 待对接 |
| 仪表盘 | ✅ UI | ❌ 无统计接口 | ❌ 硬编码数据 | — | ⚠️ 待开发 |
| 用户管理 | ✅ | ✅ | ✅ 已对接 | ✅ 5 条数据 | ✅ 完成 |
| 歌曲管理 | ✅ | ✅ | ✅ 已对接 | ✅ 9 条数据 | ✅ 完成 |
| 舞蹈管理 | ✅ UI | ✅ 已验证 | ❌ 前端用 mock | ✅ 5 条数据 | ⚠️ 待对接 |
| 服装管理 | ✅ UI | ✅ 已验证 | ❌ 前端用 mock | ✅ 11 条数据 | ⚠️ 待对接 |
| 道具管理 | ✅ UI | ✅ 已验证 | ❌ 前端用 mock | ✅ 3 条数据 | ⚠️ 待对接 |
| 家居装饰 | ✅ UI | ✅ 已验证 | ❌ 前端用 mock | ✅ 6 条数据 | ⚠️ 待对接 |
| 食物管理 | ✅ | ✅ | ✅ 已对接 | ✅ 5 条数据 | ✅ 完成 |
| 成就系统 | ✅ UI | ✅ 已验证 | ❌ 前端用 mock | ✅ 13 条数据 | ⚠️ 待对接 |
| 好感度 | ✅ UI | ✅ 已验证 | ❌ 前端用 mock | ✅ 接口可用(暂无数据) | ⚠️ 待对接 |
| AI 模型管理 | ✅ UI | ✅ 已验证 | ❌ 前端纯展示 | ✅ 1 个 Bot | ⚠️ 待对接 |
| 权限管理 | ✅ UI | ✅ 已验证 | ❌ 前端用 mock | ✅ 接口可用(暂无数据) | ⚠️ 待对接 |
| 系统设置 | ✅ UI | ❌ 无接口 | ❌ 无持久化 | — | ❌ 待开发 |
| 设备管理 | ❌ 无页面 | ✅ 已验证 | ❌ | ✅ 2 类型/20 设备 | ❌ 前端待开发 |
| 订阅管理 | ❌ 无页面 | ⚠️ 有模型无接口 | ❌ | — | ❌ 待开发 |
| 工作流 | ❌ 无页面 | ❌ 空模块 | ❌ | — | ❌ 待开发 |
---
## 三、已完成功能详细说明
### 1. 邮箱登录(✅ 完成)
- **前端**`/login` 页面,邮箱 + 密码表单
- **后端**`POST /api/v1/admin/login/` → 返回 token
- **使用方式**:输入邮箱和密码,登录后 token 自动存储到 localStorage 和 Cookie
- **测试账号**:邮箱 `111111@qq.com`,密码 `111111`
### 2. 用户管理(✅ 完成)
- **前端**`/users` 页面,完整 CRUD
- **后端**`/api/user/` ViewSet
- **功能**
- 用户列表(分页、搜索)
- 新增用户
- 编辑用户信息
- 删除用户
- 切换用户状态(启用/禁用)
### 3. 歌曲管理(✅ 完成)
- **前端**`/songs` 列表页 + `/songs/[id]` 详情页
- **后端**`/api/card/category/song/` + `/api/card/templates/`
- **功能**
- 歌曲列表(分页、搜索)
- 新增/编辑歌曲(含音频上传)
- 发布/取消发布
- 批次生成与管理
- 音频播放器(播放/暂停/音量控制)
### 4. 食物管理(✅ 完成)
- **前端**`/food` 列表页 + `/food/[id]` 详情页
- **后端**`/api/food/foods/`
- **功能**
- 食物列表(分页、搜索、分类筛选)
- 新增/编辑/删除食物
- 食物分类和稀有度管理
- 使用记录查看
---
## 四、待对接功能(前后端都有,需要连接)
以下模块前端 UI 已完成,后端 API 已存在,但前端页面使用的是 mock 硬编码数据,需要替换为真实 API 调用。
### 5. 舞蹈管理(⚠️ 待对接)
- **前端**`/dances` 页面,使用 `initialDances` 硬编码 5 条数据
- **后端 API**
- `GET /api/card/category/dance/` — 舞蹈列表
- `POST /api/card/templates/` — 创建
- `PATCH /api/card/templates/{id}/` — 更新
- `DELETE /api/card/templates/{id}/` — 删除
- **前端 API 模块**`lib/api/dances.ts` 已写好,页面未调用
- **工作量**:将页面中 mock 数据替换为 API 调用即可
### 6. 服装管理(⚠️ 待对接)
- **前端**`/outfits` 页面,内联硬编码数据
- **后端 API**`/api/card/category/clothing/` + `/api/card/templates/`
- **前端 API 模块**`lib/api/outfits.ts` 已写好
- **工作量**页面重构程度较大CRUD 交互不完整
### 7. 道具管理(⚠️ 待对接)
- **前端**`/props` 页面,使用 `initialProps` 硬编码数据
- **后端 API**`/api/card/category/prop/` + `/api/card/templates/`
- **前端 API 模块**`lib/api/props.ts` 已写好
- **工作量**:与舞蹈管理类似,替换 mock 数据
### 8. 家居装饰(⚠️ 待对接)
- **前端**`/home-decor` 页面,使用 `initialDecors` 硬编码数据
- **后端 API**`/api/card/category/decoration/` + `/api/card/templates/`
- **前端 API 模块**`lib/api/home-decor.ts` 已写好
- **工作量**:与舞蹈管理类似,替换 mock 数据
### 9. 成就系统(⚠️ 待对接)
- **前端**`/achievements` 页面,使用 `mockData` 硬编码 10 条数据
- **后端 API**
- `GET /api/achievement/achievements/` — 列表
- `POST /api/achievement/achievements/` — 创建
- `PATCH /api/achievement/achievements/{id}/` — 更新
- `DELETE /api/achievement/achievements/{id}/` — 删除
- **前端 API 模块**`lib/api/achievements.ts` 已写好
- **工作量**:替换 mock 数据 + 对齐数据结构
### 10. 好感度系统(⚠️ 待对接)
- **前端**`/affinity` 页面,使用 `initialRules``initialLevels` 硬编码
- **后端 API**
- `/api/user/affinity-rules/` — 好感度规则 CRUD
- `/api/user/affinity-levels/` — 好感度等级 CRUD
- **前端 API 模块**`lib/api/affinity.ts` 已写好
- **工作量**:替换 mock 数据
### 11. AI 模型管理(⚠️ 待对接)
- **前端**`/ai-model` 页面,纯展示页面(框架/微调/语音/知识库 tab
- **后端 API**
- `GET/POST/PATCH/DELETE /api/ai/bots/` — Bot CRUD
- **前端 API 模块**`lib/api/ai-models.ts` 已写好
- **工作量**:需要将展示页改为管理页,添加 CRUD 交互
### 12. 权限管理(⚠️ 待对接)
- **前端**`/permissions` 页面,使用 `initialRoles` 硬编码 5 个角色
- **后端 API**`/api/user/groups/` — Django Group CRUD
- **前端 API 模块**`lib/api/roles.ts` 已写好
- **工作量**:替换 mock 数据,权限矩阵需与后端权限体系对齐
### 13. 手机登录 / 注册 / 忘记密码(⚠️ 待对接)
- **前端**UI 表单已完成,但使用 `setTimeout` 模拟请求
- **后端**
- 手机登录:`POST /api/user/auth/phone/login/`
- 发送验证码:`POST /api/user/auth/phone/verify/`
- 注册:`POST /api/user/auth/register/`
- 重置密码:`POST /api/user/auth/password/reset/`
- **工作量**:前端对接后端已有接口
---
## 五、待开发功能(缺前端或缺后端)
### 14. 仪表盘数据(❌ 待开发)
- **现状**:前端 `/` 页面显示硬编码统计数据12,345 用户、5,732 活跃等)
- **需要**:后端开发统计聚合接口,前端对接
- **建议接口**
- `GET /api/v1/admin/dashboard/stats/` — 用户统计、卡片统计等
### 15. 系统设置(❌ 待开发)
- **现状**:前端 `/settings` 页面有基本/数据库/安全/通知 4 个 tab但无持久化
- **需要**:后端设计系统配置模型和接口
- **工作量**:前后端都需要开发
### 16. 设备管理(❌ 前端待开发)
- **后端已有完整 API**
- `/api/device/device-types/` — 设备类型 CRUD
- `/api/device/device-batches/` — 设备批次 CRUD
- `/api/device/devices/` — 设备 CRUD含批量创建
- `/api/device/user-devices/` — 用户设备绑定
- `/api/device/messages/` — 消息管理
- WebSocket`ws://domain/ws/device/{user_id}/`
- **需要**:开发前端管理页面
### 17. 订阅管理(❌ 前后端待开发)
- **现状**后端有模型定义SubscriptionPlan、Subscription、AddOnPackage 等),但无 API 接口
- **需要**:后端开发 API + 前端开发页面
### 18. 工作流系统(❌ 前后端待开发)
- **现状**:后端 `workflow_app` 为空模块,无模型无接口
- **需要**:完整设计和开发
### 19. 阿里云 VI视觉智能❌ 已禁用)
- **现状**:后端 `ali_vi_app` 有人脸相关接口,但在主 urls.py 中已注释禁用
- **接口**:人脸模板、人脸合成、美颜、美妆等
- **状态**:暂不需要管理后台
---
## 六、后端 API 完整清单
### 用户模块 `/api/user/`
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/` | 用户列表 |
| POST | `/` | 创建用户 |
| GET/PUT/PATCH/DELETE | `/{id}/` | 用户详情/更新/删除 |
| GET | `/info/` | 当前用户信息 |
| PUT/PATCH | `/update_profile/` | 更新个人资料 |
| POST | `/bind_phone/` | 绑定手机号 |
| GET/POST | `/groups/` | 角色列表/创建 |
| GET/PUT/DELETE | `/groups/{id}/` | 角色详情/更新/删除 |
| GET/POST | `/affinity-rules/` | 好感度规则列表/创建 |
| GET/PUT/DELETE | `/affinity-rules/{id}/` | 规则详情/更新/删除 |
| GET/POST | `/affinity-levels/` | 好感度等级列表/创建 |
| GET/PUT/DELETE | `/affinity-levels/{id}/` | 等级详情/更新/删除 |
### 认证模块 `/api/user/auth/`
| 方法 | 路径 | 说明 |
|------|------|------|
| POST | `/login/` | 用户名密码登录 |
| POST | `/logout/` | 登出 |
| POST | `/register/` | 注册 |
| POST | `/email/login/` | 邮箱登录 |
| POST | `/phone/login/` | 手机号登录 |
| POST | `/phone/verify/` | 发送验证码 |
| POST | `/username/login/` | 用户名登录 |
| POST | `/mac/login/` | MAC 地址登录 |
| POST | `/password/reset/` | 重置密码 |
### 管理员模块 `/api/v1/admin/`
| 方法 | 路径 | 说明 |
|------|------|------|
| POST | `/login/` | 管理员邮箱登录 |
| POST | `/logout/` | 管理员登出 |
### AI 模块 `/api/ai/`
| 方法 | 路径 | 说明 |
|------|------|------|
| GET/POST | `/bots/` | Bot 列表/创建 |
| GET/PUT/DELETE | `/bots/{id}/` | Bot 详情/更新/删除 |
| POST | `/chat/{bot_id}/` | 单轮对话 |
| POST | `/multichat/` | 多轮对话 |
### 卡片模块 `/api/card/`
| 方法 | 路径 | 说明 |
|------|------|------|
| GET/POST | `/templates/` | 模板列表/创建 |
| GET/PUT/DELETE | `/templates/{id}/` | 模板详情/更新/删除 |
| POST | `/templates/{id}/publish/` | 发布模板 |
| POST | `/templates/{id}/archive/` | 归档模板 |
| GET/POST | `/cards/` | 卡片列表/创建 |
| POST | `/cards/scan/` | 扫描卡片(需认证) |
| POST | `/cards/scan_public/` | 扫描卡片(公开) |
| POST | `/cards/use/` | 使用卡片 |
| GET/POST | `/batches/` | 批次列表/创建 |
| POST | `/batches/generate/` | 批量生成卡片 |
| GET | `/batches/{id}/export/` | 导出批次 |
| POST | `/batches/{id}/mark_produced/` | 标记生产完成 |
| POST | `/batches/{id}/publish/` | 发布批次 |
| GET | `/category/{category}/` | 按分类查询模板 |
| GET | `/user/cards/` | 用户卡片列表 |
### 食物模块 `/api/food/`
| 方法 | 路径 | 说明 |
|------|------|------|
| GET/POST | `/foods/` | 食物列表/创建 |
| GET/PUT/PATCH/DELETE | `/foods/{id}/` | 食物详情/更新/删除 |
| GET | `/foods/categories/` | 食物分类信息 |
| POST | `/use-food/` | 使用食物 |
| GET | `/my-foods/` | 我的食物 |
| GET | `/user-foods/` | 用户食物列表 |
| GET | `/food-stats/` | 食物统计 |
| GET | `/usage-logs/` | 使用记录 |
### 成就模块 `/api/achievement/`
| 方法 | 路径 | 说明 |
|------|------|------|
| GET/POST | `/achievements/` | 成就列表/创建 |
| GET/PUT/DELETE | `/achievements/{id}/` | 成就详情/更新/删除 |
| GET | `/achievements/{id}/check_achievement/` | 检查成就 |
| GET/POST | `/user-achievements/` | 用户成就列表/授予 |
| POST | `/user-achievements/check_and_grant/` | 检查并授予 |
| GET | `/user-achievements/stats/` | 成就统计 |
### 设备模块 `/api/device/`
| 方法 | 路径 | 说明 |
|------|------|------|
| CRUD | `/device-types/` | 设备类型管理 |
| CRUD | `/device-batches/` | 设备批次管理 |
| CRUD | `/devices/` | 设备管理 |
| POST | `/devices/batch_create/` | 批量创建设备 |
| CRUD | `/user-devices/` | 用户设备绑定 |
| GET | `/messages/` | 消息列表 |
| POST | `/rtc-token/` | 获取 RTC Token |
| POST | `/send_message_to_user/{user_id}/` | WebSocket 发消息 |
### 通用 `/api/common/`
| 方法 | 路径 | 说明 |
|------|------|------|
| POST | `/upload/` | 文件上传 |
---
## 七、开发优先级建议
### 高优先级API 已有,仅需前端对接)
1. **舞蹈管理** — 前端 API 模块已写好,替换 mock 数据即可
2. **道具管理** — 同上
3. **家居装饰** — 同上
4. **成就系统** — 同上
5. **好感度系统** — 同上
6. **权限管理** — 同上
7. **手机登录/注册/忘记密码** — 前端 UI 已有,对接后端接口
### 中优先级(需要一定开发量)
8. **服装管理** — 前端页面结构需调整
9. **AI 模型管理** — 需要从展示页改为管理页
10. **仪表盘** — 需要后端开发统计接口
11. **设备管理** — 后端完整,需要开发前端页面
### 低优先级(需要较大开发量)
12. **系统设置** — 前后端都需要开发
13. **订阅管理** — 后端需要暴露 API前端需要开发页面
14. **工作流系统** — 完全空白,需要完整设计