fix: 版本匹配只从published和superseded状态中查找,排除draft和deprecated
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user