- 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>
341 lines
14 KiB
Markdown
341 lines
14 KiB
Markdown
# 洛天依管理系统 - 功能清单与开发状态
|
||
|
||
> 生成时间: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. **工作流系统** — 完全空白,需要完整设计
|