缺少事务可能出现数据不一致风险 (#1575)

Co-authored-by: zongqiang <zongq@rp-pet.cn>
This commit is contained in:
ZongQiang
2023-11-18 22:20:26 +08:00
committed by GitHub
parent aa6ca95f13
commit 5ef0e43312
4 changed files with 165 additions and 56 deletions

View File

@@ -148,13 +148,15 @@ func (userService *UserService) SetUserAuthorities(id uint, authorityIds []uint)
//@return: err error
func (userService *UserService) DeleteUser(id int) (err error) {
var user system.SysUser
err = global.GVA_DB.Where("id = ?", id).Delete(&user).Error
if err != nil {
return err
}
err = global.GVA_DB.Delete(&[]system.SysUserAuthority{}, "sys_user_id = ?", id).Error
return err
return global.GVA_DB.Transaction(func(tx *gorm.DB) error {
if err := tx.Where("id = ?", id).Delete(&system.SysUser{}).Error; err != nil {
return err
}
if err := tx.Delete(&[]system.SysUserAuthority{}, "sys_user_id = ?", id).Error; err != nil {
return err
}
return nil
})
}
//@author: [piexlmax](https://github.com/piexlmax)