/// <summary> /// 密码错误表更新 /// </summary> /// <param name="model">密码错误对象</param> /// <param name="db">数据Db</param> /// <returns></returns> public ResultModel UpdatePrivate(YH_PasswordErrorModel model, dynamic db) { var result = new ResultModel() { Data = db.YH_PasswordError.Update(model) }; return(result); }
/// <summary> /// 密码错误表插入 /// </summary> /// <param name="model">密码错误对象</param> /// <param name="db">数据Db</param> /// <returns></returns> private ResultModel AddErrorPrivate(YH_PasswordErrorModel model, dynamic db) { var tb = db.YH_PasswordError; var result = new ResultModel() { Data = tb.Insert(model) }; return(result); }
/// <summary> /// 获取用户信息(用于支付,配合GetYH_UserForPayment方法使用) /// </summary> /// <param name="userInfoView">用户信息</param> /// <param name="compareUserInfoView">用于比较的用户信息</param> /// <returns>是否可以支付</returns> private ResultModel GetYH_UserForPaymentMessagePrivate(UserInfoViewForPayment userInfoView, UserInfoViewForPayment compareUserInfoView, dynamic db) { ResultModel resultModel = new ResultModel() { IsValid = false }; if (userInfoView == null || userInfoView.IsDelete == 1) { //没有找到该用户 resultModel.Messages.Add(CultureHelper.GetAPPLangSgring("USER_QUERY_NOT_FOUND", compareUserInfoView.LanguageId)); } else { if (userInfoView.IsLock == 1) { //账户被锁定,请联系客服 resultModel.Messages.Add(CultureHelper.GetAPPLangSgring("USER_QUERY_ACCOUNT_LOCKED", compareUserInfoView.LanguageId)); } //进行密码检测 else if (compareUserInfoView != null) { if (string.IsNullOrEmpty(userInfoView.PayPassWord)) { resultModel.Messages.Add(CultureHelper.GetAPPLangSgring("MONEY_ORDER_SETPAYPASSWORD", compareUserInfoView.LanguageId)); } else { int passwordType = (int)UserEnums.PasswordType.PayPassword; //查看是否有历史输入错误记录 List <YH_PasswordErrorModel> passwordErrors = passwordErrorService.GetPasswordErrorInfo(userInfoView.UserID, passwordType, db).Data; //交易密码错误信息 YH_PasswordErrorModel passwordErrorModel = null; if (passwordErrors == null || passwordErrors.Count == 0) { //如果用户交易密码不同数据库交易密码 if (compareUserInfoView.PayPassWord != userInfoView.PayPassWord) { passwordErrorModel = new YH_PasswordErrorModel() { Account = userInfoView.Account, UserID = userInfoView.UserID, VerifyTime = DateTime.Now, PassWordType = passwordType, FailVerifyTimes = 1 }; passwordErrorService.AddError(passwordErrorModel, db); resultModel.Messages.Add(CultureHelper.GetAPPLangSgring("MONEY_ORDER_PAYPASSWORD_ERROR", compareUserInfoView.LanguageId)); } else { resultModel.IsValid = true; } } else { passwordErrorModel = passwordErrors[0]; //获取有关交易密码限制的参数 List <ParameterSetModel> payPwdParams = parameterSetService.GetParameterSetsBy(new long[] { ParameterSetExtension.PARAM_PAYPASSWORD_TIME, ParameterSetExtension.PARAM_PAYPASSWORD_COUNT }, db).Data; //次数限制参数 ParameterSetModel payPwdCount = payPwdParams.FirstOrDefault( x => x.ParamenterID == ParameterSetExtension.PARAM_PAYPASSWORD_COUNT); //时间限制参数 ParameterSetModel payPwdTime = payPwdParams.FirstOrDefault( x => x.ParamenterID == ParameterSetExtension.PARAM_PAYPASSWORD_TIME); //限制次数 int count = payPwdCount == null ? 5 : Convert.ToInt32(payPwdCount.PValue); //限制时间(分钟) double time = payPwdTime == null ? 120 : Convert.ToDouble(payPwdTime.PValue); //限制时间 DateTime limitTime = passwordErrorModel.VerifyTime.AddMinutes(time); //交易密码是否正确 bool isPwdTrue = compareUserInfoView.PayPassWord == userInfoView.PayPassWord; //错误次数等于限制次数 并且当前时间小于限制时间 则不允许进行交易密码验证 if (passwordErrorModel.FailVerifyTimes >= count && limitTime > DateTime.Now) { resultModel.Messages.Add(string.Format(CultureHelper.GetAPPLangSgring("MONEY_ORDER_PAYPASSWORDCOUNT", compareUserInfoView.LanguageId), count, Math.Ceiling((limitTime - DateTime.Now).TotalMinutes))); return(resultModel); } if (!isPwdTrue) { if (passwordErrorModel.FailVerifyTimes >= count && limitTime <= DateTime.Now) { //如果用户交易密码不同数据库交易密码,进行次数设置为1,验证时间为当前时间 passwordErrorModel.FailVerifyTimes = 1; passwordErrorModel.VerifyTime = DateTime.Now; passwordErrorService.Update(passwordErrorModel, db); resultModel.Messages.Add(CultureHelper.GetAPPLangSgring("MONEY_ORDER_PAYPASSWORD_ERROR", compareUserInfoView.LanguageId)); } else if (passwordErrorModel.FailVerifyTimes < count) { //如果用户交易密码不同数据库交易密码,进行次数设置为1,验证时间为当前时间 passwordErrorModel.FailVerifyTimes = passwordErrorModel.FailVerifyTimes + 1; passwordErrorModel.VerifyTime = DateTime.Now; passwordErrorService.Update(passwordErrorModel, db); resultModel.Messages.Add(CultureHelper.GetAPPLangSgring("MONEY_ORDER_PAYPASSWORD_ERROR", compareUserInfoView.LanguageId)); } else { resultModel.Messages.Add(CultureHelper.GetAPPLangSgring("MONEY_ORDER_PAYPASSWORD_ERROR", compareUserInfoView.LanguageId)); } } else { //将错误次数清空 passwordErrorModel.FailVerifyTimes = 0; passwordErrorModel.VerifyTime = DateTime.Now; passwordErrorService.Update(passwordErrorModel, db); resultModel.IsValid = true; } } } } else { resultModel.IsValid = true; } } return(resultModel); }
/// <summary> /// 密码错误表更新 /// </summary> /// <param name="model">密码错误对象</param> /// <returns></returns> public ResultModel Update(YH_PasswordErrorModel model) { return(this.UpdatePrivate(model, _database.Db)); }
/// <summary> /// 密码错误表插入 /// </summary> /// <param name="model">密码错误对象</param> /// <param name="trans">事务对象</param> /// <returns></returns> public ResultModel AddError(YH_PasswordErrorModel model, dynamic trans) { return(this.AddErrorPrivate(model, trans)); }
/// <summary> /// 密码错误表插入 /// </summary> /// <param name="model">密码错误对象</param> /// <returns></returns> public ResultModel AddError(YH_PasswordErrorModel model) { return(this.AddErrorPrivate(model, this._database.Db)); }
/// <summary> /// 密码错误表更新 /// </summary> /// <param name="model">密码错误对象</param> /// <param name="trans">事务对象</param> /// <returns></returns> public ResultModel Update(YH_PasswordErrorModel model, dynamic trans) { return(this.UpdatePrivate(model, trans)); }