fix: 修复补丁包返回逻辑,download_url 应返回补丁包地址

- 当最新版本是补丁类型时,download_url 返回补丁包地址(FilePath)
- full_package_url 返回完整包地址作为备选
- 简化判断逻辑,不再根据客户端版本判断

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-03 03:50:41 +08:00
parent 8b887f432b
commit 62ea1da578
+14 -34
View File
@@ -205,45 +205,25 @@ func handleAppCheckUpdate(c *gin.Context) {
var fullPackageHash string var fullPackageHash string
var isPatchUpdate bool var isPatchUpdate bool
// 保存完整包地址(如果有)
if latestVersion.FullPackagePath != "" {
fullPackageURL = latestVersion.FullPackagePath
fullPackageSize = latestVersion.FullPackageSize
fullPackageHash = latestVersion.FullPackageHash
}
if latestVersion.UpdateType == "patch" && latestVersion.BaseVersionID != nil { if latestVersion.UpdateType == "patch" && latestVersion.BaseVersionID != nil {
// 最新版本是补丁类型 // 最新版本是补丁类型
// 检查客户端版本是否是基础版本 // download_url 返回补丁包地址,full_package_url 返回完整包地址
if clientVersionRecord.ID == *latestVersion.BaseVersionID { downloadURL = latestVersion.FilePath
// 客户端是基础版本,可以下载补丁包 downloadSize = latestVersion.FileSize
downloadURL = latestVersion.FilePath downloadHash = latestVersion.FileHash
downloadSize = latestVersion.FileSize isPatchUpdate = true
downloadHash = latestVersion.FileHash } else {
isPatchUpdate = true // 全量版本,download_url 返回文件路径
} else {
// 客户端不是基础版本,需要下载完整包
if latestVersion.FullPackagePath != "" {
downloadURL = latestVersion.FullPackagePath
downloadSize = latestVersion.FullPackageSize
downloadHash = latestVersion.FullPackageHash
} else {
// 没有完整包,使用补丁包(可能合并失败)
downloadURL = latestVersion.FilePath
downloadSize = latestVersion.FileSize
downloadHash = latestVersion.FileHash
}
}
// 保存完整包地址作为备选
if latestVersion.FullPackagePath != "" {
fullPackageURL = latestVersion.FullPackagePath
fullPackageSize = latestVersion.FullPackageSize
fullPackageHash = latestVersion.FullPackageHash
}
} else {
// 全量版本,直接使用文件路径
downloadURL = latestVersion.FilePath downloadURL = latestVersion.FilePath
downloadSize = latestVersion.FileSize downloadSize = latestVersion.FileSize
downloadHash = latestVersion.FileHash downloadHash = latestVersion.FileHash
// 全量版本的完整包就是自己
if latestVersion.FullPackagePath != "" {
fullPackageURL = latestVersion.FullPackagePath
fullPackageSize = latestVersion.FullPackageSize
fullPackageHash = latestVersion.FullPackageHash
}
} }
// 自定义地址优先级最高(覆盖下载地址) // 自定义地址优先级最高(覆盖下载地址)