|
|
@ -50,15 +50,37 @@ func UpdateBaseMenu(menu model.SysBaseMenu) (err error) { |
|
|
|
upDateMap["icon"] = menu.Icon |
|
|
|
upDateMap["sort"] = menu.Sort |
|
|
|
|
|
|
|
db := global.GVA_DB.Where("id = ?", menu.ID).Find(&oldMenu) |
|
|
|
if oldMenu.Name != menu.Name { |
|
|
|
if !errors.Is(global.GVA_DB.Where("id <> ? AND name = ?", menu.ID, menu.Name).First(&model.SysBaseMenu{}).Error, gorm.ErrRecordNotFound) { |
|
|
|
global.GVA_LOG.Debug("存在相同name修改失败") |
|
|
|
return errors.New("存在相同name修改失败") |
|
|
|
err = global.GVA_DB.Transaction(func(tx *gorm.DB) error { |
|
|
|
db := tx.Where("id = ?", menu.ID).Find(&oldMenu) |
|
|
|
if oldMenu.Name != menu.Name { |
|
|
|
if !errors.Is(tx.Where("id <> ? AND name = ?", menu.ID, menu.Name).First(&model.SysBaseMenu{}).Error, gorm.ErrRecordNotFound) { |
|
|
|
global.GVA_LOG.Debug("存在相同name修改失败") |
|
|
|
return errors.New("存在相同name修改失败") |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
err = global.GVA_DB.Delete(&model.SysBaseMenuParameter{}, "sys_base_menu_id = ?", menu.ID).Error |
|
|
|
err = db.Updates(upDateMap).Error |
|
|
|
err = tx.Delete(&model.SysBaseMenuParameter{}, "sys_base_menu_id = ?", menu.ID).Error |
|
|
|
if err != nil { |
|
|
|
global.GVA_LOG.Debug(err.Error()) |
|
|
|
return err |
|
|
|
} |
|
|
|
if len(menu.Parameters) > 0 { |
|
|
|
for k, _ := range menu.Parameters { |
|
|
|
menu.Parameters[k].SysBaseMenuID = menu.ID |
|
|
|
} |
|
|
|
err = tx.Create(&menu.Parameters).Error |
|
|
|
if err != nil { |
|
|
|
global.GVA_LOG.Debug(err.Error()) |
|
|
|
return err |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
err = db.Updates(upDateMap).Error |
|
|
|
if err != nil { |
|
|
|
global.GVA_LOG.Debug(err.Error()) |
|
|
|
return err |
|
|
|
} |
|
|
|
return nil |
|
|
|
}) |
|
|
|
return err |
|
|
|
} |
|
|
|
|
|
|
|