Skip to content

Commit e898695

Browse files
committed
Merge branch 'gva_gormv2_dev' of https://github.com/flipped-aurora/gin-vue-admin into gva_gormv2_dev
2 parents 79319e0 + e851167 commit e898695

File tree

1 file changed

+30
-8
lines changed

1 file changed

+30
-8
lines changed

server/service/sys_base_menu.go

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,37 @@ func UpdateBaseMenu(menu model.SysBaseMenu) (err error) {
5050
upDateMap["icon"] = menu.Icon
5151
upDateMap["sort"] = menu.Sort
5252

53-
db := global.GVA_DB.Where("id = ?", menu.ID).Find(&oldMenu)
54-
if oldMenu.Name != menu.Name {
55-
if !errors.Is(global.GVA_DB.Where("id <> ? AND name = ?", menu.ID, menu.Name).First(&model.SysBaseMenu{}).Error, gorm.ErrRecordNotFound) {
56-
global.GVA_LOG.Debug("存在相同name修改失败")
57-
return errors.New("存在相同name修改失败")
53+
err = global.GVA_DB.Transaction(func(tx *gorm.DB) error {
54+
db := tx.Where("id = ?", menu.ID).Find(&oldMenu)
55+
if oldMenu.Name != menu.Name {
56+
if !errors.Is(tx.Where("id <> ? AND name = ?", menu.ID, menu.Name).First(&model.SysBaseMenu{}).Error, gorm.ErrRecordNotFound) {
57+
global.GVA_LOG.Debug("存在相同name修改失败")
58+
return errors.New("存在相同name修改失败")
59+
}
5860
}
59-
}
60-
err = global.GVA_DB.Delete(&model.SysBaseMenuParameter{}, "sys_base_menu_id = ?", menu.ID).Error
61-
err = db.Updates(upDateMap).Error
61+
err = tx.Delete(&model.SysBaseMenuParameter{}, "sys_base_menu_id = ?", menu.ID).Error
62+
if err != nil {
63+
global.GVA_LOG.Debug(err.Error())
64+
return err
65+
}
66+
if len(menu.Parameters) > 0 {
67+
for k, _ := range menu.Parameters {
68+
menu.Parameters[k].SysBaseMenuID = menu.ID
69+
}
70+
err = tx.Create(&menu.Parameters).Error
71+
if err != nil {
72+
global.GVA_LOG.Debug(err.Error())
73+
return err
74+
}
75+
}
76+
77+
err = db.Updates(upDateMap).Error
78+
if err != nil {
79+
global.GVA_LOG.Debug(err.Error())
80+
return err
81+
}
82+
return nil
83+
})
6284
return err
6385
}
6486

0 commit comments

Comments
 (0)