优化结构

This commit is contained in:
Yvan
2026-08-28 00:29:40 +08:00
parent 04ff85116c
commit 03a4131f6e
118 changed files with 758 additions and 834 deletions
+23 -15
View File
@@ -179,24 +179,32 @@ func (r *versionRepo) BuildVersionBundle(ctx context.Context, menuIDs, apiIDs, d
}
return bundle, nil
}
func (r *versionRepo) ImportVersionBundle(ctx context.Context, b *system.VersionBundle) error {
db := r.data.DB().WithContext(ctx)
if len(b.Menus) > 0 {
if err := db.Transaction(func(tx *gorm.DB) error { return importVersionMenus(tx, b.Menus, 0) }); err != nil {
return &system.VersionStageError{Stage: system.VersionStageMenus, Err: err}
func (r *versionRepo) ImportVersionBundle(ctx context.Context, b *system.VersionBundle, audit *system.Version) error {
return r.data.DB().WithContext(ctx).Transaction(func(tx *gorm.DB) error {
if len(b.Menus) > 0 {
if err := importVersionMenus(tx, b.Menus, 0); err != nil {
return &system.VersionStageError{Stage: system.VersionStageMenus, Err: err}
}
}
}
if len(b.APIs) > 0 {
if err := db.Transaction(func(tx *gorm.DB) error { return importVersionAPIs(tx, b.APIs) }); err != nil {
return &system.VersionStageError{Stage: system.VersionStageAPIs, Err: err}
if len(b.APIs) > 0 {
if err := importVersionAPIs(tx, b.APIs); err != nil {
return &system.VersionStageError{Stage: system.VersionStageAPIs, Err: err}
}
}
}
if len(b.Dictionaries) > 0 {
if err := db.Transaction(func(tx *gorm.DB) error { return importVersionDictionaries(tx, b.Dictionaries) }); err != nil {
return &system.VersionStageError{Stage: system.VersionStageDictionaries, Err: err}
if len(b.Dictionaries) > 0 {
if err := importVersionDictionaries(tx, b.Dictionaries); err != nil {
return &system.VersionStageError{Stage: system.VersionStageDictionaries, Err: err}
}
}
}
return nil
if audit != nil {
po := versionPO{Name: audit.Name, Code: audit.Code, Description: audit.Description, Data: audit.Data}
if err := tx.Create(&po).Error; err != nil {
return &system.VersionStageError{Stage: system.VersionStageSave, Err: err}
}
audit.ID = po.ID
}
return nil
})
}
func importVersionMenus(tx *gorm.DB, items []*system.Menu, parentID uint) error {