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
}
// 同时查询所有版本(包括已失效的,用于匹配客户端版本号
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
}
}