docs: 补充规格文档(specs 01-15)
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
# 07 记录与版本中心
|
||||
|
||||
## 模块职责
|
||||
|
||||
覆盖历史生成记录、客户端软件版本和数字人版本。该模块必须区分“后台管理版本页面”和“客户端公开更新接口”,前者可重构,后者必须保持兼容。
|
||||
|
||||
覆盖页面:
|
||||
|
||||
- 历史记录:`history`
|
||||
- 软件版本:`version`
|
||||
- 数字人版本:`digital-human-version`
|
||||
|
||||
## 依赖关系
|
||||
|
||||
上游:菜单树、当前用户、分页/下载适配器。
|
||||
|
||||
后端:
|
||||
|
||||
- Java `ImageHistoryController`。
|
||||
- Java `SoftwareVersionAdminController`、`SoftwareVersionService`。
|
||||
- 数字人版本控制器和 `digitalhuman` 模块。
|
||||
|
||||
公开版本接口的详细契约见 `09-public-version-compatibility.md`。
|
||||
|
||||
## 核心接口:原实现 → 目标实现
|
||||
|
||||
| 功能 | 原实现 | 目标实现 |
|
||||
|---|---|---|
|
||||
| 历史记录 | `admin.js:loadHistory` + `panel-history` | `HistoryPage.vue` + 原 `/api/admin/history` |
|
||||
| 软件版本列表 | `admin.js:loadSoftwareVersions` + `/api/admin/versions` | `SoftwareVersionsPage.vue` |
|
||||
| 软件版本上传 | `admin.js` 上传 modal + `/api/admin/version` | Element Plus Upload/Dialog + 原接口 |
|
||||
| 数字人版本列表 | `admin.js:loadDigitalHumanVersions` | `DigitalHumanVersionsPage.vue` |
|
||||
| 数字人版本上传/发布 | 旧版本 modal 和按钮 | 页面局部表单,保持原数字人版本 API |
|
||||
| 客户端检查更新 | Flask `/api/version`、`/api/version/latest` | Java `PublicVersionController`,URL/字段完全不变 |
|
||||
|
||||
## 内部结构
|
||||
|
||||
```text
|
||||
RecordsCenter
|
||||
├── HistoryPage
|
||||
│ ├── HistoryFilterBar
|
||||
│ ├── HistoryTable
|
||||
│ └── ResultPreviewDrawer
|
||||
├── SoftwareVersionsPage
|
||||
│ ├── VersionTable
|
||||
│ └── SoftwareVersionUploadDialog
|
||||
└── DigitalHumanVersionsPage
|
||||
├── VersionTable
|
||||
├── UploadDialog
|
||||
└── Release/Latest actions
|
||||
```
|
||||
|
||||
## 类型映射
|
||||
|
||||
| 原字段 | 目标类型 |
|
||||
|---|---|
|
||||
| `type` | `HistoryRecordType` |
|
||||
| `result_preview` | `PreviewDescriptor`,限制长度和字段 |
|
||||
| `version` | `VersionString` |
|
||||
| `file_url` | `PublicDownloadUrl` |
|
||||
| `created_at` | `DisplayDateTime`,后端格式化或前端统一解析 |
|
||||
| 数字人状态 | `DigitalHumanVersionStatus` |
|
||||
|
||||
公开接口映射:
|
||||
|
||||
- `/api/version`:`version`、`desc`、`url`。
|
||||
- `/api/version/latest`:`version`、`file_url`。
|
||||
- 不把 `/api/admin/version` 的上传响应当成客户端公开版本响应。
|
||||
|
||||
## 迁移/实现注意事项
|
||||
|
||||
1. 软件版本管理页面调用 `/api/admin/versions` 和 `/api/admin/version`,客户端更新调用 `/api/version/latest`;二者不可混用。
|
||||
2. 最新版本判断沿用 `web_config.created_at DESC`,若同一时间并列,使用 id 倒序作为稳定次序。
|
||||
3. 上传成功后页面刷新列表,但不得改变公开接口的空值语义。
|
||||
4. 版本下载链接是公开客户端资源,页面展示时需要处理超长 URL,不把 URL 写入不必要的日志。
|
||||
5. 数字人版本与客户端软件版本是不同业务表和 API,不得合并 DTO。
|
||||
6. 历史记录预览要限制内容大小,避免大 JSON 直接阻塞页面。
|
||||
Reference in New Issue
Block a user