public IActionResult ResetPassword([FromBody] PhonePasswordCodeRequestDto dto) { var biz = new AccountBiz(); if (!biz.VerifyCode(dto.Phone, dto.Code)) { return(Failed(ErrorCode.VerificationCode, "手机验证码错误!")); } var model = biz.GetUserByPhone(dto.Phone).FirstOrDefault(); if (model == null) { return(Failed(ErrorCode.Empty, "该手机号未注册")); } model.LastUpdatedBy = model.UserGuid; model.Password = CryptoHelper.AddSalt(model.UserGuid, dto.Password); if (string.IsNullOrEmpty(model.Password)) { return(Failed(ErrorCode.SystemException, "密码加盐失败")); } return(biz.UpdateUser(model) ? Success() : Failed(ErrorCode.DataBaseError, "密码更新失败!")); }
public IActionResult Register([FromBody] PhonePasswordCodeRequestDto request) { var accountBiz = new AccountBiz(); if (!accountBiz.VerifyCode(request.Phone, request.Code)) { return(Failed(ErrorCode.VerificationCode, "手机验证码错误")); } var userID = Guid.NewGuid().ToString("N"); var saltPassword = CryptoHelper.AddSalt(userID, request.Password); if (string.IsNullOrEmpty(saltPassword)) { return(Failed(ErrorCode.SystemException, "密码加盐失败")); } var biz = new AccountBiz(); var list = biz.GetUserByPhone(request.Phone); if (list.Any()) { return(Failed(ErrorCode.DuplicatePhone, "该手机号已经注册")); } #region 获取用户是否有推荐关注公众号记录,若有,则将推荐人设为平台账户推荐人 var recommendUser = TryGetSubscriptionRecommendUser(request.OpenId); if (!string.IsNullOrWhiteSpace(recommendUser)) { request.Referrer = recommendUser; } #endregion var userModel = new UserModel { UserGuid = userID, WechatOpenid = request.OpenId, NickName = userID.Substring(0, 6), UserName = userID.Substring(0, 6), Phone = request.Phone, Password = saltPassword, Birthday = new DateTime(2000, 1, 1), RecommendGuid = request.Referrer, CreatedBy = userID, LastUpdatedBy = userID, OrgGuid = "guodan" }; var consumerModel = new ConsumerModel { ConsumerGuid = userID, CreatedBy = userID, LastUpdatedBy = userID }; var registerModel = new RegisterModel { PlatformType = request.PlatformType, Parameters = request.Parameters }; var result = biz.Register(userModel, consumerModel, registerModel); if (result == null) { return(Failed(ErrorCode.DuplicatePhone)); } if (result.Value) { var message = string.Empty; if (enableXmpp && !RegisterIM(userModel)) // 启用XMPP的情况下,才执行注册 { message = $"register im account failed. user id: {userID}, user phone: {request.Phone}"; Logger.Error(message); } var scoreBiz = new ScoreRulesBiz(); scoreBiz.AddScoreByRules(userID, ActionEnum.Registered, UserType.Consumer); if (!string.IsNullOrEmpty(request.Referrer)) { scoreBiz.AddScoreByRules(request.Referrer, ActionEnum.RecommendRegistered, UserType.Doctor); scoreBiz.AddScoreByRules(request.Referrer, ActionEnum.RecommendRegistered, UserType.Consumer); } return(Success(userID, message)); } else { return(Failed(ErrorCode.DataBaseError)); } }