public void WriteTrafficRecords(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            int      num  = 0;
            int      num2 = 0;
            int      num3 = 0;
            int      num4 = 0;
            int      num5 = 0;
            string   text;
            DateTime date;

            if (context.Request.HttpMethod.ToLower() == "post")
            {
                num  = context.Request["PageType"].ToInt(0);
                num2 = context.Request["SourceId"].ToInt(0);
                num5 = context.Request["StoreId"].ToInt(0);
                if (num >= 0 && num2 > 0 && num2 <= 99 && (num2 <= 3 || num2 >= 99) && num <= 99 && (num <= 3 || num >= 99))
                {
                    text = "";
                    Guid     guid;
                    DateTime now;
                    if (num2 == 3)
                    {
                        string text2 = context.Request["SessionId"];
                        if (!string.IsNullOrWhiteSpace(text2))
                        {
                            MemberInfo memberInfo = MemberProcessor.FindMemberBySessionId(text2);
                            if (memberInfo == null)
                            {
                                guid = Guid.NewGuid();
                                text = guid.ToString().Replace("-", "");
                                HttpCookie httpCookie = new HttpCookie("t_sessionId");
                                httpCookie.HttpOnly = true;
                                httpCookie.Value    = text;
                                HttpCookie httpCookie2 = httpCookie;
                                now = DateTime.Now;
                                httpCookie2.Expires = now.AddYears(1);
                                HttpContext.Current.Response.Cookies.Add(httpCookie);
                                context.Response.Write("error");
                                return;
                            }
                            text = memberInfo.UserId.ToString();
                        }
                        else
                        {
                            try
                            {
                                int userId = HiContext.Current.UserId;
                                if (userId > 0)
                                {
                                    text = userId.ToString();
                                }
                            }
                            catch (Exception)
                            {
                            }
                        }
                        if (string.IsNullOrWhiteSpace(text))
                        {
                            if (context.Request.Cookies.Get("t_sessionId") != null)
                            {
                                text = context.Request.Cookies.Get("t_sessionId").Value;
                            }
                            if (string.IsNullOrWhiteSpace(text))
                            {
                                guid = Guid.NewGuid();
                                text = guid.ToString().Replace("-", "");
                                HttpCookie httpCookie3 = new HttpCookie("t_sessionId");
                                httpCookie3.HttpOnly = true;
                                httpCookie3.Value    = text;
                                HttpCookie httpCookie4 = httpCookie3;
                                now = DateTime.Now;
                                httpCookie4.Expires = now.AddYears(1);
                                HttpContext.Current.Response.Cookies.Add(httpCookie3);
                                context.Response.Write("2");
                                return;
                            }
                        }
                    }
                    else if (HiContext.Current.UserId == 0)
                    {
                        if (context.Request.Cookies.Get("t_sessionId") != null)
                        {
                            text = context.Request.Cookies.Get("t_sessionId").Value;
                        }
                        if (string.IsNullOrWhiteSpace(text))
                        {
                            guid = Guid.NewGuid();
                            text = guid.ToString().Replace("-", "");
                            HttpCookie httpCookie5 = new HttpCookie("t_sessionId");
                            httpCookie5.HttpOnly = true;
                            httpCookie5.Value    = text;
                            HttpCookie httpCookie6 = httpCookie5;
                            now = DateTime.Now;
                            httpCookie6.Expires = now.AddYears(1);
                            HttpContext.Current.Response.Cookies.Add(httpCookie5);
                            context.Response.Write("2");
                            return;
                        }
                    }
                    else
                    {
                        text = HiContext.Current.UserId.ToString();
                    }
                    now  = DateTime.Now;
                    date = now.Date;
                    int year  = date.Year;
                    int month = date.Month;
                    int day   = date.Day;
                    if (3 == num)
                    {
                        num3 = context.Request["ProductId"].ToInt(0);
                        num4 = context.Request["ActivityType"].ToInt(0);
                        if (num4 > 0 && num4 <= 5 && (num4 != 4 || (num2 != 1 && num2 != 99)) && num3 > 0)
                        {
                            goto IL_04a0;
                        }
                        return;
                    }
                    goto IL_04a0;
                }
                return;
            }
            goto IL_0539;
IL_0539:
            context.Response.Write("0");
            return;

IL_04a0:
            AccessRecordModel accessRecordModel = new AccessRecordModel();

            accessRecordModel.AccessDate   = date;
            accessRecordModel.IpAddress    = text;
            accessRecordModel.PageType     = num;
            accessRecordModel.SourceId     = num2;
            accessRecordModel.ProductId    = num3;
            accessRecordModel.ActivityType = num4;
            accessRecordModel.StoreId      = num5;
            List <AccessRecordModel> list = (List <AccessRecordModel>)HiCache.Get("DataCache-AccessRecords");

            if (list == null)
            {
                list = new List <AccessRecordModel>();
                list.Add(accessRecordModel);
                HiCache.Insert("DataCache-AccessRecords", list, 3600);
            }
            else
            {
                list.Add(accessRecordModel);
            }
            goto IL_0539;
        }
示例#2
0
        private static void ManageProductAccess(DateTime dtNow, List <ProductDailyAccessStatisticsInfo> ProductStatisticlst, AccessRecordModel AccessRecord, IList <SourceIpRecordsInfo> IpLst, List <SourceIpRecordsInfo> NewIpLst)
        {
            ProductDailyAccessStatisticsInfo productDailyAccessStatisticsInfo = ProductStatisticlst.FirstOrDefault((ProductDailyAccessStatisticsInfo c) => c.ProductId == AccessRecord.ProductId && c.ActivityType == AccessRecord.ActivityType);
            bool flag  = true;
            bool flag2 = true;

            if (IpLst.Count((SourceIpRecordsInfo c) => c.SourceIP == AccessRecord.IpAddress && c.ProductId == AccessRecord.ProductId && c.PageType == 3) == 0 && NewIpLst.Count((SourceIpRecordsInfo c) => c.SourceIP == AccessRecord.IpAddress && c.ProductId == AccessRecord.ProductId && c.PageType == 3) == 0)
            {
                SourceIpRecordsInfo sourceIpRecordsInfo = new SourceIpRecordsInfo();
                sourceIpRecordsInfo.ProductId  = AccessRecord.ProductId;
                sourceIpRecordsInfo.RecordDate = dtNow.Date;
                sourceIpRecordsInfo.SourceIP   = AccessRecord.IpAddress;
                sourceIpRecordsInfo.PageType   = 3;
                NewIpLst.Add(sourceIpRecordsInfo);
                flag2 = false;
            }
            if (productDailyAccessStatisticsInfo == null)
            {
                productDailyAccessStatisticsInfo                 = new ProductDailyAccessStatisticsInfo();
                productDailyAccessStatisticsInfo.Day             = dtNow.Day;
                productDailyAccessStatisticsInfo.Month           = dtNow.Month;
                productDailyAccessStatisticsInfo.PaymentNum      = 0;
                productDailyAccessStatisticsInfo.ProductId       = AccessRecord.ProductId;
                productDailyAccessStatisticsInfo.PV              = 1;
                productDailyAccessStatisticsInfo.SaleAmount      = decimal.Zero;
                productDailyAccessStatisticsInfo.SaleQuantity    = 0;
                productDailyAccessStatisticsInfo.StatisticalDate = dtNow.Date;
                if (flag2)
                {
                    productDailyAccessStatisticsInfo.UV = 0;
                }
                else
                {
                    productDailyAccessStatisticsInfo.UV = 1;
                }
                productDailyAccessStatisticsInfo.Year         = dtNow.Year;
                productDailyAccessStatisticsInfo.ActivityType = AccessRecord.ActivityType;
                ProductStatisticlst.Add(productDailyAccessStatisticsInfo);
            }
            else
            {
                productDailyAccessStatisticsInfo.PV++;
                if (!flag)
                {
                    productDailyAccessStatisticsInfo.UV++;
                }
            }
        }
示例#3
0
        private static void ManageDailyAcesssRecords(DateTime dtNow, IList <SourceIpRecordsInfo> IpLst, IList <DailyAccessStatisticsInfo> DailyLst, List <SourceIpRecordsInfo> NewIpLst, AccessRecordModel AccessRecord, List <ProductDailyAccessStatisticsInfo> ProductStatisticlst)
        {
            TrafficJob.ManageAllPage(dtNow, IpLst, DailyLst, NewIpLst, AccessRecord);
            bool flag = TrafficJob.IsExiteSourceIp(IpLst, NewIpLst, AccessRecord.IpAddress, AccessRecord.PageType);

            if (AccessRecord.ProductId > 0 && AccessRecord.PageType == 3)
            {
                DailyAccessStatisticsInfo dailyAccessStatisticsInfo = DailyLst.FirstOrDefault((DailyAccessStatisticsInfo c) => c.SourceId == AccessRecord.SourceId && c.PageType == AccessRecord.PageType && c.StoreId == AccessRecord.StoreId);
                if (dailyAccessStatisticsInfo != null)
                {
                    dailyAccessStatisticsInfo.PV++;
                    if (!flag)
                    {
                        dailyAccessStatisticsInfo.UV++;
                    }
                    dailyAccessStatisticsInfo.StoreId = AccessRecord.StoreId;
                }
                else
                {
                    dailyAccessStatisticsInfo                 = new DailyAccessStatisticsInfo();
                    dailyAccessStatisticsInfo.Day             = dtNow.Day;
                    dailyAccessStatisticsInfo.Month           = dtNow.Month;
                    dailyAccessStatisticsInfo.PV              = 1;
                    dailyAccessStatisticsInfo.StatisticalDate = dtNow.Date;
                    if (!flag)
                    {
                        dailyAccessStatisticsInfo.UV = 1;
                    }
                    dailyAccessStatisticsInfo.Year     = dtNow.Year;
                    dailyAccessStatisticsInfo.PageType = AccessRecord.PageType;
                    dailyAccessStatisticsInfo.SourceId = AccessRecord.SourceId;
                    dailyAccessStatisticsInfo.StoreId  = AccessRecord.StoreId;
                    DailyLst.Add(dailyAccessStatisticsInfo);
                }
                TrafficJob.ManageProductAccess(dtNow, ProductStatisticlst, AccessRecord, IpLst, NewIpLst);
            }
            else
            {
                if (!flag)
                {
                    SourceIpRecordsInfo sourceIpRecordsInfo = new SourceIpRecordsInfo();
                    sourceIpRecordsInfo.ProductId  = 0;
                    sourceIpRecordsInfo.RecordDate = dtNow.Date;
                    sourceIpRecordsInfo.SourceIP   = AccessRecord.IpAddress;
                    sourceIpRecordsInfo.PageType   = AccessRecord.PageType;
                    NewIpLst.Add(sourceIpRecordsInfo);
                }
                DailyAccessStatisticsInfo dailyAccessStatisticsInfo2 = DailyLst.FirstOrDefault((DailyAccessStatisticsInfo c) => c.SourceId == AccessRecord.SourceId && c.PageType == AccessRecord.PageType && c.StoreId == AccessRecord.StoreId);
                if (dailyAccessStatisticsInfo2 != null)
                {
                    dailyAccessStatisticsInfo2.PV++;
                    if (!flag)
                    {
                        dailyAccessStatisticsInfo2.UV++;
                    }
                    dailyAccessStatisticsInfo2.StoreId = AccessRecord.StoreId;
                }
                else
                {
                    dailyAccessStatisticsInfo2                 = new DailyAccessStatisticsInfo();
                    dailyAccessStatisticsInfo2.Day             = dtNow.Day;
                    dailyAccessStatisticsInfo2.Month           = dtNow.Month;
                    dailyAccessStatisticsInfo2.PV              = 1;
                    dailyAccessStatisticsInfo2.StatisticalDate = dtNow.Date;
                    if (!flag)
                    {
                        dailyAccessStatisticsInfo2.UV = 1;
                    }
                    dailyAccessStatisticsInfo2.Year     = dtNow.Year;
                    dailyAccessStatisticsInfo2.PageType = AccessRecord.PageType;
                    dailyAccessStatisticsInfo2.SourceId = AccessRecord.SourceId;
                    dailyAccessStatisticsInfo2.StoreId  = AccessRecord.StoreId;
                    DailyLst.Add(dailyAccessStatisticsInfo2);
                }
            }
        }
示例#4
0
        private static void ManageAllPage(DateTime dtNow, IList <SourceIpRecordsInfo> IpLst, IList <DailyAccessStatisticsInfo> DailyLst, List <SourceIpRecordsInfo> NewIpLst, AccessRecordModel AccessRecord)
        {
            bool flag = false;

            if (!TrafficJob.IsExiteSourceIp(IpLst, NewIpLst, AccessRecord.IpAddress, 4))
            {
                SourceIpRecordsInfo sourceIpRecordsInfo = new SourceIpRecordsInfo();
                sourceIpRecordsInfo.ProductId  = 0;
                sourceIpRecordsInfo.RecordDate = dtNow.Date;
                sourceIpRecordsInfo.SourceIP   = AccessRecord.IpAddress;
                sourceIpRecordsInfo.PageType   = 4;
                NewIpLst.Add(sourceIpRecordsInfo);
            }
            else
            {
                flag = true;
            }
            DailyAccessStatisticsInfo dailyAccessStatisticsInfo = DailyLst.FirstOrDefault((DailyAccessStatisticsInfo c) => c.PageType == 4 && c.SourceId == AccessRecord.SourceId && c.StoreId == AccessRecord.StoreId);

            if (dailyAccessStatisticsInfo != null)
            {
                dailyAccessStatisticsInfo.PV++;
                if (!flag)
                {
                    dailyAccessStatisticsInfo.UV++;
                }
            }
            else
            {
                dailyAccessStatisticsInfo                 = new DailyAccessStatisticsInfo();
                dailyAccessStatisticsInfo.Day             = dtNow.Day;
                dailyAccessStatisticsInfo.Month           = dtNow.Month;
                dailyAccessStatisticsInfo.PV              = 1;
                dailyAccessStatisticsInfo.StatisticalDate = dtNow.Date;
                if (!flag)
                {
                    dailyAccessStatisticsInfo.UV = 1;
                }
                dailyAccessStatisticsInfo.Year     = dtNow.Year;
                dailyAccessStatisticsInfo.PageType = 4;
                dailyAccessStatisticsInfo.SourceId = AccessRecord.SourceId;
                dailyAccessStatisticsInfo.StoreId  = AccessRecord.StoreId;
                DailyLst.Add(dailyAccessStatisticsInfo);
            }
        }