Browse Source

修复可能产生数据库锁死的事务错误

修复菜单参数无法修改的错误
main
pixel 4 years ago
parent
commit
22b0f33312
  1. 6
      server/model/sys_base_menu.go
  2. 24
      server/service/sys_base_menu.go

6
server/model/sys_base_menu.go

@ -29,7 +29,7 @@ type Meta struct {
type SysBaseMenuParameter struct { type SysBaseMenuParameter struct {
global.GVA_MODEL global.GVA_MODEL
SysBaseMenuID uint SysBaseMenuID uint
Type string `json:"type" gorm:"commit:'地址栏携带参数为params还是query'"`
Key string `json:"key" gorm:"commit:'地址栏携带参数的key'"`
Value string `json:"value" gorm:"commit:'地址栏携带参数的值'"`
Type string `json:"type" gorm:"comment:地址栏携带参数为params还是query"`
Key string `json:"key" gorm:"comment:地址栏携带参数的key"`
Value string `json:"value" gorm:"comment:地址栏携带参数的值"`
} }

24
server/service/sys_base_menu.go

@ -58,26 +58,26 @@ func UpdateBaseMenu(menu model.SysBaseMenu) (err error) {
return errors.New("存在相同name修改失败") return errors.New("存在相同name修改失败")
} }
} }
err = tx.Delete(&model.SysBaseMenuParameter{}, "sys_base_menu_id = ?", menu.ID).Error
if err != nil {
global.GVA_LOG.Debug(err.Error())
return err
txErr := tx.Unscoped().Delete(&model.SysBaseMenuParameter{}, "sys_base_menu_id = ?", menu.ID).Error
if txErr != nil {
global.GVA_LOG.Debug(txErr.Error())
return txErr
} }
if len(menu.Parameters) > 0 { if len(menu.Parameters) > 0 {
for k, _ := range menu.Parameters { for k, _ := range menu.Parameters {
menu.Parameters[k].SysBaseMenuID = menu.ID menu.Parameters[k].SysBaseMenuID = menu.ID
} }
err = tx.Create(&menu.Parameters).Error
if err != nil {
global.GVA_LOG.Debug(err.Error())
return err
txErr = tx.Create(&menu.Parameters).Error
if txErr != nil {
global.GVA_LOG.Debug(txErr.Error())
return txErr
} }
} }
err = db.Updates(upDateMap).Error
if err != nil {
global.GVA_LOG.Debug(err.Error())
return err
txErr = db.Updates(upDateMap).Error
if txErr != nil {
global.GVA_LOG.Debug(txErr.Error())
return txErr
} }
return nil return nil
}) })

Loading…
Cancel
Save