/// <summary> /// 插入用户信息到FindPassWord表,并设置状态为0 /// </summary> /// <param name="userModel"></param> /// <param name="securityCode"></param> private int AddUserFindPassword(User userModel, string securityCode) { var findPassModel = new v4_Usr_FindMailPassword() { usr_UserID = userModel.ID, VirificationCode = securityCode, Mail = userModel.Email ?? "@Email", State = 0, ExtField = DateTime.Now, Tel = userModel.Mobile, ValidateCount = 1, FailTime = DateTime.Now.AddHours(1), CreateTime = DateTime.Now }; //用户信息插入数据库 var recevied = new v4UsrFindPasswordService().Insert(findPassModel); if (recevied > 0) { return recevied; } return -1; }
/// <summary> /// 校验用户是否正确 /// </summary> /// <param name="emailOrSms"></param> /// <param name="validateCode"></param> /// <returns></returns> public ActionResult SendNewEncyCode(string emailOrSms, string validateCode) { if (string.IsNullOrWhiteSpace(validateCode)) //验证码 { return this.Json(new AjaxResponse { State = 0, Message = "验证码不能为空" }); } string code = UserSessionManager.SecurityCode; if (string.IsNullOrWhiteSpace(code) || validateCode != code) { return Json(new AjaxResponse { State = 0, Message = "验证码输入有误" }); } var userModel = new UserService().QueryUserByMobileOrEmail(emailOrSms); //验证用户是否存在 if (userModel == null) { return Json(new AjaxResponse { State = 0, Message = "用户名不存在或用户名错误,请重新输入" }); } var ran = new Random(); var ranCode = ran.Next(100, 999).ToString() + ran.Next(100, 999); var pwd = Encrypt.HashByMD5(ranCode); var findPassword = new v4UsrFindPasswordService().GetByUserId(userModel.ID); int validateCount = -1; if (findPassword != null) { validateCount = findPassword.ValidateCount; if (DateTime.Now.Day - findPassword.ExtField.Day > 1) { new v4UsrFindPasswordService().UpdateValidateCount(userModel.ID, 1); } } else { AddUserFindPassword(userModel, ranCode);//用户信息插入数据库 } if (validateCount == 5) { return Json(new AjaxResponse { State = 0, Message = "您已超过系统最大受理次数,系统不予受理,请明天再申请" }); } if (emailOrSms.Contains("@")) //检验用户输入的是邮箱还是手机号码 { string[] address = { userModel.Email }; if (SendEmail(ranCode, address) == 1) { new UserService().UpdateUserPassword(pwd, userModel.ID);//修改用户密码 RecodValidateCount(userModel.ID, validateCount);//记录用操作次数 return Json(new AjaxResponse { State = 1, Message = "邮箱" }); } } try { string[] mobile = { userModel.Mobile }; SendSms(mobile, ranCode); //发短信 RecodValidateCount(userModel.ID, validateCount); new UserService().UpdateUserPassword(pwd, userModel.ID);//修改用户密码 } catch (Exception exception) { throw new Exception(exception.Message); } return Json(new AjaxResponse { State = 1, Message = "手机" }); }