diff --git a/src/service/system_user.go b/src/service/system_user.go index 7e74ef5b38f04b57e41f72ee9520c5b15639f28d..5a2295c3817f980dea71c1c032a19b2a5e99d9bb 100644 --- a/src/service/system_user.go +++ b/src/service/system_user.go @@ -218,10 +218,26 @@ func (o *User) OrgUpdateUser(id int, input request.UpdateOrgUserInput) error { UpdatedBy: o.User.Id, } - if _, err := db.Table("system_user").ID(id).Cols("logo,system_account,phone,state,name,update_by").Update(&userModel); err != nil { + s := db.NewSession() + s.Begin() + if _, err := s.Table("system_user").ID(id).Cols("logo,system_account,phone,state,name,update_by").Update(&userModel); err != nil { conf.Logger.Error("账号信息更新失败", zap.Error(err)) return resp.DbUpdateError.ErrorDetail(err) } + + if _, err := s.Table("system_user_role").Where("user_id = ?", id).Delete(); err != nil { + conf.Logger.Error("删除用户角色失败", zap.Error(err)) + return resp.DbInsertError.ErrorDetail(err) + } + var systemUserRoles []entity.SystemUserRole + for _, v := range input.SelectRole { + systemUserRoles = append(systemUserRoles, entity.SystemUserRole{UserId: id, RoleId: v}) + } + if _, err := s.Table("system_user_role").Insert(&systemUserRoles); err != nil { + conf.Logger.Error("创建用户角色失败", zap.Error(err)) + return resp.DbInsertError.ErrorDetail(err) + } + s.Commit() return nil }