예제 #1
0
        public static string ERNIEChoujiang(ERNIE_Record recordinfo)
        {
            //先产生个随机码超出范围的随机号,后面根据活动设定重新获得随机号,防止没有查询到活动时无返回随机码
            Random ra   = new Random();
            var    code = ra.Next(98888888, 99888888);

            try
            {
                //先判断活动
                var erniedate = MemberERNIEData.ERNIEGetActById(recordinfo.ERNIE_id);
                if (erniedate != null)
                {
                    if (erniedate.Runstate == 1 && erniedate.Online == 1 && erniedate.ERNIE_star < DateTime.Now)
                    {                                                      //运行中,在起始时间内
                        if (erniedate.ERNIE_end.AddDays(1) < DateTime.Now) //超出日期则显示活动已经结束,时间按结束日期的23:59:59秒
                        {
                            return(JsonConvert.SerializeObject(new { error = "此次活动已经结束", sn = code, success = false }));
                        }



                        code = ra.Next((98888888 - erniedate.ERNIE_RateNum), 98888888);
                        recordinfo.ERNIE_code = code;                   //赋值随机码
                        recordinfo.Ip         = CommonFunc.GetRealIP(); //记录IP
                        recordinfo.ERNIE_time = DateTime.Now;           //记录时间

                        //读取用户信息
                        B2bCrmData crmmodel   = new B2bCrmData();
                        B2b_crm    memberinfo = crmmodel.b2b_crmH5(recordinfo.ERNIE_openid, erniedate.Com_id);
                        if (memberinfo != null)
                        {
                            recordinfo.ERNIE_uid = memberinfo.Id;                                      //读取用户ID,必须是已关注用户才能抽奖

                            var ERNIE_Limit = erniedate.ERNIE_Limit;                                   //抽奖频率
                            var Limit_Num   = erniedate.Limit_Num;                                     //抽奖次数

                            var searchdate = MemberERNIEData.SearchChoujiang(recordinfo, ERNIE_Limit); //查询是否抽过奖
                            if (searchdate < Limit_Num)
                            {
                                var insertdate = MemberERNIEData.InsertChoujiang(recordinfo);//插入抽奖

                                //判断是否中奖。可以重复,按指定
                                var panduanchoujiang = MemberERNIEData.ChoujiangSearchAwardcode(insertdate, recordinfo.ERNIE_id);
                                if (panduanchoujiang > 0)
                                { //如果中奖,
                                    //处理中奖,返回中奖级别
                                    var zhongjiang = MemberERNIEData.ZhongjiangAwardcode(insertdate, panduanchoujiang, memberinfo.Id);
                                    if (zhongjiang > 0)
                                    {
                                        return(JsonConvert.SerializeObject(new { error = "", insert_id = insertdate, success = true, prizetype = zhongjiang, sn = code }));
                                    }
                                }
                            }
                            else
                            {
                                return(JsonConvert.SerializeObject(new { error = "您已经参加过抽奖活动", sn = code, success = false }));
                            }
                        }
                        else
                        {
                            return(JsonConvert.SerializeObject(new { error = "只有关注微信用户才能参与抽奖", sn = code, success = false }));
                        }
                    }
                    else
                    {
                        return(JsonConvert.SerializeObject(new { error = "活动尚未开始,请稍后再关注", sn = code, success = false }));
                    }
                }

                return(JsonConvert.SerializeObject(new { error = "", sn = code, success = false }));
            }
            catch (Exception ex)
            {
                return(JsonConvert.SerializeObject(new { error = "", sn = code, success = false }));

                throw;
            }
        }
예제 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            shijianchuo = DateTime.Now.ToString("yyyyMMddhhmmssfff");

            string u  = Request.ServerVariables["HTTP_USER_AGENT"];
            bool   bo = detectmobilebrowser.HttpUserAgent(u);

            RequestUrl = Request.ServerVariables["SERVER_NAME"].ToLower();
            try
            {
                //根据域名读取商户ID,如果没有绑定域名直接跳转后台
                if (Domain_def.Domain_yanzheng(RequestUrl))//如果符合shop101.etown.cn的格式,则从多微信商户基本信息表中获取comid
                {
                    //先通过正则表达式获取COMid
                    comid = Int32.Parse(Domain_def.Domain_Huoqu(RequestUrl).ToString());
                    if (comid == 0)
                    {
                        comid = new WeiXinBasicData().GetWeiXinBasicByDomain(RequestUrl).Comid;
                    }
                }
                else
                {
                    B2b_company_info companyinfo = B2bCompanyData.GetComId(RequestUrl);
                    if (companyinfo != null)
                    {
                        comid = companyinfo.Com_id;
                    }
                }
            }
            catch
            {
                errlog += "1,";
            }


            if (comid != 0)
            {
                if (bo == false)
                {
                    if (comid == 101)
                    {
                        // Response.Redirect("http://vctrip.etown.cn/");
                    }
                    // Response.Redirect("http://shop" + comid + ".etown.cn");
                }



                //获取微信平台端code
                weixincode = Request["code"].ConvertTo <string>("");
                openid     = Request["openid"].ConvertTo <string>("");
                weixinpass = Request["weixinpass"].ConvertTo <string>("");

                GetMemberCard(openid, weixincode, weixinpass, comid);//登陆或得到会员信息
            }


            //得到活动ID
            actid = Request["actid"].ConvertTo <int>(0);
            //非班车抽奖活动,则得到最新运行的上线活动id(现在只是班车抽奖传递ntime参数)
            if (actid == 0 && Request["ntime"].ConvertTo <string>("") == "")
            {
                //得到最新运行的,上线的活动ID
                actid = MemberERNIEData.ERNIETOPgetid(comid);
            }

            if (actid == 0)
            {
                actstate = 0;
            }
            else
            {
                actstate = 1;
            }


            //抽奖活动
            Member_ERNIE erniemodel = new Member_ERNIE();
            //奖项
            Member_ERNIE_Award Awardmodel = new Member_ERNIE_Award();

            var pro = MemberERNIEData.ERNIEGetActById(actid);

            if (pro != null)
            {
                Com_id        = pro.Com_id;
                Title         = pro.Title;
                ERNIE_type    = pro.ERNIE_type;  //摇奖类型,大转盘
                ERNIE_star    = pro.ERNIE_star;
                ERNIE_end     = pro.ERNIE_end;
                ERNIE_RateNum = pro.ERNIE_RateNum; //摇奖基数
                ERNIE_Limit   = pro.ERNIE_Limit;   //摇奖限定,每个账户一次,还是每天一次或多次
                Limit_Num     = pro.Limit_Num;     //摇奖限定次数
                Runstate      = pro.Runstate;
                Remark        = pro.Remark;
            }
            //获取一等奖
            var Awardpro1 = MemberERNIEData.ERNIEAwardget(actid, 1);

            if (Awardpro1 != null)
            {
                Award_title1 = Awardpro1.Award_title;
                Award_num1   = Awardpro1.Award_num;
                Award_class1 = Awardpro1.Award_class;
                Id1          = Awardpro1.Id;
            }
            //获取二等奖
            var Awardpro2 = MemberERNIEData.ERNIEAwardget(actid, 2);

            if (Awardpro2 != null)
            {
                Award_title2 = Awardpro2.Award_title;
                Award_num2   = Awardpro2.Award_num;
                Award_class2 = Awardpro2.Award_class;
                Id1          = Awardpro2.Id;
            }
            //获取三等奖
            var Awardpro3 = MemberERNIEData.ERNIEAwardget(actid, 3);

            if (Awardpro3 != null)
            {
                Award_title3 = Awardpro3.Award_title;
                Award_num3   = Awardpro3.Award_num;
                Award_class3 = Awardpro3.Award_class;
                Id1          = Awardpro3.Id;
            }

            //读取活动信息
            var erniedate = MemberERNIEData.ERNIEGetActById(actid);

            if (erniedate != null)
            {
                if (erniedate.Runstate == 1 && erniedate.Online == 1 && erniedate.ERNIE_star < DateTime.Now && erniedate.ERNIE_end.AddDays(1) > DateTime.Now)
                {
                    var ERNIE_Limit = erniedate.ERNIE_Limit; //抽奖类型
                    var Limit_Num   = erniedate.Limit_Num;   //可抽奖次数
                    //读取用户信息
                    B2bCrmData crmmodel   = new B2bCrmData();
                    B2b_crm    memberinfo = crmmodel.b2b_crmH5(openid, erniedate.Com_id);
                    if (memberinfo != null)
                    {
                        if (memberinfo != null)
                        {
                            ERNIE_Record recordinfo = new ERNIE_Record();
                            recordinfo.ERNIE_openid = openid;
                            recordinfo.ERNIE_uid    = 0;
                            recordinfo.ERNIE_id     = actid;

                            var searchdate = MemberERNIEData.SearchChoujiang(recordinfo, ERNIE_Limit);//查询是否抽过奖
                            if (searchdate < Limit_Num)
                            {
                                if (AccountWeixin != "")//判断登陆状态并有微信号
                                {
                                    choujiangcishu = Limit_Num - searchdate;
                                }
                                else
                                {
                                    openid = "";
                                }
                            }
                        }
                    }
                }
            }


            string ntime    = Request["ntime"].ConvertTo <string>("");
            string md5ntime = Request["md5ntime"].ConvertTo <string>("");

            string tmd5ntime = EncryptionHelper.ToMD5(ntime + "lixh1210", "UTF-8");

            if (ntime != "")
            {
                if (md5ntime == tmd5ntime)
                {
                    if (DateTime.Parse(ntime).ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd"))
                    {
                    }
                    else
                    {
                        //非当日抽奖
                        actstate = 0;
                    }
                }
                else
                {
                    actstate = 0;
                }
            }
        }