Esempio n. 1
0
    public Model.ReturnValue ProcessUpdateInfo(HttpContext context)
    {
        Model.ReturnValue result = new Model.ReturnValue();

        #region 验证Session
        result = CheckSession();
        if (result.Success == false)
        {
            ESLogMethod.ESLogInstance.Debug("Session不通过", "");
            return(result);
        }
        #endregion

        string OpenId = orderSession.OpenId;
        string Code   = orderSession.Code;
        string Name   = context.Request["name"];
        string Mobile = context.Request["mob"];
        string Adds   = context.Request["adds"];

        #region 验证openid
        if (Common.ValidateHelper.IsOpenid(OpenId) == false)
        {
            ESLogMethod.ESLogInstance.Debug("Openid格式异常", OpenId, Code);

            result.ErrMessage = "系统繁忙,请稍后再试";
            result.Success    = false;
            return(result);
        }
        #endregion

        #region 验证手机号
        if (Common.ValidateHelper.IsMobile(Mobile) == false)
        {
            ESLogMethod.ESLogInstance.Debug("手机号错误", Mobile, Code);

            result.ErrMessage = "请填写正确手机号";
            result.Success    = false;
            return(result);
        }
        #endregion

        #region 验证姓名
        if (Common.ValidateHelper.IsName(Name) == false || Name.Length > 12)
        {
            ESLogMethod.ESLogInstance.Debug("姓名错误", Name, Code);

            result.ErrMessage = "请填写正确姓名";
            result.Success    = false;
            return(result);
        }
        #endregion

        #region 验证地址

        if (Common.ValidateHelper.IsAddrs(Adds) == false || Adds.Length > 100)
        {
            ESLogMethod.ESLogInstance.Debug("地址错误", Adds, Code);

            result.ErrMessage = "请填写正确地址";
            result.Success    = false;
            return(result);
        }
        #endregion

        lock (_PrizeLock)
        {
            Model.OrderInfoModel orderdel = OrderDal.GetModelByCode(Code);

            #region 验证Code订单状态
            if (orderdel.Id <= 0)
            {
                ESLogMethod.ESLogInstance.Debug("Code不存在", Code, Mobile);

                result.ErrMessage = "系统繁忙,请稍后再试";
                result.Success    = false;
                return(result);
            }

            if (orderdel.Types != 0)
            {
                ESLogMethod.ESLogInstance.Debug("订单Types异常", orderdel.Types.ToString(), Code);

                result.ErrMessage = "系统繁忙,请稍后再试";
                result.Success    = false;
                return(result);
            }

            if (OpenId != orderdel.OpenId)
            {
                ESLogMethod.ESLogInstance.Debug("订单OpenId不匹配", OpenId, Code);

                result.ErrMessage = "系统繁忙,请稍后再试";
                result.Success    = false;
                return(result);
            }

            if (orderdel.States > 0)
            {
                result.ErrMessage = "提交成功";
                result.Success    = true;
                return(result);
            }
            #endregion

            orderdel.Name      = Name;
            orderdel.Adds      = Adds;
            orderdel.Types     = 1;
            orderdel.States    = 0;
            orderdel.PrizeCode = "";
            orderdel.Mob       = Mobile;

            #region 延时发放奖品

            if (WebFramework.PrivacyDemand.PrivacyMethod.PrivacyInstance.DelayedMethod(orderdel.Id))
            {
                result.ErrMessage = "提交成功";
                result.Success    = true;
                return(result);
            }
            #endregion

            #region 调取资源库串码
            string codes = WebFramework.OrderService.OrderMethod.OrderInstance.GetEswAPI(0, 0, orderdel.Mob, orderdel.OrderCode);

            //if (string.IsNullOrEmpty(codes) == false)
            //{
            //    orderdel.PrizeCode = codes;
            //    orderdel.States = 1;

            //}
            #endregion

            #region 调取优酷串码
            //string codes = WebFramework.OrderService.OrderMethod.OrderInstance.GetAPIClient(0, 0, orderdel.Mob, orderdel.OrderCode, WebFramework.GeneralMethodBase.GetKeyConfig(22).Val);

            //if (string.IsNullOrEmpty(codes) == false)
            //{
            //    orderdel.PrizeCode = codes;
            //    orderdel.States = 1;
            //}
            #endregion

            Model.OrderLogModel OrderLog = new Model.OrderLogModel();
            OrderLog.OId       = orderdel.Id;
            OrderLog.Mob       = Mobile;
            OrderLog.OrderCode = orderdel.PrizeCode;
            OrderLog.LStatus   = 8;//上传信息
            OrderLog.Notes     = orderdel.Name + ";" + orderdel.Adds;
            OrderLog.Status    = 1;
            OrderLog.UpTime    = DateTime.Now;

            if (OrderDal.UpdateInfo(orderdel, OrderLog) > 0)
            {
                #region 大数据录入-请在订单完成时调用该方法
                if (orderdel.States == 1)
                {
                    WebFramework.OrderService.OrderMethod.OrderInstance.AddOrderApi(orderdel);
                }
                #endregion

                result.ErrMessage = "提交成功";
                result.Success    = true;
                return(result);
            }

            ESLogMethod.ESLogInstance.Error("修改订单失败", Code);

            result.ErrMessage = "系统繁忙,请稍后再试";
            result.Success    = false;
            return(result);
        }
    }
Esempio n. 2
0
    public Model.ReturnValue ProcessCode(HttpContext context)
    {
        Model.ReturnValue result = new Model.ReturnValue();

        #region 验证Session
        result = CheckSession();
        if (result.Success == false)
        {
            ESLogMethod.ESLogInstance.Debug("Session不通过", "");

            return(result);
        }
        #endregion

        string OpenId = orderSession.OpenId;
        string Mobile = context.Request["mob"];
        string Code   = context.Request["code"];

        #region 验证OpenId
        if (Common.ValidateHelper.IsOpenid(OpenId) == false)
        {
            ESLogMethod.ESLogInstance.Debug("Openid格式异常", OpenId, Code);

            result.ErrMessage = "系统繁忙,请稍后再试";
            result.Success    = false;
            return(result);
        }
        #endregion

        #region 验证手机号
        if (Common.ValidateHelper.IsMobile(Mobile) == false)
        {
            ESLogMethod.ESLogInstance.Debug("手机号错误", Mobile, Code);

            result.ErrMessage = "请填写正确手机号";
            result.Success    = false;
            return(result);
        }
        #endregion

        string Ip = Common.ClientIP.GetIp();

        #region 检查IP
        if (Db.Security.IpAccessControlDal.CheckIpIsOK(false, CacheBase.IPSettingModel, Ip, "", "") == false)
        {
            ESLogMethod.ESLogInstance.Debug("IP模型超过限制", Ip, Code);

            result.ErrMessage = "系统繁忙,请稍后再试";
            result.Success    = false;
            return(result);
        }
        #endregion

        #region 验证激活码
        if (Common.ValidateHelper.IsCode(Code, 13) == false)
        {
            #region 登记IP
            Db.Security.IpAccessControlDal.CheckIpIsOK(true, CacheBase.IPSettingModel, Ip, Code, "激活码格式错误");
            #endregion

            ESLogMethod.ESLogInstance.Debug("激活码格式错误", Code, Mobile);

            result.ErrMessage = "请填写正确的激活码";
            result.Success    = false;
            return(result);
        }
        #endregion

        lock (_SyncLock)
        {
            Model.PassCodeInfoModel PassCodeModel = PassCodeDal.GetModelByCode(Code);

            #region 验证激活码状态
            if (PassCodeModel.Id <= 0)
            {
                #region 登记IP
                Db.Security.IpAccessControlDal.CheckIpIsOK(true, CacheBase.IPSettingModel, Ip, Code, "库无此激活码");
                #endregion

                ESLogMethod.ESLogInstance.Debug("激活码不存在", Code, Mobile);

                result.ErrMessage = "请填写正确的激活码";
                result.Success    = false;
                return(result);
            }

            if (PassCodeModel.StatusId == 1)
            {
                Model.OrderInfoModel orderdel = OrderDal.GetModelByCode(Code);

                if (orderdel.Id <= 0)
                {
                    #region 登记IP
                    Db.Security.IpAccessControlDal.CheckIpIsOK(true, CacheBase.IPSettingModel, Ip, Code, "订单无此串码");
                    #endregion

                    ESLogMethod.ESLogInstance.Debug("激活码已激活无订单", Code, Mobile);

                    result.ErrMessage = "请填写正确的激活码";
                    result.Success    = false;
                    return(result);
                }

                if (orderdel.OpenId != OpenId)
                {
                    ESLogMethod.ESLogInstance.Debug("激活码已绑定其他微信号", OpenId, Code);

                    result.ErrMessage = "激活码已绑定其他微信号";
                    result.Success    = false;
                    return(result);
                }

                result.ErrMessage = "提交成功";
                result.Success    = true;
                return(result);
            }
            #endregion

            #region 检查手机号-openid-IP 参与次数是否超限
            string maxcont = WebFramework.OrderService.OrderMethod.OrderInstance.CheckMobOpidIp(Mobile, OpenId, Ip);

            if (string.IsNullOrEmpty(maxcont) == false)
            {
                ESLogMethod.ESLogInstance.Debug("参与次数超限", Code, maxcont);

                result.ErrMessage = maxcont;
                result.Success    = false;
                return(result);
            }
            #endregion

            #region 抽奖-保存订单
            int goid = WebFramework.GeneralMethodBase.GenerationOrderId(0);

            #region 抽奖
            Model.AwardsStatisticsModel PrizeModel = WebFramework.GeneralMethodBase.GetPrize(7, 1);
            #endregion

            Model.OrderInfoModel model = new Model.OrderInfoModel();
            model.OrderCode  = WebFramework.GeneralMethodBase.CreateOrderCode(goid);
            model.Jx         = PrizeModel.AwardsName;
            model.Jp         = PrizeModel.PrizeName;
            model.DateStamp  = DateTime.Now.ToString("yyyyMMdd");
            model.Ip         = Ip;
            model.IpAddress  = string.Join("-", Common.ClientIP.GetArrayAdds(model.Ip));
            model.CreateTime = DateTime.Now;
            model.OpenId     = OpenId;
            model.Mob        = Mobile;
            model.Code       = Code;
            model.States     = 0;

            #region 抽取红包奖项
            Model.AwardsStatisticsModel RedPackPrizeModel = new Model.AwardsStatisticsModel();

            if (model.Jp == "微信红包")
            {
                //RedPackPrizeModel = WebFramework.GeneralMethodBase.GetPrize(7, 2);
                //model.HbOrderCode = WebFramework.GeneralMethodBase.CreateHbCode(goid);//创建红包单号
                //model.RedPackMoney = Common.TypeHelper.ObjectToInt(RedPackPrizeModel.PrizeName, 0);//获取红包金额
            }
            #endregion

            #region 节流
            if (WebFramework.PrivacyDemand.PrivacyMethod.PrivacyInstance.Throttling())
            {
                model.States = 1;
            }
            #endregion

            PassCodeModel.Mob        = Mobile;
            PassCodeModel.StatusId   = 1;
            PassCodeModel.ActiveTime = DateTime.Now;
            PassCodeModel.OpenId     = model.OpenId;

            Model.OrderLogModel mdlog = new Model.OrderLogModel();
            mdlog.OId       = 0;
            mdlog.OrderCode = model.OrderCode;
            mdlog.Mob       = Mobile;
            mdlog.UpTime    = DateTime.Now;
            mdlog.LStatus   = 0;
            mdlog.Status    = 1;
            mdlog.Notes     = "";

            int OrderId = 0;//插入订单ID

            //此方法不可替换更改,因与抽奖查询关联
            if (OrderDal.AddOrderInfo_UpdatePassCodeInfo_AddOrderLog(model, PassCodeModel, mdlog, PrizeModel.Id, RedPackPrizeModel.Id, ref OrderId) > 0)
            {
                #region 虚拟订单
                WebFramework.PrivacyDemand.PrivacyMethod.PrivacyInstance.AddFictitiousOrder(model);
                #endregion

                result.ErrMessage = "提交成功";
                result.Success    = true;
                return(result);;
            }
            #endregion
        }

        ESLogMethod.ESLogInstance.Error("添加订单失败", Code, Mobile);

        result.ErrMessage = "系统繁忙,请稍后再试";
        result.Success    = false;
        return(result);
    }