public async Task <ActionResult> DoRegister_Vip(RegisterViewModel model) { try { //1、验证请求 if (!ModelState.IsValid) { foreach (ModelState state in ModelState.Values.Where(state => state.Errors.Count > 0)) { return(Json(new { code = 400, msg = state.Errors[0].ErrorMessage })); } return(Json(new { code = 400, msg = "注册失败,参数错误" })); } var birthday = string.Empty; int Gender = -1; int Age = -1; string IdentityCardType = ((int)ECustomerIdentificationType.IdentityCard).ToString(); //判断证件类型是否是身份证 if (model.PaperWork == IdentityCardType) { switch (model.IdentityNumber.Length) { case 15: birthday = "19" + model.IdentityNumber.Substring(6, 2) + "-" + model.IdentityNumber.Substring(8, 2) + "-" + model.IdentityNumber.Substring(10, 2); Gender = (Convert.ToInt32(model.IdentityNumber.Substring(14)) % 2 == 0 ? 2 : 1); Age = DateTime.Now.Year - Convert.ToInt32("19" + model.IdentityNumber.Substring(6, 2)); break; case 18: birthday = model.IdentityNumber.Substring(6, 4) + "-" + model.IdentityNumber.Substring(10, 2) + "-" + model.IdentityNumber.Substring(12, 2); Gender = (Convert.ToInt32(model.IdentityNumber.Substring(16, 1)) % 2 == 0 ? 2 : 1); Age = DateTime.Now.Year - Convert.ToInt32(model.IdentityNumber.Substring(6, 4)); break; default: return(Json(new { code = 402, msg = "请正确输入证件号码" })); } DateTime time; if (!DateTime.TryParse(birthday, out time)) { return(Json(new { code = 402, msg = "请正确输入证件号码" })); } if (time < DateTime.Parse("1900-01-10")) { return(Json(new { code = 402, msg = "请正确输入证件号码" })); } } //第一:确认验证码 var validateCode = string.Empty; if (Session["ValidateCode"] != null) { validateCode = Session["ValidateCode"].ToString(); } if (!validateCode.Equals(model.ImgCaptcha)) { return(Json(new { code = 402, url = "/Account/LogonPage", msg = "图片验证码输入有误" })); //return RedirectToAction("LogonPage", "Account", new { returnUrl = returnUrl }); } ////2、验证手机验证码 ReturnResult _captchaResult = _AppContext.UserSecurityApp.ValidateMobileVerifyCode(model.Mobile, model.Captcha); if (!_captchaResult.IsSuccess) { return(Json(new { code = 401, msg = "短信验证码错误或已过期,请重新获取" })); } int userLevel = (int)MemshipLevel.OneStar; //根据身份证号,查询车辆信息,确定会员级别 if (!string.IsNullOrEmpty(model.IdentityNumber)) { userLevel = GetUserLevel(model.IdentityNumber); } //判断用户级别 //3、获取注册信息 var user = new ApplicationUser { No = _AppContext.MemberNumberApp.GetNumber("1"),//会员卡号 PhoneNumber = model.Mobile, UserName = model.Mobile, NickName = CommonUtilitys.GetNikeName(), IdentityNumber = model.IdentityNumber, MLevel = userLevel, MType = (int)model.MType, SystemMType = (int)MembershipType.WhitoutCar, ActiveWay = (int)MembershipActiveWay.ClientWeb, CreatedPerson = string.IsNullOrEmpty(model.Source) ? "blms_wap" : model.Source, MLevelBeginDate = DateTime.Parse(DateTime.Now.ToShortDateString()), MLevelInvalidDate = DateTime.Parse(DateTime.Now.ToShortDateString()).AddYears(1), PaperWork = model.PaperWork, Mid = model.IdentityNumber, AuthenticationTime = Convert.ToDateTime("1900-01-01"), Age = Age, Gender = Gender.ToString() }; string _activedealerId = model.ActivedealerId; //4、检验身份证号 Task <FrontIdentityUser> cusObj = null; if (!string.IsNullOrEmpty(model.IdentityNumber)) { cusObj = new FrontUserStore <FrontIdentityUser>().FindByIdentityNumber(model.IdentityNumber); if (cusObj != null && cusObj.Result != null) { return(Json(new { code = 402, msg = "您输入的证件号已被注册" })); } } //5、注册用户,如果用户存在则更新该用户信息 IdentityResult result = null; //if (string.IsNullOrEmpty(model.VIN)) if (!string.IsNullOrEmpty(birthday)) { user.Birthday = birthday; } if (!(cusObj != null && cusObj.Result != null)) { result = await UserManager.CreateAsync(user, model.Password); } int IsHasCar = 0; //6、注册完成跳转 if (result != null && result.Succeeded) { // 1)检索是否有车 var gradeUser = UserManager.FindByName(model.Mobile); var carList = _AppContext.CarServiceUserApp.SelectCarListByIdentity(model.IdentityNumber); // 正式环境取消注释 if (carList.Count() > 0) { gradeUser.SystemMType = (int)MembershipType.WhitCar; IsHasCar = 1; gradeUser.AuthenticationTime = DateTime.Now; gradeUser.AuthenticationSource = "blms_wap"; gradeUser.Age = Age; gradeUser.Gender = Gender.ToString(); } gradeUser.Age = Age; gradeUser.Gender = Gender.ToString(); UserManager.Update(gradeUser); try { //模拟登陆 await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); } catch (Exception ex) { Vcyber.BLMS.Common.LogService.Instance.Debug("注册成功模拟登陆异常", ex); } // 5)发送短信 //6判断车型交费返积分 // var returnIntegralType= (int) GetCarTypeByIdentity(model.IdentityNumber); var returnIntegralType = (int)_AppContext.CarServiceUserApp.GetReIntegralTypeByIdentity(model.IdentityNumber); if (gradeUser.SystemMType == 2 && returnIntegralType != -1) { var amount = ""; if (returnIntegralType == 0) { amount = "400"; } else if (returnIntegralType == 1) { amount = "700"; } else if (returnIntegralType == 2) { amount = "200"; } else { amount = "400"; } _AppContext.SMSApp.SendSMS(ESmsType.提交注册_匹配到车辆, model.Mobile, new string[] { amount }); } else { _AppContext.SMSApp.SendSMS(ESmsType.注册成功, model.Mobile, new string[] { "" }); } //判断用户是否是企业用户 bool flag = _AppContext.DealerMembershipApp.IsPersonalUser(model.IdentityNumber); if (!flag) { returnIntegralType = -1; } return(Json(new { code = 200, msg = "注册成功", ReIntegralType = returnIntegralType, Mtype = gradeUser.MType, HasCar = IsHasCar })); } AddErrors(result); var errorMsg = result.Errors.FirstOrDefault(); if (errorMsg != null && errorMsg.StartsWith("Passwords")) { errorMsg = "密码必须为8位以上数字和大小写字母组合"; } if (errorMsg != null && errorMsg.StartsWith("Name")) { errorMsg = "您的手机号已经注册过"; } // 如果我们进行到这一步时某个地方出错,则重新显示表单 return(Json(new { code = 400, msg = string.Format("{0}", errorMsg) })); } catch (Exception ex) { return(Json(new { code = 400, msg = string.Format("{0}", ex.Message) })); } }
public async Task <ActionResult> DoLoginByPhone(LoginViewModel model) { try { int isFirst = 0; if (!string.IsNullOrEmpty(model.Captcha)) { //第一:确认验证码 var validateCode = string.Empty; if (Session["ValidateCode"] != null) { validateCode = Session["ValidateCode"].ToString(); } if (!validateCode.Equals(model.Captcha)) { return(Json(new { code = 400, url = "/Account/LogonPage", msg = "图片验证码输入有误" })); } } ReturnResult _captchaResult = _AppContext.UserSecurityApp.ValidateMobileVerifyCode(model.UserName, model.SMSCaptcha); if (!_captchaResult.IsSuccess) { return(Json(new { code = 400, msg = "短信验证码错误或已过期,请重新获取" })); } //手机号是注册用直接登陆,否则注册新用户登陆 ApplicationUser applicationUser; if (this.LoginFactory(model, out applicationUser, 2)) { if (applicationUser != null) { if (applicationUser.IsNeedModifyPw == 1) { return(Json(new { code = 300, msg = " 帐户存在风险, 请先重置密码" })); } } _AppContext.LoginMemRecordApp.Add(applicationUser.Id, applicationUser.NickName, EDataSource.blms_wap); await SignInManager.SignInAsync(applicationUser, model.RememberMe, rememberBrowser : false); //BBSUtil.CheckAndCreateDefaultBBSMember(applicationUser); //new var returnIntegralType = (int)_AppContext.CarServiceUserApp.GetReIntegralTypeByIdentity(applicationUser.IdentityNumber); if (_AppContext.LoginMemRecordApp.IsReMemberShipRequest(applicationUser.Id) && returnIntegralType != -1 && applicationUser.IsPay != 2) { return(Json(new { code = 200, msg = "登录成功", isrequest = 1, returnIntegralType = returnIntegralType, identityNumber = applicationUser.IdentityNumber })); } else { return(Json(new { code = 200, msg = "登录成功", isrequest = 0 })); } } else //手机号未注册 ,注册并登陆 { isFirst = 1; var store = new FrontUserStore <FrontIdentityUser>(); var membershipManager = new UserManager <FrontIdentityUser>(store); if (store.CheckUserNameIsExist(model.UserName)) { return(Json(new { code = 400, success = false, msg = "系统中已存在此手机号" })); } IdentityResult CreateResult = null; var membershipIdentity = new FrontIdentityUser { No = _AppContext.MemberNumberApp.GetNumber("1"), //会员卡号 NickName = CommonUtilitys.GetNikeName(), UserName = model.UserName, // model.UserName, PhoneNumber = model.UserName, Password = "******" + model.UserName.Substring(model.UserName.Length - 6, 6), Status = (int)MembershipStatus.Nomal, CreateTime = DateTime.Now.ToLongTimeString(), CreatedPerson = "blms_wap", MType = (int)MembershipType.WhitoutCar, //非车主 MLevel = (int)MemshipLevel.OneStar, //级别 IsPay = (int)MembershipPayStatus.NotPay, //经销商新增的会员均为已缴纳100付费 ApprovalStatus = (int)MembershipApprovalStatus.Activing, //激活中 ActiveWay = (int)MembershipActiveWay.ClientWeb, IsNeedModifyPw = (int)MembershipNeedModifyPw.No, MLevelBeginDate = DateTime.Parse(DateTime.Now.ToShortDateString()), MLevelInvalidDate = DateTime.Parse(DateTime.Now.ToShortDateString()).AddYears(1), AuthenticationTime = DateTime.Parse("1900-01-01") }; CreateResult = membershipManager.Create(membershipIdentity, membershipIdentity.Password); // var user = store.FindByNameAsync(model.UserName).Result; if (CreateResult != null && !CreateResult.Succeeded) { var message = ""; foreach (var error in CreateResult.Errors) { message += error; } ModelState.AddModelError("", message); return(Json(new { success = false, msg = message })); } this.LoginFactory(model, out applicationUser, 2); _AppContext.LoginMemRecordApp.Add(applicationUser.Id, applicationUser.NickName, EDataSource.blms_wap); await SignInManager.SignInAsync(applicationUser, model.RememberMe, rememberBrowser : false); //BBSUtil.CheckAndCreateDefaultBBSMember(applicationUser); //new _AppContext.UserMessageRecordApp.InsertLoginChangePasswordMessage(applicationUser.Id); return(Json(new { code = 200, msg = "登录成功", first = isFirst })); } } catch (Exception ex) { return(Json(new { code = 400, msg = ex.Message })); } }