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)
|
||||
}
|
||||
}
|
||||
|
||||
// 如果是补丁包,需要重新合并生成全量包
|
||||
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 {
|
||||
|
||||
Reference in New Issue
Block a user