fix: version display and comparison issues

- Remove duplicate 'v' prefix in version display
- Add version string cleanup (trim spaces, remove v/V prefix)
- Use custom download URL when set
- Fix has_update logic for same version comparison

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-28 16:53:46 +08:00
parent 53fd9ff7dc
commit 16c68a855b
2 changed files with 22 additions and 3 deletions
+18 -2
View File
@@ -1,6 +1,7 @@
package app
import (
"strings"
"verification-platform-backend/internal/database"
"verification-platform-backend/internal/model"
"verification-platform-backend/internal/service"
@@ -92,10 +93,19 @@ func handleAppCheckUpdate(c *gin.Context) {
return
}
// 清理版本号:去除空格和前缀 v/V
cleanVersion := func(v string) string {
v = strings.TrimSpace(v)
v = strings.TrimPrefix(v, "v")
v = strings.TrimPrefix(v, "V")
return v
}
clientVersionClean := cleanVersion(clientVersion)
// 找到客户端当前版本对应的版本记录
var clientVersionRecord *model.Version
for i := range allVersions {
if allVersions[i].Version == clientVersion {
if cleanVersion(allVersions[i].Version) == clientVersionClean {
clientVersionRecord = &allVersions[i]
break
}
@@ -171,12 +181,18 @@ func handleAppCheckUpdate(c *gin.Context) {
}
}
// 确定下载地址:优先使用自定义地址
downloadURL := latestVersion.FilePath
if latestVersion.CustomDownloadURL != "" {
downloadURL = latestVersion.CustomDownloadURL
}
// 构建返回结果
result := map[string]interface{}{
"has_update": true,
"current_version": clientVersion,
"latest_version": latestVersion.Version,
"download_url": latestVersion.FilePath,
"download_url": downloadURL,
"file_size": latestVersion.FileSize,
"file_hash": latestVersion.FileHash,
"entry_file": latestVersion.EntryFile,
@@ -29,7 +29,10 @@ export function getColumns(options: ColumnOptions, t: (key: string) => string):
accessorKey: 'version',
header: () => t('admin.versions.columns.version'),
cell: ({ row }) => {
return h('code', { class: 'text-sm bg-muted px-2 py-1 rounded' }, `v${row.original.version}`)
const version = row.original.version
// 如果版本号本身已经有 v 前缀,则不再添加
const displayVersion = version.startsWith('v') || version.startsWith('V') ? version : `v${version}`
return h('code', { class: 'text-sm bg-muted px-2 py-1 rounded' }, displayVersion)
},
},
{