fix: 编辑补丁版本时重新合并生成全量包
当编辑版本并更新文件时,如果是补丁包类型,需要重新与基础全量包合并生成新的全量包 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -511,6 +511,37 @@ func handleUpdateVersionGlobal(c *gin.Context) {
|
|||||||
log.Printf("[INFO] Removed old file: %s\n", oldFilePath)
|
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 {
|
if len(updates) == 0 {
|
||||||
|
|||||||
Reference in New Issue
Block a user