public async Task <ResponseMessage> Save(Models.UserInfo user, [FromBody] UserSaveRequest request) { Logger.Trace($"用户{user?.UserName ?? ""}({user?.Id ?? ""})保存用户,请求参数为:\r\n" + (request != null ? JsonHelper.ToJson(request) : "")); var response = new ResponseMessage(); if (!ModelState.IsValid) { response.Code = ResponseCodeDefines.ModelStateInvalid; response.Message = ModelState.GetAllErrors(); Logger.Warn("保存用户模型验证失败:\r\n{0}", response.Message ?? ""); return(response); } try { response = await UserManager.Save(user, request, HttpContext.RequestAborted); } catch (Exception e) { Logger.Error($"保存用户,报错:{e.Message}\r\n{e.StackTrace}"); response.Code = ResponseCodeDefines.ServiceError; response.Message = e.Message; return(response); } return(response); }
public UserSaveResponse Execute(UserSaveRequest request) { UserSaveResponse userSaveResponse = new UserSaveResponse(); if (request.UserId == 0) { UserInfo entity = new UserInfo(); entity.Name = request.Name; entity.Password = request.Password; entity.RoleId = request.RoleId; entity.UserName = request.UserName; entity.Gender = request.Gender; entity.CreateTime = DateTime.Now; entity.CraftDIDs = request.CraftDIDs; ServiceHelper.LoadService <IUserService>().Insert(entity); userSaveResponse.UserId = entity.UserId; } else { UserInfo entity = ServiceHelper.LoadService <IUserService>().Get(request.UserId); entity.Name = request.Name; entity.Password = request.Password; entity.RoleId = request.RoleId; entity.UserName = request.UserName; entity.Gender = request.Gender; entity.CraftDIDs = request.CraftDIDs; ServiceHelper.LoadService <IUserService>().Update(entity); userSaveResponse.UserId = entity.UserId; } return(userSaveResponse); }
public IdResponse Save(UserSaveRequest request) { var id = request.Id; var userName = request.UserName; var password = CryptInfoHelper.GetDecrypte(request.PassWord); password = CryptInfoHelper.MD5Encode(password); if (id == 0) { service.AddUser(userName, password); } else { service.ModifyUser(id, userName, password); } return(new IdResponse { id = id }); }
/// <summary> /// 新增/修改用户 /// </summary> /// <param name="user"></param> /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task <ResponseMessage> Save(UserInfo user, UserSaveRequest request, CancellationToken cancellationToken = default(CancellationToken)) { var response = new ResponseMessage(); if (!user.IsAdmin) { response.Code = ResponseCodeDefines.NotAllow; response.Message = "权限不足"; return(response); } if (string.IsNullOrWhiteSpace(request.Id)) { if (request.LoginName == null) { response.Code = ResponseCodeDefines.ArgumentNullError; response.Message = "登陆名不能为空"; return(response); } if (await _userStore.GetUserInfos().AnyAsync(a => a.LoginName.Equals(request.LoginName), cancellationToken)) { response.Code = ResponseCodeDefines.ObjectAlreadyExists; response.Message = "新增用户的登陆名已经存在"; return(response); } // 新增 var addUser = new UserInfo { Id = Guid.NewGuid().ToString(), LoginName = request.LoginName, UserName = request.UserName, OrganizationName = request.OrganizationName, GroupName = request.GroupName, IsAdmin = request.IsAdmin, CreateUser = user.Id, CreateTime = DateTime.Now, IsDelete = false, ZenTao = request.ZenTao, }; ScoreInfo scoreInfo = null; var scorePeriod = await _scoreInfoStore.GetScorePeriods().Where(w => !w.IsDelete && w.State == 1).FirstOrDefaultAsync(); if (scorePeriod != null) { var scoreInfoOld = await _scoreInfoStore.GetScoreInfos().Where(w => w.PeriodId == scorePeriod.Id && !w.IsDelete && w.UserId == addUser.Id).FirstOrDefaultAsync(); if (scoreInfoOld == null) { var nowTime = DateTime.Now; scoreInfo = new ScoreInfo { Id = Guid.NewGuid().ToString(), UserId = addUser.Id, CreateUser = addUser.Id, CreateTime = nowTime, IsDelete = false, Score = 0, ConsumableScore = 0, PeriodId = scorePeriod.Id, UpdateTime = nowTime, UpdateUser = addUser.Id }; } } using (var trans = await _transaction.BeginTransaction()) { try { if (scoreInfo != null) { await _scoreInfoStore.CreateScoreInfo(scoreInfo); } await _userStore.Create(new List <UserInfo> { addUser }, cancellationToken); trans.Commit(); } catch (Exception) { trans.Rollback(); throw; } } // 触发排行榜变化 await _sendClientMessageManager.SendInfo(Dto.Common.SendClientType.Rank); } else { // 修改 var entity = await _userStore.GetUserInfos().Where(a => a.Id.Equals(request.Id)).FirstOrDefaultAsync(cancellationToken); if (!string.IsNullOrWhiteSpace(request.LoginName)) { if (entity.UserId != null && request.LoginName != entity.LoginName) { response.Code = ResponseCodeDefines.NotAllow; response.Message = "已经登陆的用户不允许修改登陆名"; return(response); } if (await _userStore.GetUserInfos().AnyAsync(a => a.LoginName.Equals(request.LoginName) && a.Id != request.Id, cancellationToken)) { response.Code = ResponseCodeDefines.ObjectAlreadyExists; response.Message = "用户的登陆名与其他用户名重复"; return(response); } } if (entity.IsAdmin == true && request.IsAdmin == false) { var adminList = await _userStore.GetUserInfos().Where(w => !w.IsDelete && w.IsAdmin).ToListAsync(); if (adminList.Count == 1 && adminList[0].Id == entity.Id) { response.Code = ResponseCodeDefines.ObjectAlreadyExists; response.Message = "您已经是最后一个管理员了,不能取消自己的管理员权限。"; return(response); } } entity.LoginName = string.IsNullOrWhiteSpace(request.LoginName) ? entity.LoginName : request.LoginName; entity.UserName = request.UserName ?? entity.UserName; entity.OrganizationName = request.OrganizationName ?? entity.OrganizationName; entity.GroupName = request.GroupName ?? entity.GroupName; entity.IsAdmin = request.IsAdmin; entity.ZenTao = request.ZenTao; await _userStore.Update(new List <UserInfo> { entity }, cancellationToken); } return(response); }