Пример #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;
            }
        }