diff --git a/backend/internal/router/app/info.go b/backend/internal/router/app/info.go index 272a738..e078c0e 100644 --- a/backend/internal/router/app/info.go +++ b/backend/internal/router/app/info.go @@ -72,12 +72,12 @@ func handleAppCheckUpdate(c *gin.Context) { return } - // 同时查询所有版本(包括已失效的),用于匹配客户端版本号 - var allVersions []model.Version + // 同时查询已发布和已失效的版本,用于匹配客户端版本号 + var matchableVersions []model.Version if clientVersion != "" { - if err := database.DB.Where("application_id = ?", app.ID). + if err := database.DB.Where("application_id = ? AND publish_status IN ?", app.ID, []string{"published", "superseded"}). Order("id DESC"). - Find(&allVersions).Error; err != nil { + Find(&matchableVersions).Error; err != nil { response.Error(c, 500, "获取版本列表失败") return } @@ -161,11 +161,11 @@ func handleAppCheckUpdate(c *gin.Context) { clientVersionClean := cleanVersion(clientVersion) - // 找到客户端当前版本对应的版本记录 + // 找到客户端当前版本对应的版本记录(从已发布和已失效版本中匹配) var clientVersionRecord *model.Version - for i := range allVersions { - if cleanVersion(allVersions[i].Version) == clientVersionClean { - clientVersionRecord = &allVersions[i] + for i := range matchableVersions { + if cleanVersion(matchableVersions[i].Version) == clientVersionClean { + clientVersionRecord = &matchableVersions[i] break } }