feat(version): 桌面端更新面板支持指定版本安装
- 新增公开接口 GET /api/version/list(最近 50 条,字段口径同管理端列表), 桌面端下拉不再拼 OSS 地址(版本包被删后拼地址会 404) - 更新面板(登录页 + 首页)加「指定版本更新」选择器:默认选中最新版, 可选全部已发布版本(含回退),回退/同版给出明确文案与二次确认 - 客户端无需发版:do_update_app(file_url) 本就接受任意版本包直链
This commit is contained in:
@@ -43,15 +43,30 @@
|
||||
|
||||
目标逻辑:Java `SoftwareVersionService.latestSoftwareVersion` 使用同一张表和同一次序规则。
|
||||
|
||||
### GET `/api/version/list`(2026-09-14 新增,非旧接口)
|
||||
|
||||
桌面端更新面板「指定版本更新」下拉的数据源:该功能允许用户显式安装某个历史版本(含回退),
|
||||
列表由服务端给全,前端不拼 OSS 地址(拼地址在版本被删除后会 404)。
|
||||
|
||||
- 匿名可达(与 `/latest` 同族,未登录也能用;登录页更新面板即匿名态)。
|
||||
- 按 `created_at DESC, id DESC` 返回最近 `PublicVersionLookup.DEFAULT_LIST_LIMIT`(50)条,
|
||||
上限 `MAX_LIST_LIMIT`(200);不作为则沿用旧 `version/file_url` 字段名。
|
||||
- 响应 `{"items":[{"id","version","file_url","created_at"}]}`,字段口径与管理端
|
||||
`/api/admin/versions` 一致(同一套前端解析);空表返回 `{"items":[]}`。
|
||||
- 同一版本的重复上传记录由前端按版本号去重(保留最新一条),后端不做折叠。
|
||||
|
||||
## 内部结构
|
||||
|
||||
```text
|
||||
PublicVersionController
|
||||
├── currentVersion()
|
||||
│ └── 应用版本配置
|
||||
└── latestVersion()
|
||||
└── SoftwareVersionService.latestSoftwareVersion()
|
||||
└── SoftwareVersionMapper → web_config
|
||||
├── latestVersion()
|
||||
│ └── SoftwareVersionService.latestSoftwareVersion()
|
||||
│ └── SoftwareVersionMapper → web_config
|
||||
└── listVersions()
|
||||
└── SoftwareVersionService.listPublicSoftwareVersions()
|
||||
└── SoftwareVersionMapper → web_config(LIMIT,字段口径同管理端列表)
|
||||
```
|
||||
|
||||
## 类型映射
|
||||
|
||||
Reference in New Issue
Block a user