/// <summary> /// 重置密码 /// </summary> /// <param name="userName">用户名</param> /// <param name="newPsw">新密码</param> /// <param name="validateCode">验证码</param> /// <returns></returns> public async Task <OperationResult> ResetPassword(string userName, string newPsw, string validateCode) { userName.CheckNotNullOrEmpty("userName"); newPsw.CheckNotNullOrEmpty("newPsw"); validateCode.CheckNotNullOrEmpty("validateCode"); //验证码 var severCode = GetValidateCode(userName, CodeType.找回密码); if (severCode == null || severCode.Code != validateCode) { return(await Task.FromResult(new OperationResult(OperationResultType.ValidError, "验证码错误"))); } var sUser = await UserManager.FindByNameAsync(userName); if (sUser == null) { return(new OperationResult(OperationResultType.NoChanged, "用户不存在")); } if (sUser.UserType != UserType.App用户) { return(new OperationResult(OperationResultType.NoChanged, "用户不存在")); } sUser.PasswordHash = UserManager.PasswordHasher.HashPassword(newPsw); var result = SysUserRepo.Update(sUser); return(result == 0 ? new OperationResult(OperationResultType.ValidError, "服务器繁忙") : new OperationResult(OperationResultType.Success, "密码重置成功")); //UserInfoRepo.Update(sUser); //UserManager.RemovePassword(sUser.Id); //UserManager.AddPassword(sUser.Id, newPsw); }
/// <summary> /// 验证用户注册 /// </summary> /// <param name="dto">用户注册信息</param> /// <param name="validateCode">验证码</param> /// <returns>业务操作结果</returns> public async Task <OperationResult> ValidateRegister(UserInfoRegistDto dto, string validateCode) { dto.CheckNotNull("dto"); validateCode.CheckNotNullOrEmpty("validateCode"); //验证码 var severCode = GetValidateCode(dto.UserName, CodeType.用户注册); if (severCode == null || severCode.Code != validateCode) { return(new OperationResult(OperationResultType.ValidError, "验证码错误", 0)); } if (SysUserRepo.CheckExists(p => p.UserName == dto.UserName)) { return(new OperationResult(OperationResultType.ValidError, "账号已被使用", 0)); } try { UserInfoRepo.UnitOfWork.TransactionEnabled = true; //验证密码格式 IdentityResult result = await UserManager.PasswordValidator.ValidateAsync(dto.Password); if (!result.Succeeded) { return(result.ToOperationResult()); } SysUser sUser = new SysUser() { UserName = dto.UserName, NickName = dto.NickName, PasswordHash = UserManager.PasswordHasher.HashPassword(dto.Password),//密码加密 UserType = UserType.App用户 }; if (severCode.ValidateType == ValidateType.手机) { sUser.PhoneNumber = dto.UserName; sUser.PhoneNumberConfirmed = true; } else { sUser.Email = dto.UserName; sUser.EmailConfirmed = true; } await UserManager.CreateAsync(sUser); var userInfo = Mapper.Map <UserInfo>(dto); userInfo.SysUser = sUser; await UserInfoRepo.InsertAsync(userInfo); await UserInfoRepo.UnitOfWork.SaveChangesAsync(); return(new OperationResult(OperationResultType.Success, "注册成功", userInfo.Id)); } catch { return(new OperationResult(OperationResultType.NoChanged, "注册失败", 0)); } }
/// <summary> /// 更改用户名 /// </summary> /// <param name="userName">原用户名</param> /// <param name="newUserName">新用户名</param> /// <param name="password">登录密码</param> /// <param name="validateCode">验证码</param> /// <returns>业务操作结果</returns> public async Task <OperationResult> ChangeUserName(string userName, string newUserName, string password, string validateCode) { userName.CheckNotNullOrEmpty("userName"); newUserName.CheckNotNullOrEmpty("newUserName"); validateCode.CheckNotNullOrEmpty("validateCode"); //验证码 var severCode = GetValidateCode(newUserName, CodeType.更换手机); if (severCode == null || severCode.Code != validateCode) { return(await Task.FromResult(new OperationResult(OperationResultType.ValidError, "验证码错误"))); } var sUser = await UserManager.FindByNameAsync(userName); if (sUser == null) { return(new OperationResult(OperationResultType.NoChanged, "用户不存在")); } if (!await UserManager.CheckPasswordAsync(sUser, password)) { return(new OperationResult(OperationResultType.ValidError, "登录密码错误", null)); } if (SysUserRepo.CheckExists(p => p.UserName == newUserName, sUser.Id)) { return(new OperationResult(OperationResultType.NoChanged, "该用户名已存在")); } sUser.UserName = userName; if (severCode.ValidateType == ValidateType.手机) { sUser.PhoneNumber = newUserName; sUser.UserName = newUserName; sUser.PhoneNumberConfirmed = true; } else { sUser.Email = newUserName; sUser.EmailConfirmed = true; } await SysUserRepo.UpdateAsync(sUser); return(new OperationResult(OperationResultType.Success, "更改成功")); }
/// <summary> /// 修改用户昵称和头像 /// </summary> /// <param name="userId"></param> /// <param name="nickName"></param> /// <param name="headPic"></param> /// <returns></returns> public async Task <OperationResult> EditUserInfo(int userId, string nickName, string headPic) { UserInfoRepo.UnitOfWork.TransactionEnabled = true; var info = UserInfoRepo.GetByKey(userId); info.HeadPic = headPic; await UserInfoRepo.UpdateAsync(info); var sys = info.SysUser; sys.NickName = nickName; var result = await SysUserRepo.UpdateAsync(sys); await UserInfoRepo.UnitOfWork.SaveChangesAsync(); return(new OperationResult(OperationResultType.Success, "修改成功")); }
/// <summary> /// 保存UserInfo信息(新增/更新) /// </summary> /// <param name="updateForeignKey">更新时是否更新外键信息</param> /// <param name="dtos">要保存的UserInfoDto信息</param> /// <returns>业务操作集合</returns> public async Task <OperationResult> SaveUserInfos(bool updateForeignKey = false, params UserInfoDto[] dtos) { try { dtos.CheckNotNull("dtos"); var addDtos = dtos.Where(p => p.Id == 0).ToArray(); var updateDtos = dtos.Where(p => p.Id != 0).ToArray(); UserInfoRepo.UnitOfWork.TransactionEnabled = true; Action <UserInfoDto> checkAction = dto => { if (UserInfoRepo.CheckExists(p => p.PhoneNo == dto.PhoneNo, dto.Id)) { throw new Exception("“{0}”已被使用".FormatWith("手机号")); } }; Func <UserInfoDto, UserInfo, UserInfo> updateFunc = (dto, entity) => { if (dto.Id == 0 || updateForeignKey) { entity.SysUser = SysUserRepo.GetByKey(dto.SysUserId); } return(entity); }; if (addDtos.Length > 0) { UserInfoRepo.Insert(addDtos, checkAction, updateFunc); } if (updateDtos.Length > 0) { UserInfoRepo.Update(updateDtos, checkAction, updateFunc); } await UserInfoRepo.UnitOfWork.SaveChangesAsync(); return(new OperationResult(OperationResultType.Success, "保存成功")); } catch (Exception e) { return(new OperationResult(OperationResultType.Error, e.Message)); } }
public async Task <IHttpActionResult> DelUserInfo(string phoneNo) { var sysUser = SysUserRepo.Entities.SingleOrDefault(m => m.UserName == phoneNo); var userInfo = UserInfoRepo.Entities.SingleOrDefault(m => m.SysUser.UserName == phoneNo); SysUserRepo.Delete(sysUser.Id); return(Json(CdkxResult.Success())); // UserContract.UserInfos.SingleOrDefault(m => m.SysUser.UserName == phoneNo); //var afterService = AfterServiceRepo.Entities.SingleOrDefault(m => m.User.UserName == phoneNo); //var sysUserLogin = SysUserLoginRepo.Entities.SingleOrDefault(m => m.User.UserName == phoneNo); //var sysUserRoleMap = SysUserRoleMapRepo.Entities.SingleOrDefault(m => m.User.UserName == phoneNo); //var sysUserClaim = SysUserClaimRepo.Entities.SingleOrDefault(m => m.User.UserName == phoneNo); //SysUserRepo.UnitOfWork.TransactionEnabled = true; //if (sysUserClaim != null) //{ //} //if (sysUserClaim != null) //{ // SysUserClaimRepo.Delete(sysUserClaim.Id); //} //if (sysUserLogin != null) //{ // SysUserLoginRepo.Delete(sysUserLogin.Id); //} //if (afterService != null) //{ // AfterServiceRepo.Delete(afterService.Id); //} //if (userInfo != null) //{ // UserInfoRepo.Delete(userInfo.Id); //} //SysUserRepo.Delete(sysUser.Id); //return Json((SysUserRepo.UnitOfWork.SaveChanges() == 0 ? BodeResult.NoChanged(): BodeResult.Success()).ToApiResult()); }
/// <summary> /// 验证注册码是否正确 /// </summary> /// <param name="phoneNo"></param> /// <param name="validateCode"></param> /// <returns></returns> public async Task <OperationResult> ValidateCode(string phoneNo, CodeType codeType, string validateCode) { var severCode = GetValidateCode(phoneNo, codeType); if (severCode == null || severCode.Code != validateCode) { return(new OperationResult(OperationResultType.ValidError, "验证码错误", 0)); } if (SysUserRepo.CheckExists(p => p.UserName == phoneNo)) { if (codeType == CodeType.用户注册) { return(new OperationResult(OperationResultType.ValidError, "账号已被使用", 0)); } } else { if (codeType == CodeType.更换手机 || codeType == CodeType.找回密码 || codeType == CodeType.临时密码) { return(CdkxResult.ValidError("帐号不存在.")); } } return(CdkxResult.Success()); }
/// <summary> /// 更改手机号 /// </summary> /// <param name="phoneNo">原手机号</param> /// <param name="newPhoneNo">新手机号</param> /// <param name="password">登录密码</param> /// <param name="validateCode">验证码</param> /// <returns>业务操作结果</returns> public async Task <OperationResult> ChangePhoneNo(string phoneNo, string newPhoneNo, string password, string validateCode) { phoneNo.CheckNotNullOrEmpty("phoneNo"); newPhoneNo.CheckNotNullOrEmpty("newPhoneNo"); validateCode.CheckNotNullOrEmpty("validateCode"); //验证码 var severCode = GetValidateCode(newPhoneNo, CodeType.更换手机); if (severCode != validateCode) { return(await Task.FromResult(new OperationResult(OperationResultType.ValidError, "验证码错误"))); } var sUser = await UserManager.FindByNameAsync(phoneNo); if (sUser == null) { return(new OperationResult(OperationResultType.NoChanged, "用户不存在")); } if (!await UserManager.CheckPasswordAsync(sUser, password)) { return(new OperationResult(OperationResultType.ValidError, "登录密码错误", null)); } if (SysUserRepo.CheckExists(p => p.UserName == newPhoneNo || p.PhoneNumber == newPhoneNo, sUser.Id)) { return(new OperationResult(OperationResultType.NoChanged, "该手机号已注册")); } sUser.UserName = newPhoneNo; sUser.PhoneNumber = newPhoneNo; await SysUserRepo.UpdateAsync(sUser); return(new OperationResult(OperationResultType.Success, "手机号更改成功")); }
/// <summary> /// 用model更新用户信息 /// </summary> /// <param name="model"></param> /// <returns></returns> public int UpdateUserInfo(SysUser model) { return(SysUserRepo.Update(model)); }