优化结构
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user