fix: 版本匹配只从published和superseded状态中查找,排除draft和deprecated

This commit is contained in:
Trae AI
2026-06-21 17:48:06 +08:00
parent 2ae80d8114
commit 75d38a6972
+8 -8
View File
@@ -72,12 +72,12 @@ func handleAppCheckUpdate(c *gin.Context) {
return return
} }
// 同时查询所有版本(包括已失效的,用于匹配客户端版本号 // 同时查询已发布和已失效的版本,用于匹配客户端版本号
var allVersions []model.Version var matchableVersions []model.Version
if clientVersion != "" { 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"). Order("id DESC").
Find(&allVersions).Error; err != nil { Find(&matchableVersions).Error; err != nil {
response.Error(c, 500, "获取版本列表失败") response.Error(c, 500, "获取版本列表失败")
return return
} }
@@ -161,11 +161,11 @@ func handleAppCheckUpdate(c *gin.Context) {
clientVersionClean := cleanVersion(clientVersion) clientVersionClean := cleanVersion(clientVersion)
// 找到客户端当前版本对应的版本记录 // 找到客户端当前版本对应的版本记录(从已发布和已失效版本中匹配)
var clientVersionRecord *model.Version var clientVersionRecord *model.Version
for i := range allVersions { for i := range matchableVersions {
if cleanVersion(allVersions[i].Version) == clientVersionClean { if cleanVersion(matchableVersions[i].Version) == clientVersionClean {
clientVersionRecord = &allVersions[i] clientVersionRecord = &matchableVersions[i]
break break
} }
} }