fix: 编辑补丁版本时重新合并生成全量包

当编辑版本并更新文件时,如果是补丁包类型,需要重新与基础全量包合并生成新的全量包

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-06-02 00:02:28 +08:00
parent b86fc60741
commit 026581ea60
+31
View File
@@ -511,6 +511,37 @@ func handleUpdateVersionGlobal(c *gin.Context) {
log.Printf("[INFO] Removed old file: %s\n", oldFilePath)
}
}
// 如果是补丁包,需要重新合并生成全量包
updateType := version.UpdateType
if req.UpdateType != "" {
updateType = req.UpdateType
}
if updateType == "patch" && version.BaseVersionID != nil {
var baseVersion model.Version
if err := database.DB.First(&baseVersion, *version.BaseVersionID).Error; err == nil {
baseFullPackagePath := baseVersion.FullPackagePath
if baseFullPackagePath == "" {
baseFullPackagePath = baseVersion.FilePath
}
fullPkgPath, fullPkgSize, fullPkgHash, err := MergePatchWithFullPackage(
baseFullPackagePath,
req.FilePath,
version.ApplicationID,
)
if err != nil {
log.Printf("[ERROR] Failed to merge patch with full package: %v\n", err)
response.Error(c, 500, "合并补丁包失败: "+err.Error())
return
}
updates["full_package_path"] = fullPkgPath
updates["full_package_size"] = fullPkgSize
updates["full_package_hash"] = fullPkgHash
log.Printf("[INFO] Updated full package: %s, size: %d\n", fullPkgPath, fullPkgSize)
}
}
}
if len(updates) == 0 {