示例#1
0
 /// <summary>
 /// 验证收货地址是否合法
 /// </summary>
 /// <param name="model">收货地址实体</param>
 /// <param name="message">消息</param>
 /// <returns></returns>
 /// <remarks>2013-12-2 黄波 创建</remarks>
 public bool ValidReceiveAddress(Model.CrReceiveAddress model, out string message)
 {
     message = "";
     if (!VHelper.ValidatorRule(new Rule_NotAllowNull(model.Name, "必须添加收货人姓名!")).IsPass)
     {
         message = "必须添加收货人姓名!";
         return(false);
     }
     if (!VHelper.ValidatorRule(new Rule_NotAllowNull(model.StreetAddress, "必须添加收货地址!")).IsPass)
     {
         message = "必须添加收货地址!";
         return(false);
     }
     if (!VHelper.ValidatorRule(new Rule_Mobile(model.MobilePhoneNumber)).IsPass&& !VHelper.ValidatorRule(new Rule_Telephone(model.PhoneNumber)).IsPass)
     {
         message = "手机或固定号码必须填写一项!";
         return(false);
     }
     if (Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(model.AreaSysNo) == null)
     {
         message = "请选择正确的所在地区!";
         return(false);
     }
     return(true);
 }
示例#2
0
        public JsonResult Register(RegisterRequest request)
        {
            var response = new JResult <string>()
            {
                Status = false
            };

            var result = VHelper.ValidatorRule(
                new Rule_NotAllowNull(request.OpenId, "微信授权失败!"),
                new Rule_NotAllowNull(request.RealName, "姓名不能为空!"),
                new Rule_NotAllowNull(request.PhoneNumber, "账号不能为空!"),
                new Rule_Mobile(request.PhoneNumber, "输入手机号!"),
                new Rule_LetterAndNumber(request.Password, "密码应由拉丁字母和数字组成!"),
                new Rule_StringLenth(request.Password, min: 6, max: 20, message: "新密码长度在6-20位之间"),
                new Rule_LetterAndNumber(request.ConfirmPassword, "确认密码应由拉丁字母和数字组成"),
                new Rule_StringLenth(request.ConfirmPassword, min: 6, max: 20, message: "新确认密码长度在6-20位之间"),
                new Rule_StringLenth(request.MobileVerifyCode, min: 6, max: 6, message: "手机验证码不能为空!")
                );

            if (!result.IsPass)
            {
                response.Status  = result.IsPass;
                response.Message = result.Message;
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            //短信验证
            var _cacheProvider = ClientProxy.GetInstance <IRedisProvider>();

            var cached = _cacheProvider.Get <SendSMSResponse>(CacheKeys.Items.SMS_ + request.PhoneNumber);

            if (cached != null)
            {
                if (!cached.Rand.Equals(request.MobileVerifyCode))
                {
                    response.Status  = false;
                    response.Message = "手机验证错误!";
                    return(Json(response));
                }
            }
            else
            {
                response.Status  = false;
                response.Message = "手机验证错误!";
                return(Json(response));
            }
            //OpenId验证
            var openId = CookieUtil.Get("OpenId");

            if (!request.OpenId.Equals(openId))
            {
                response.Status  = false;
                response.Message = "请不要不暴力操作";
                return(Json(response, JsonRequestBehavior.AllowGet));
            }
            request.OpenId     = openId;
            request.Nickname   = CookieUtil.Get("Nickname");
            request.HeadImgUrl = CookieUtil.Get("HeadImgUrl");
            //验证手机号是否存在
            var phoneExist = CustomerApp.Instance.GetByPhoneNumber(request.PhoneNumber);

            if (phoneExist != null)
            {
                response.Status  = false;
                response.Message = "手机号已存在!";
                return(Json(response, JsonRequestBehavior.AllowGet));
            }
            var accountExist = CustomerApp.Instance.GetByAccount(request.PhoneNumber);

            if (accountExist != null)
            {
                response.Status  = false;
                response.Message = "手机号已存在!";
                return(Json(response, JsonRequestBehavior.AllowGet));
            }
            if (!string.IsNullOrEmpty(request.Referrer))
            {
                //查找推荐人
                var referrerExist = CustomerApp.Instance.GetByAccount(request.Referrer);
                if (referrerExist != null)
                {
                    request.ReferrerSysNo = referrerExist.SysNo;
                }
                else
                {
                    response.Status  = false;
                    response.Message = "推荐人不存在!";
                    return(Json(response, JsonRequestBehavior.AllowGet));
                }
            }
            request.AutoLogin = true;
            response          = CustomerApp.Instance.Register(request);
            if (response.Status)
            {
                var loginResonse = CustomerApp.Instance.AccountLogin(new LoginRequest()
                {
                    Account  = request.PhoneNumber,
                    Password = request.Password
                });
                if (!loginResonse.Status)
                {
                    response.Status  = false;
                    response.Message = "自动登录失败!";
                }
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
示例#3
0
        public JsonResult Cashout(CashoutRequest request)
        {
            var response = new JResult()
            {
                Status = false
            };

            var result = VHelper.ValidatorRule(
                new Rule_Number(request.Amount.ToString(), "请输入提现金额!")
                );

            if (!result.IsPass)
            {
                response.Status  = false;
                response.Message = result.Message;
                return(Json(response, JsonRequestBehavior.AllowGet));
            }

            lock (_lock)
            {
                Log4Helper.WriteInfoLog("EC.H5 提现" + result.ToJson2(), "Cashout");
                //当前上下文
                var context = CustomerContext.Context;
                if (context == null)
                {
                    response.Message = "用户已超时、请重新登录﹗";
                    return(Json(response, JsonRequestBehavior.AllowGet));
                }
                if (request.Amount <= 0)
                {
                    response.Message = "提现金额不能为零﹗";
                    return(Json(response, JsonRequestBehavior.AllowGet));
                }

                var periodList = FnCashoutApp.Instance.GetPeriodTimes(new FnCashoutQueryRequest()
                {
                    CustomerSysNo = context.SysNo,
                    StartTime     = DateTime.Now.ToString("yyyy-MM-dd 00:00:00"),
                    EndTime       = DateTime.Now.ToString("yyyy-MM-dd 23:59:59")
                });
                if (periodList != null && periodList.Any())
                {
                    response.Message = "每天只能提现一次﹗";
                    return(Json(response, JsonRequestBehavior.AllowGet));
                }
                //提现金额判断(100元的倍数)
                //var remainder = request.Amount % 100;
                //if (remainder != 0)
                //{
                //    response.Message = "提现金额必须为100的倍数﹗";
                //    return Json(response, JsonRequestBehavior.AllowGet);
                //}
                if (request.Amount < 10)
                {
                    response.Message = "提现金额必须为10元﹗";
                    return(Json(response, JsonRequestBehavior.AllowGet));
                }
                //验证是否填写银行卡
                if (request.CashoutType.Equals(FnEnum.CashoutType.银联.GetHashCode()))
                {
                    if (context.Bank <= 0 && context.BankNumber == "")
                    {
                        response.Message = "请设置银行卡";
                        return(Json(response, JsonRequestBehavior.AllowGet));
                    }
                }
                if (context.WalletAmount >= request.Amount)
                {
                    WeiXinProvider wx = new WeiXinProvider();

                    var certPath = Server.MapPath(@"\cert\apiclient_cert.p12");

                    decimal upgradeFundAmount = 0;

                    if (!context.Grade.Equals(CustomerEnum.Grade.股东.GetHashCode()))
                    {
                        upgradeFundAmount = request.Amount / 2;
                    }

                    response = FnCashoutApp.Instance.Cashout(new CashoutRequest()
                    {
                        CustomerSysNo     = context.SysNo,
                        WalletAmount      = request.Amount,
                        UpgradeFundAmount = upgradeFundAmount,
                        Account           = context.Account,
                        CashoutType       = request.CashoutType,
                        CertPath          = certPath
                    });
                }
                else
                {
                    response.Message = "当前余额不足﹗";
                    return(Json(response, JsonRequestBehavior.AllowGet));
                }
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }