fix: 版本检测统一查询所有版本(含已失效)用于匹配和计算最新版本

This commit is contained in:
Trae AI
2026-06-21 16:38:58 +08:00
parent 47660cf7f8
commit f1f7181a77
+6 -17
View File
@@ -62,9 +62,9 @@ func handleAppCheckUpdate(c *gin.Context) {
return return
} }
// 查询该应用的所有已发布版本,按ID降序(创建顺序) // 查询该应用的所有版本(包括已失效的),按ID降序(创建顺序)
var allVersions []model.Version var allVersions []model.Version
if err := database.DB.Where("application_id = ? AND publish_status = ?", app.ID, "published"). if err := database.DB.Where("application_id = ?", app.ID).
Order("id DESC"). Order("id DESC").
Preload("Files"). Preload("Files").
Find(&allVersions).Error; err != nil { Find(&allVersions).Error; err != nil {
@@ -72,17 +72,6 @@ func handleAppCheckUpdate(c *gin.Context) {
return return
} }
// 同时查询所有版本(包括已失效的),用于匹配客户端版本号
var allVersionsIncludingExpired []model.Version
if clientVersion != "" {
if err := database.DB.Where("application_id = ?", app.ID).
Order("id DESC").
Find(&allVersionsIncludingExpired).Error; err != nil {
response.Error(c, 500, "获取版本列表失败")
return
}
}
// 没有任何版本 // 没有任何版本
if len(allVersions) == 0 { if len(allVersions) == 0 {
response.Success(c, gin.H{ response.Success(c, gin.H{
@@ -161,11 +150,11 @@ func handleAppCheckUpdate(c *gin.Context) {
clientVersionClean := cleanVersion(clientVersion) clientVersionClean := cleanVersion(clientVersion)
// 找到客户端当前版本对应的版本记录(包含已失效版本) // 找到客户端当前版本对应的版本记录
var clientVersionRecord *model.Version var clientVersionRecord *model.Version
for i := range allVersionsIncludingExpired { for i := range allVersions {
if cleanVersion(allVersionsIncludingExpired[i].Version) == clientVersionClean { if cleanVersion(allVersions[i].Version) == clientVersionClean {
clientVersionRecord = &allVersionsIncludingExpired[i] clientVersionRecord = &allVersions[i]
break break
} }
} }