public async Task <MessageModel <string> > Put([FromBody] sysUserInfo sysUserInfo) { // 这里也要做后期处理,会有用户个人中心的业务 var data = new MessageModel <string>(); if (sysUserInfo != null && sysUserInfo.uID > 0) { if (sysUserInfo.RID > 0) { var usrerole = await _userRoleServices.Query(d => d.UserId == sysUserInfo.uID && d.RoleId == sysUserInfo.RID); if (usrerole.Count == 0) { await _userRoleServices.Add(new UserRole(sysUserInfo.uID, sysUserInfo.RID)); } } data.success = await _sysUserInfoServices.Update(sysUserInfo); if (data.success) { data.msg = "更新成功"; data.response = sysUserInfo?.uID.ObjToString(); } } return(data); }
public async Task <MessageModel <string> > Put([FromBody] SysUserInfoDto sysUserInfo) { // 这里使用事务处理 var data = new MessageModel <string>(); try { _unitOfWork.BeginTran(); if (sysUserInfo != null && sysUserInfo.uID > 0) { // 无论 Update Or Add , 先删除当前用户的全部 U_R 关系 var usreroles = (await _userRoleServices.Query(d => d.UserId == sysUserInfo.uID)).Select(d => d.Id.ToString()).ToArray(); if (usreroles.Any()) { var isAllDeleted = await _userRoleServices.DeleteByIds(usreroles); if (!isAllDeleted) { return(Failed("服务器更新异常")); } } // 然后再执行添加操作 if (sysUserInfo.RIDs.Count > 0) { var userRolsAdd = new List <UserRole>(); sysUserInfo.RIDs.ForEach(rid => { userRolsAdd.Add(new UserRole(sysUserInfo.uID, rid)); }); await _userRoleServices.Add(userRolsAdd); } data.success = await _sysUserInfoServices.Update(_mapper.Map <SysUserInfo>(sysUserInfo)); _unitOfWork.CommitTran(); if (data.success) { data.msg = "更新成功"; data.response = sysUserInfo?.uID.ObjToString(); } } } catch (Exception e) { _unitOfWork.RollbackTran(); _logger.LogError(e, e.Message); } return(data); }