Example #1
0
        /// <summary>
        /// 首页里最近三十天数据的活跃用户
        /// </summary>
        private void GetActivityFor30()
        {
            Sjqd_StatUsersService ds      = Sjqd_StatUsersService.GetInstance();
            HttpRequest           Request = HttpContext.Current.Request;
            int platformsid = Convert.ToInt32(Request["platform"]);
            int softsid     = Convert.ToInt32(Request["soft"]);
            ///type 1 为新增,2 为活跃
            int type = Convert.ToInt32(Request["type"]);

            ///检查权限
            CheckHasRight(softsid, "Reports/Default.aspx");
            List <int> X_DateTime1 = new List <int>();

            endtime = UtilityService.GetInstance().GetMaxTimeCache(net91com.Stat.Core.PeriodOptions.Daily, ReportType.UserUseNewActivity, CacheTimeOption.TenMinutes);

            List <SoftUser> users      = ds.GetAllSoftUsersCache(endtime.AddDays(-30), endtime, softsid, platformsid, net91com.Stat.Core.PeriodOptions.Daily, net91com.Core.CacheTimeOption.HalfDay).OrderBy(p => p.StatDate).ToList();
            List <DateTime> X_DateTime = users.Select(p => p.StatDate).Distinct().ToList();

            if (users.Count != 0)
            {
                SetxAxisJson(X_DateTime);
                SeriesJsonStr1 = JsonConvert.SerializeObject(GetDataJsonList(X_DateTime, users, type));
            }
            else
            {
                AxisJsonStr1   = "{}";
                SeriesJsonStr1 = "[]";
            }


            string result = "{ x:" + AxisJsonStr1 + "," + "y:" + SeriesJsonStr1 + "}";

            HttpContext.Current.Response.Write(result);
        }
Example #2
0
 /// <summary>
 /// 绑定数据
 /// </summary>
 protected void BindData()
 {
     MaxTime = DateTime.MinValue;
     ///选择所筛选的所有软件
     for (int softid = 0; softid < SelectedSofts.Count; softid++)
     {
         Soft SingleSoftInfo = SelectedSofts[softid];
         for (int i = 0; i < SelectedPlatforms.Count; i++)
         {
             foreach (MobileOption tempplat in SingleSoftInfo.Platforms)
             {
                 ///他选出的平台加上和自己支持平台的交集
                 if (tempplat == SelectedPlatforms[i] || SelectedPlatforms[i] == 0)
                 {
                     List <SoftUser> users = null;
                     users = Sjqd_StatUsersService.GetInstance().GetSoftUserListCache(BeginTime, EndTime, SingleSoftInfo.ID, (int)SelectedPlatforms[i], Period, loginService, CacheTimeOption.TenMinutes).OrderBy(p => p.StatDate)
                             .Where(p => p.LostNum != -1).ToList();
                     if (users != null && users.Count != 0)
                     {
                         DateTime maxTime = users.Max(p => p.StatDate);
                         if (maxTime > MaxTime)
                         {
                             MaxTime = maxTime;
                         }
                         ListAll.Add(users);
                     }
                 }
             }
         }
     }
 }
Example #3
0
        /// <summary>
        /// 获取数据加上绑定数据
        /// </summary>
        protected void BindData()
        {
            //进入分渠道统计
            if (HeadControl1.Channel1.ChannelValues.Count != 0)
            {
                QuDao = true;
                var channels = HeadControl1.Channel1.ChannelValues;
                if (Period == net91com.Stat.Core.PeriodOptions.TimeOfDay || Period == net91com.Stat.Core.PeriodOptions.Hours)
                {
                    for (int i = 0; i < channels.Count; i++)
                    {
                        //小时和每小时将其和到一条曲线中去了
                        //List<SoftUser> users = Sjqd_StatUsersByChannelsService.GetInstance().GetChannelUsersByHoursDataCache(
                        //    BeginTime, EndTime, SelectedSofts[0].ID, channels[i].Platform, Period, channels[i].ChannelType, Convert.ToInt32(channels[i].ChannelValue), channels[i].ChannelText, loginService,CacheTimeOption.TenMinutes).OrderBy(p => p.StatDate).ToList();

                        net91com.Reports.Services.CommonServices.SjqdUserStat.StatUsersService suService = new net91com.Reports.Services.CommonServices.SjqdUserStat.StatUsersService();
                        List <net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers>         ssUsers;
                        ssUsers = suService.GetStatUsersByHour(SelectedSofts[0].ID, channels[i].Platform, channels[i].ChannelType, Convert.ToInt32(channels[i].ChannelValue), (int)Period, BeginTime, EndTime);
                        List <SoftUser> users = new List <SoftUser>();
                        foreach (net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers u in ssUsers)
                        {
                            SoftUser softuser = new SoftUser();
                            softuser.StatDate  = u.StatDate;
                            softuser.SoftId    = SelectedSofts[0].ID;
                            softuser.Platform  = channels[i].Platform;
                            softuser.ActiveNum = u.ActiveUserCount - u.NewUserCount;
                            softuser.Hour      = u.StatHour;
                            softuser.NewNum    = u.NewUserCount;
                            softuser.UseNum    = u.ActiveUserCount;
                            users.Add(softuser);
                        }
                        users = users.OrderBy(p => p.StatDate).ToList();

                        if (users.Count != 0)
                        {
                            ListAll.Add(users);
                            QuDaoList.Add(i);
                        }
                        //获取对比曲线
                        if (HeadControl1.CompareTimeType > 0)
                        {
                            //List<SoftUser> usersCompare = Sjqd_StatUsersByChannelsService.GetInstance().GetChannelUsersByHoursDataCache(
                            //BeginCompareTime, EndCompareTime, SelectedSofts[0].ID, channels[i].Platform, Period, channels[i].ChannelType, Convert.ToInt32(channels[i].ChannelValue), channels[i].ChannelText, loginService,CacheTimeOption.TenMinutes).OrderBy(p => p.StatDate).ToList();

                            List <net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers> ssUsersComp;
                            ssUsersComp = suService.GetStatUsersByHour(SelectedSofts[0].ID, channels[i].Platform, channels[i].ChannelType, Convert.ToInt32(channels[i].ChannelValue), (int)Period, BeginCompareTime, EndCompareTime);
                            List <SoftUser> usersCompare = new List <SoftUser>();
                            foreach (net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers u in ssUsersComp)
                            {
                                SoftUser softuser = new SoftUser();
                                softuser.StatDate  = u.StatDate;
                                softuser.SoftId    = SelectedSofts[0].ID;
                                softuser.Platform  = channels[i].Platform;
                                softuser.ActiveNum = u.ActiveUserCount - u.NewUserCount;
                                softuser.Hour      = u.StatHour;
                                softuser.NewNum    = u.NewUserCount;
                                softuser.UseNum    = u.ActiveUserCount;
                                usersCompare.Add(softuser);
                            }
                            usersCompare = usersCompare.OrderBy(p => p.StatDate).ToList();


                            if (usersCompare != null && usersCompare.Count != 0)
                            {
                                ListAllForCompare.Add(usersCompare);
                            }
                        }
                    }
                }
                else
                {
                    for (int i = 0; i < channels.Count; i++)
                    {
                        List <SoftUser> users = Sjqd_StatUsersByChannelsService.GetInstance().GetSoftUserChanelListCache(BeginTime, EndTime, SelectedSofts[0].ID, channels[i].Platform, Period,
                                                                                                                         channels[i].ChannelType, Convert.ToInt32(channels[i].ChannelValue), channels[i].ChannelText, false, loginService, CacheTimeOption.TenMinutes).OrderBy(p => p.StatDate).ToList();

                        if (users != null && users.Count != 0)
                        {
                            ListAll.Add(users);
                            QuDaoList.Add(i);
                        }
                        //获取对比曲线
                        if (HeadControl1.CompareTimeType > 0)
                        {
                            List <SoftUser> usersCompare = Sjqd_StatUsersByChannelsService.GetInstance().GetSoftUserChanelListCache(BeginCompareTime, EndCompareTime, SelectedSofts[0].ID, channels[i].Platform, Period,
                                                                                                                                    channels[i].ChannelType, Convert.ToInt32(channels[i].ChannelValue), channels[i].ChannelText, false, loginService, CacheTimeOption.TenMinutes).OrderBy(p => p.StatDate).ToList();

                            if (usersCompare != null && usersCompare.Count != 0)
                            {
                                ListAllForCompare.Add(usersCompare);
                            }
                        }
                    }
                }
            }
            else
            {
                //选择所筛选的所有软件
                for (int softid = 0; softid < SelectedSofts.Count; softid++)
                {
                    Soft SingleSoftInfo = SelectedSofts[softid];
                    for (int i = 0; i < SelectedPlatforms.Count; i++)
                    {
                        foreach (MobileOption tempplat in SingleSoftInfo.Platforms)
                        {
                            ///他选出的平台加上和自己支持平台的交集
                            if (tempplat == SelectedPlatforms[i] || SelectedPlatforms[i] == 0)
                            {
                                List <SoftUser> users = null;
                                if (!SuperPeriod)
                                {
                                    users = Sjqd_StatUsersService.GetInstance().GetSoftUserListCache(BeginTime, EndTime, SingleSoftInfo.ID, (int)SelectedPlatforms[i], Period, loginService, CacheTimeOption.TenMinutes).OrderBy(p => p.StatDate).ToList();
                                }
                                else
                                {
                                    //users = StatUsersByHourService.GetInstance().GetHourUserDataCache(SingleSoftInfo.ID, (int)SelectedPlatforms[i], BeginTime, EndTime, Period, loginService,CacheTimeOption.TenMinutes).OrderBy(p => p.StatDate).ToList();
                                    net91com.Reports.Services.CommonServices.SjqdUserStat.StatUsersService suService = new net91com.Reports.Services.CommonServices.SjqdUserStat.StatUsersService();
                                    List <net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers>         ssUsers;
                                    ssUsers = suService.GetStatUsersByHour(SingleSoftInfo.ID, (int)SelectedPlatforms[i], ChannelTypeOptions.Category, 0, (int)Period, BeginTime, EndTime);
                                    users   = new List <SoftUser>();
                                    foreach (net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers u in ssUsers)
                                    {
                                        SoftUser softuser = new SoftUser();
                                        softuser.StatDate  = u.StatDate;
                                        softuser.SoftId    = SingleSoftInfo.ID;
                                        softuser.Platform  = (int)SelectedPlatforms[i];
                                        softuser.ActiveNum = u.ActiveUserCount - u.NewUserCount;
                                        softuser.Hour      = u.StatHour;
                                        softuser.NewNum    = u.NewUserCount;
                                        softuser.UseNum    = u.ActiveUserCount;
                                        users.Add(softuser);
                                    }
                                    users = users.OrderBy(p => p.StatDate).ToList();
                                }
                                if (users != null && users.Count != 0)
                                {
                                    ListAll.Add(users);
                                    RealSoftLine.Add((int)SelectedPlatforms[i]);
                                }
                                //获取对比曲线
                                if (HeadControl1.CompareTimeType > 0)
                                {
                                    List <SoftUser> usersCompare = null;
                                    if (!SuperPeriod)
                                    {
                                        usersCompare = Sjqd_StatUsersService.GetInstance().GetSoftUserListCache(BeginCompareTime, EndCompareTime, SingleSoftInfo.ID, (int)SelectedPlatforms[i], Period, loginService, CacheTimeOption.TenMinutes).OrderBy(p => p.StatDate).ToList();
                                    }
                                    else
                                    {
                                        //usersCompare = StatUsersByHourService.GetInstance().GetHourUserDataCache(SingleSoftInfo.ID, (int)SelectedPlatforms[i], BeginCompareTime, EndCompareTime, Period, loginService,CacheTimeOption.TenMinutes).OrderBy(p => p.StatDate).ToList();
                                        net91com.Reports.Services.CommonServices.SjqdUserStat.StatUsersService suService = new net91com.Reports.Services.CommonServices.SjqdUserStat.StatUsersService();
                                        List <net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers>         ssUsers;
                                        ssUsers      = suService.GetStatUsersByHour(SingleSoftInfo.ID, (int)SelectedPlatforms[i], ChannelTypeOptions.Category, 0, (int)Period, BeginCompareTime, EndCompareTime);
                                        usersCompare = new List <SoftUser>();
                                        foreach (net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers u in ssUsers)
                                        {
                                            SoftUser softuser = new SoftUser();
                                            softuser.StatDate  = u.StatDate;
                                            softuser.SoftId    = SingleSoftInfo.ID;
                                            softuser.Platform  = (int)SelectedPlatforms[i];
                                            softuser.ActiveNum = u.ActiveUserCount - u.NewUserCount;
                                            softuser.Hour      = u.StatHour;
                                            softuser.NewNum    = u.NewUserCount;
                                            softuser.UseNum    = u.ActiveUserCount;
                                            usersCompare.Add(softuser);
                                        }
                                        usersCompare = usersCompare.OrderBy(p => p.StatDate).ToList();
                                    }

                                    if (usersCompare != null && usersCompare.Count != 0)
                                    {
                                        ListAllForCompare.Add(usersCompare);
                                    }
                                }
                                break;
                            }
                        }
                    }
                }
                HeadControl1.Channel1.SelectedText  = "选择渠道";
                HeadControl1.Channel1.SelectedValue = "";
            }
            //一条线数据都没有
            if (ListAll.Count == 0)
            {
                return;
            }
            //生成所有的Table
            GetAllTableHtml();
            //生成所有曲线的JSON
            GetAllLineJson();
        }
Example #4
0
        private List <SoftUser> GetComplexPlatUserData_GetData(HttpContext context)
        {
            DateTime begintime = Convert.ToDateTime(context.Request["begintime"]);
            DateTime endtime   = Convert.ToDateTime(context.Request["endtime"]);
            int      soft      = Convert.ToInt32(context.Request["soft"]);
            int      plat      = Convert.ToInt32(context.Request["platform"]);
            int      modetype  = Convert.ToInt32(context.Request["modetype"]);
            string   version   = context.Request["version"];
            int      realplat1 = 1;
            int      realplat2 = 7;

            if (plat == 4)
            {
                realplat1 = 4;
                realplat2 = 9;
            }
            if (1 == modetype)
            {
                string channelNames = context.Request["channelnames"];
                string channelids   = context.Request["channelids"];
                //默认加一项进去
                var      list         = new List <ChannelRight>();
                string[] channels     = channelids.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                string[] channelarray = channelNames.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

                if (channels.Length == 0)
                {
                    channels     = new[] { "Customer_0" };
                    channelarray = new[] { "不区分渠道" };
                }
                //非渠道选项
                if (channels.Length != channelarray.Length)
                {
                    return(new List <SoftUser>());
                }
                var channelDic = new Dictionary <string, string>();
                for (int i = 0; i < channels.Count(); i++)
                {
                    string[] strs = channels[i].Split(new[] { '_' }, StringSplitOptions.RemoveEmptyEntries);
                    if (strs.Length == 2)
                    {
                        list.Add(new ChannelRight
                        {
                            ChannelType = (ChannelTypeOptions)Enum.Parse(typeof(ChannelTypeOptions), strs[0]),
                            ChannelID   = Convert.ToInt32(strs[1])
                        });
                        channelDic.Add(channels[i], channelarray[i]);
                    }
                }
                Sjqd_StatUsersByChannelsService service = Sjqd_StatUsersByChannelsService.GetInstance();

                var lists = new List <SoftUser>();

                if (list.Count == 1 && list[0].ChannelID == 0)
                {
                    List <SoftUser> result = Sjqd_StatUsersService.GetInstance()
                                             .GetSoftUserListCache(begintime, endtime,
                                                                   soft, realplat1
                                                                   , PeriodOptions.Daily,
                                                                   new URLoginService(),
                                                                   CacheTimeOption.TenMinutes)
                                             .OrderBy(p => p.StatDate)
                                             .ToList();
                    List <SoftUser> result2 = Sjqd_StatUsersService.GetInstance()
                                              .GetSoftUserListCache(begintime, endtime,
                                                                    soft, realplat2,
                                                                    PeriodOptions.Daily,
                                                                    new URLoginService(),
                                                                    CacheTimeOption.TenMinutes)
                                              .OrderBy(p => p.StatDate)
                                              .ToList();
                    if (result.Count() != 0)
                    {
                        lists.AddRange(result);
                    }
                    if (result2.Count() != 0)
                    {
                        lists.AddRange(result2);
                    }
                }
                else
                {
                    for (int i = 0; i < list.Count; i++)
                    {
                        List <SoftUser> result = service.GetSoftUserChanelListCache(begintime, endtime, soft, realplat1,
                                                                                    PeriodOptions.Daily,
                                                                                    list[i].ChannelType,
                                                                                    list[i].ChannelID, channelDic[
                                                                                        list[i]
                                                                                        .ChannelType +
                                                                                        "_" +
                                                                                        list[i].ChannelID], false,
                                                                                    new URLoginService(),
                                                                                    CacheTimeOption.TenMinutes);
                        List <SoftUser> result2 = service.GetSoftUserChanelListCache(begintime, endtime, soft, realplat2,
                                                                                     PeriodOptions.Daily,
                                                                                     list[i].ChannelType,
                                                                                     list[i].ChannelID, channelDic[
                                                                                         list[i]
                                                                                         .ChannelType +
                                                                                         "_" +
                                                                                         list[i].ChannelID], false,
                                                                                     new URLoginService(),
                                                                                     CacheTimeOption.TenMinutes);
                        if (result.Count() != 0)
                        {
                            lists.AddRange(result);
                        }
                        if (result2.Count() != 0)
                        {
                            lists.AddRange(result2);
                        }
                    }
                }

                return
                    (lists.GroupBy(p => p.StatDate)
                     .Select(
                         p =>
                         new SoftUser
                {
                    StatDate = p.Key,
                    NewNum = p.Sum(l => l.NewNum),
                    ActiveNum = p.Sum(l => l.NewNum) + p.Sum(l => l.ActiveNum)
                })
                     .ToList());
            }
            else
            {
                List <string> lstver = version.Split(',').ToList();
                var           lst    =
                    new List <Sjqd_StatUsers>();

                var suService = new StatUsersService();
                for (int i = 0; i < lstver.Count; i++)
                {
                    List <Sjqd_StatUsers> lstverdata1 = suService.GetStatUsersByVersion(soft, realplat1,
                                                                                        ChannelTypeOptions.Category, 0,
                                                                                        lstver[i],
                                                                                        (int)PeriodOptions.Daily,
                                                                                        begintime, endtime);
                    if (lstverdata1.Count != 0)
                    {
                        lst.AddRange(lstverdata1);
                    }
                }


                //var lstverdata2 = sbv.GetUsersByVersionCache(soft, realplat1, begintime, endtime, PeriodOptions.Daily, lstver,
                //           CacheTimeOption.TenMinutes);

                for (int i = 0; i < lstver.Count; i++)
                {
                    List <Sjqd_StatUsers> lstverdata2 = suService.GetStatUsersByVersion(soft, realplat1,
                                                                                        ChannelTypeOptions.Category, 0,
                                                                                        lstver[i],
                                                                                        (int)PeriodOptions.Daily,
                                                                                        begintime, endtime);
                    if (lstverdata2.Count != 0)
                    {
                        lst.AddRange(lstverdata2);
                    }
                }
                return
                    (lst.GroupBy(p => p.StatDate)
                     .Select(
                         p =>
                         new SoftUser
                {
                    StatDate = p.Key,
                    NewNum = p.Sum(l => l.NewUserCount),
                    ActiveNum = p.Sum(l => l.ActiveUserCount)
                })
                     .ToList());
            }
        }
Example #5
0
        public void GetExcelNewUser()
        {
            try
            {
                net91com.Stat.Core.PeriodOptions Period = HttpContext.Current.Request["inputzhouqi"].ToEnum <net91com.Stat.Core.PeriodOptions>(net91com.Stat.Core.PeriodOptions.Daily);
                DateTime begintime   = Convert.ToDateTime(HttpContext.Current.Request["inputtimestart"]);
                DateTime endtime     = Convert.ToDateTime(HttpContext.Current.Request["inputtimeend"]);
                int      excelsoft   = Convert.ToInt32(HttpContext.Current.Request["excelsoft"]);
                int      channelcate = Convert.ToInt32(HttpContext.Current.Request["channelcate"]);
                int      channeltype = Convert.ToInt32(HttpContext.Current.Request["channeltype"]);
                ///检查权限
                CheckHasRight(excelsoft, "Reports/NewUserReport.aspx");

                int excelplatform = Convert.ToInt32(HttpContext.Current.Request["excelplatform"]);
                SetStandardTime(Period, begintime, endtime);
                List <SoftUser> users;
                if (channelcate == -1)
                {
                    if (Period != net91com.Stat.Core.PeriodOptions.Hours && Period != net91com.Stat.Core.PeriodOptions.TimeOfDay)
                    {
                        users = Sjqd_StatUsersService.GetInstance().GetSoftUserListCache(begintime, endtime, excelsoft, (int)excelplatform, Period, loginService, CacheTimeOption.TenMinutes).OrderByDescending(p => p.StatDate).ToList();
                    }
                    else
                    {
                        //users = StatUsersByHourService.GetInstance().GetHourUserDataCache(excelsoft, excelplatform, begintime, endtime, Period, loginService,CacheTimeOption.TenMinutes).OrderByDescending(p => p.StatDate).ToList();
                        net91com.Reports.Services.CommonServices.SjqdUserStat.StatUsersService suService = new net91com.Reports.Services.CommonServices.SjqdUserStat.StatUsersService();
                        List <net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers>         ssUsers;
                        ssUsers = suService.GetStatUsersByHour(excelsoft, excelplatform, ChannelTypeOptions.Category, 0, (int)Period, begintime, endtime);
                        users   = new List <SoftUser>();
                        foreach (net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers u in ssUsers)
                        {
                            SoftUser softuser = new SoftUser();
                            softuser.StatDate  = u.StatDate;
                            softuser.SoftId    = excelsoft;
                            softuser.Platform  = excelplatform;
                            softuser.ActiveNum = u.ActiveUserCount - u.NewUserCount;
                            softuser.Hour      = u.StatHour;
                            softuser.NewNum    = u.NewUserCount;
                            softuser.UseNum    = u.ActiveUserCount;
                            users.Add(softuser);
                        }
                        users = users.OrderBy(p => p.StatDate).ToList();
                    }
                }
                else
                {
                    if (Period != net91com.Stat.Core.PeriodOptions.Hours && Period != net91com.Stat.Core.PeriodOptions.TimeOfDay)
                    {
                        users = Sjqd_StatUsersByChannelsService.GetInstance().GetSoftUserChanelListCache(begintime, endtime, excelsoft, excelplatform, Period,
                                                                                                         (ChannelTypeOptions)channeltype, channelcate, "", false, loginService, CacheTimeOption.TenMinutes).OrderBy(p => p.StatDate).ToList();
                    }
                    else
                    {
                        net91com.Reports.Services.CommonServices.SjqdUserStat.StatUsersService suService = new net91com.Reports.Services.CommonServices.SjqdUserStat.StatUsersService();
                        List <net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers>         ssUsers;
                        ssUsers = suService.GetStatUsersByHour(excelsoft, excelplatform, (ChannelTypeOptions)channeltype, channelcate, (int)Period, begintime, endtime);
                        users   = new List <SoftUser>();
                        foreach (net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers u in ssUsers)
                        {
                            SoftUser softuser = new SoftUser();
                            softuser.StatDate  = u.StatDate;
                            softuser.SoftId    = excelsoft;
                            softuser.Platform  = excelplatform;
                            softuser.ActiveNum = u.ActiveUserCount - u.NewUserCount;
                            softuser.Hour      = u.StatHour;
                            softuser.NewNum    = u.NewUserCount;
                            softuser.UseNum    = u.ActiveUserCount;
                            users.Add(softuser);
                        }
                        users = users.OrderBy(p => p.StatDate).ToList();
                    }
                }
                HttpResponse resp;
                resp = HttpContext.Current.Response;
                resp.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
                string filename = "新增用户.xls";

                AddHead(filename);

                //是否是内部软件
                bool isInternalSoft = AvailableSofts.FirstOrDefault(a => a.ID == excelsoft) != null;
                resp.Write(TableTemplateHelper.BuildStatUsersTable(excelsoft, (MobileOption)excelplatform, isInternalSoft, channelcate != -1, Period, "new", false, users, true, 0, ""));
                resp.End();
            }
            catch (Exception)
            {
                HttpContext.Current.Response.Write("");
            }
        }
Example #6
0
        protected void BindData()
        {
            List <SoftUser> users;
            //是否给外部部人看的,自己内部人看,不用乘以系数的结果,给外部要乘
            bool isForOut = (usercate.Value == "11");

            if (isForOut)
            {
                reportTitle = "分渠道统计(外部)";
            }
            else
            {
                reportTitle = "分渠道统计(内部)";
            }
            //不区分渠道
            if (HeadControl1.Channel1.ChannelValues.Count == 0)
            {
                for (int i = 0; i < PlatformsidList.Count; i++)
                {
                    if (IsSuperPeriod)
                    {
                        //users =
                        //    StatUsersByHourService.GetInstance()
                        //                          .GetHourUserDataCache(softsid, PlatformsidList[i], BeginTime, EndTime,
                        //                                                Period, loginService,
                        //                                               CacheTimeOption.TenMinutes)
                        //                          .OrderBy(p => p.StatDate)
                        //                          .ToList();

                        net91com.Reports.Services.CommonServices.SjqdUserStat.StatUsersService suService = new net91com.Reports.Services.CommonServices.SjqdUserStat.StatUsersService();
                        List <net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers>         ssUsers;
                        ssUsers = suService.GetStatUsersByHour(softsid, PlatformsidList[i], ChannelTypeOptions.Category, 0, (int)Period, BeginTime, EndTime);
                        users   = new List <SoftUser>();
                        foreach (net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers u in ssUsers)
                        {
                            SoftUser softuser = new SoftUser();
                            softuser.StatDate  = u.StatDate;
                            softuser.SoftId    = softsid;
                            softuser.Platform  = PlatformsidList[i];
                            softuser.ActiveNum = u.ActiveUserCount - u.NewUserCount;
                            softuser.Hour      = u.StatHour;
                            softuser.NewNum    = u.NewUserCount;
                            softuser.UseNum    = u.ActiveUserCount;
                            users.Add(softuser);
                        }
                        users = users.OrderBy(p => p.StatDate).ToList();

                        //获取对比曲线
                        if (HeadControl1.CompareTimeType > 0)
                        {
                            //List<SoftUser> usersCompare =
                            //    StatUsersByHourService.GetInstance()
                            //                          .GetHourUserDataCache(softsid, PlatformsidList[i],
                            //                                                BeginCompareTime, EndCompareTime, Period,
                            //                                                loginService,
                            //                                               CacheTimeOption.TenMinutes)
                            //                          .OrderBy(p => p.StatDate).ToList();

                            List <net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers> ssUsersComp;
                            ssUsersComp = suService.GetStatUsersByHour(softsid, PlatformsidList[i], ChannelTypeOptions.Category, 0, (int)Period, BeginCompareTime, EndCompareTime);
                            List <SoftUser> usersCompare = new List <SoftUser>();
                            foreach (net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers u in ssUsersComp)
                            {
                                SoftUser softuser = new SoftUser();
                                softuser.StatDate  = u.StatDate;
                                softuser.SoftId    = softsid;
                                softuser.Platform  = PlatformsidList[i];
                                softuser.ActiveNum = u.ActiveUserCount - u.NewUserCount;
                                softuser.Hour      = u.StatHour;
                                softuser.NewNum    = u.NewUserCount;
                                softuser.UseNum    = u.ActiveUserCount;
                                usersCompare.Add(softuser);
                            }
                            usersCompare = usersCompare.OrderBy(p => p.StatDate).ToList();

                            if (usersCompare.Count != 0)
                            {
                                ListAllForCompare.Add(usersCompare);
                            }
                        }
                    }
                    else
                    {
                        users =
                            Sjqd_StatUsersService.GetInstance()
                            .GetSoftUserListCache(BeginTime, EndTime, softsid, PlatformsidList[i],
                                                  Period, loginService,
                                                  CacheTimeOption.TenMinutes)
                            .OrderBy(p => p.StatDate)
                            .ToList();

                        //获取计算预测数据
                        ForeCastUserDatas.AddRange(Sjqd_StatUsersService.GetInstance().GetForecastSoftUserCache(
                                                       softsid, PlatformsidList[i], Period, loginService, CacheTimeOption.TenMinutes));


                        //获取对比曲线
                        if (HeadControl1.CompareTimeType > 0)
                        {
                            List <SoftUser> usersCompare =
                                Sjqd_StatUsersService.GetInstance()
                                .GetSoftUserListCache(BeginCompareTime, EndCompareTime, softsid,
                                                      PlatformsidList[i], Period, loginService,
                                                      CacheTimeOption.TenMinutes)
                                .OrderBy(p => p.StatDate)
                                .ToList();

                            if (usersCompare.Count != 0)
                            {
                                ListAllForCompare.Add(usersCompare);
                            }
                        }
                    }
                    if (users.Count != 0)
                    {
                        ListAll.Add(users);
                        //添加里程碑列表集(若ListAll添加了,里程碑也要添加)
                        //mileStoneDate.Add(Sjqd_MileStoneConfigService.GetInstance()
                        //                        .GetMileStoneDatesByCache(softsid, PlatformsidList[i], BeginTime, EndTime));
                    }
                }
            }
            else
            {
                QuDao = true;
                var channels = HeadControl1.Channel1.ChannelValues;
                if (IsSuperPeriod)
                {
                    for (int i = 0; i < channels.Count; i++)
                    {
                        //小时和每小时将其和到一条曲线中去了
                        //users = Sjqd_StatUsersByChannelsService.GetInstance().GetChannelUsersByHoursDataCache(
                        //    BeginTime, EndTime, softsid, channels[i].Platform, Period, channels[i].ChannelType,
                        //    Convert.ToInt32(channels[i].ChannelValue), channels[i].ChannelText, loginService,
                        //   CacheTimeOption.TenMinutes).OrderBy(p => p.StatDate).ToList();

                        net91com.Reports.Services.CommonServices.SjqdUserStat.StatUsersService suService = new net91com.Reports.Services.CommonServices.SjqdUserStat.StatUsersService();
                        List <net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers>         ssUsers;
                        ssUsers = suService.GetStatUsersByHour(softsid, channels[i].Platform, channels[i].ChannelType, Convert.ToInt32(channels[i].ChannelValue), (int)Period, BeginTime, EndTime);
                        users   = new List <SoftUser>();
                        foreach (net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers u in ssUsers)
                        {
                            SoftUser softuser = new SoftUser();
                            softuser.StatDate  = u.StatDate;
                            softuser.SoftId    = softsid;
                            softuser.Platform  = channels[i].Platform;
                            softuser.ActiveNum = u.ActiveUserCount - u.NewUserCount;
                            softuser.Hour      = u.StatHour;
                            softuser.NewNum    = u.NewUserCount;
                            softuser.UseNum    = u.ActiveUserCount;
                            users.Add(softuser);
                        }
                        users = users.OrderBy(p => p.StatDate).ToList();

                        if (users.Count != 0)
                        {
                            //记住有数据渠道的编号
                            QuDaoList.Add(i);
                            ListAll.Add(users);
                            //添加里程碑列表集(若ListAll添加了,里程碑也要添加)
                            //mileStoneDate.Add(Sjqd_MileStoneConfigService.GetInstance()
                            //                        .GetMileStoneDatesByCache(softsid, channels[i].Platform, BeginTime, EndTime));
                        }
                        //获取对比曲线
                        if (HeadControl1.CompareTimeType > 0)
                        {
                            //List<SoftUser> usersCompare =
                            //    Sjqd_StatUsersByChannelsService.GetInstance().GetChannelUsersByHoursDataCache(
                            //        BeginCompareTime, EndCompareTime, softsid, channels[i].Platform, Period,
                            //        channels[i].ChannelType, Convert.ToInt32(channels[i].ChannelValue),
                            //        channels[i].ChannelText, loginService,CacheTimeOption.TenMinutes)
                            //                                   .OrderBy(p => p.StatDate)
                            //                                   .ToList();

                            List <net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers> ssUsersComp;
                            ssUsersComp = suService.GetStatUsersByHour(softsid, channels[i].Platform, channels[i].ChannelType, Convert.ToInt32(channels[i].ChannelValue), (int)Period, BeginCompareTime, EndCompareTime);
                            List <SoftUser> usersCompare = new List <SoftUser>();
                            foreach (net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers u in ssUsersComp)
                            {
                                SoftUser softuser = new SoftUser();
                                softuser.StatDate  = u.StatDate;
                                softuser.SoftId    = softsid;
                                softuser.Platform  = channels[i].Platform;
                                softuser.ActiveNum = u.ActiveUserCount - u.NewUserCount;
                                softuser.Hour      = u.StatHour;
                                softuser.NewNum    = u.NewUserCount;
                                softuser.UseNum    = u.ActiveUserCount;
                                usersCompare.Add(softuser);
                            }
                            usersCompare = usersCompare.OrderBy(p => p.StatDate).ToList();

                            if (usersCompare.Count != 0)
                            {
                                ListAllForCompare.Add(usersCompare);
                            }
                        }
                    }
                }
                else
                {
                    for (int i = 0; i < channels.Count; i++)
                    {
                        users =
                            Sjqd_StatUsersByChannelsService.GetInstance()
                            .GetSoftUserChanelListCache(BeginTime, EndTime, softsid,
                                                        channels[i].Platform
                                                        , Period, channels[i].ChannelType,
                                                        Convert.ToInt32(
                                                            channels[i].ChannelValue),
                                                        channels[i].ChannelText, isForOut,
                                                        loginService,
                                                        CacheTimeOption.TenMinutes)
                            .OrderBy(p => p.StatDate)
                            .ToList();
                        if (users.Count != 0)
                        {
                            //记住有数据渠道的编号
                            QuDaoList.Add(i);
                            ListAll.Add(users);
                            //添加里程碑列表集(若ListAll添加了,里程碑也要添加)
                            //mileStoneDate.Add(Sjqd_MileStoneConfigService.GetInstance()
                            //                        .GetMileStoneDatesByCache(softsid, channels[i].Platform, BeginTime, EndTime));

                            //if (Period == net91com.Stat.Core.PeriodOptions.Daily)
                            //{
                            //    ForecastSoftUser softUser = Sjqd_StatUsersByChannelsService.GetInstance().GetStatUsersForRealTime(softsid,
                            //                                                           channels[i].Platform, channels[i].ChannelType, Convert.ToInt32(channels[i].ChannelValue), loginService, CacheTimeOption.TenMinutes);
                            //    if (softUser != null)
                            //        ForeCastUserDatas.Add(softUser);
                            //}
                        }
                        //获取对比曲线
                        if (HeadControl1.CompareTimeType > 0)
                        {
                            List <SoftUser> usersCompare =
                                Sjqd_StatUsersByChannelsService.GetInstance()
                                .GetSoftUserChanelListCache(BeginCompareTime,
                                                            EndCompareTime, softsid,
                                                            channels[i].Platform, Period,
                                                            channels[i].ChannelType,
                                                            Convert.ToInt32(
                                                                channels[i].ChannelValue),
                                                            channels[i].ChannelText,
                                                            isForOut, loginService,
                                                            CacheTimeOption
                                                            .TenMinutes)
                                .OrderBy(p => p.StatDate)
                                .ToList();

                            if (usersCompare.Count != 0)
                            {
                                ListAllForCompare.Add(usersCompare);
                            }
                        }
                    }
                }
            }

            if (ListAll.Count == 0)
            {
                return;
            }

            GetAllLineJson();
            StringBuilder sb = new StringBuilder();
            //传入的tab 序列值
            int tabindex = 0;

            //形成tablehtml
            for (int j = 0; j < ListAll.Count; j++)
            {
                string plat = ((MobileOption)ListAll[j][0].Platform).GetDescription();
                if ((MobileOption)ListAll[j][0].Platform == MobileOption.None)
                {
                    plat = "不区分平台";
                }
                string channel = ListAll[j][0].ChannelName;
                if (string.IsNullOrEmpty(channel))
                {
                    channel = "不区分渠道";
                }
                tabStr.Add(plat + "_" + channel);
                sb.Append(GetTableString(ListAll[j], tabindex));
                tabindex++;
            }
            tableStr = sb.ToString();
        }
Example #7
0
        /// <summary>
        /// 获取数据加上绑定数据
        /// </summary>
        protected void BindData()
        {
            ///进入分渠道统计
            if (HeadControl1.Channel1.ChannelValues.Count != 0)
            {
                var channels = HeadControl1.Channel1.ChannelValues;
                QuDao = true;
                if (Period == net91com.Stat.Core.PeriodOptions.TimeOfDay || Period == net91com.Stat.Core.PeriodOptions.Hours)
                {
                    for (int i = 0; i < channels.Count; i++)
                    {
                        //List<SoftUser> users =
                        //    Sjqd_StatUsersByChannelsService.GetInstance().GetChannelUsersByHoursDataCache(
                        //        BeginTime, EndTime, SelectedSofts[0].ID, channels[i].Platform, Period,
                        //        channels[i].ChannelType, Convert.ToInt32(channels[i].ChannelValue),
                        //        channels[i].ChannelText, loginService,CacheTimeOption.TenMinutes)
                        //                                   .OrderBy(p => p.StatDate)
                        //                                   .ToList();

                        net91com.Reports.Services.CommonServices.SjqdUserStat.StatUsersService suService = new net91com.Reports.Services.CommonServices.SjqdUserStat.StatUsersService();
                        List <net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers>         ssUsers;
                        ssUsers = suService.GetStatUsersByHour(SelectedSofts[0].ID, channels[i].Platform, channels[i].ChannelType, Convert.ToInt32(channels[i].ChannelValue), (int)Period, BeginTime, EndTime);
                        List <SoftUser> users = new List <SoftUser>();
                        foreach (net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers u in ssUsers)
                        {
                            SoftUser softuser = new SoftUser();
                            softuser.StatDate  = u.StatDate;
                            softuser.SoftId    = SelectedSofts[0].ID;
                            softuser.Platform  = channels[i].Platform;
                            softuser.ActiveNum = u.ActiveUserCount - u.NewUserCount;
                            softuser.Hour      = u.StatHour;
                            softuser.NewNum    = u.NewUserCount;
                            softuser.UseNum    = u.ActiveUserCount;
                            users.Add(softuser);
                        }
                        users = users.OrderBy(p => p.StatDate).ToList();

                        if (users.Count != 0)
                        {
                            ListAll.Add(users);
                            //添加里程碑列表集(若ListAll添加了,里程碑也要添加)
                            //mileStoneDate.Add(Sjqd_MileStoneConfigService.GetInstance()
                            //                                             .GetMileStoneDatesByCache(SelectedSofts[0].ID,
                            //                                                                       channels[i].Platform,
                            //                                                                       BeginTime, EndTime));

                            QuDaoList.Add(i);
                        }
                        //获取对比曲线
                        if (HeadControl1.CompareTimeType > 0)
                        {
                            //List<SoftUser> usersCompare =
                            //    Sjqd_StatUsersByChannelsService.GetInstance().GetChannelUsersByHoursDataCache(
                            //        BeginCompareTime, EndCompareTime, SelectedSofts[0].ID, channels[i].Platform, Period,
                            //        channels[i].ChannelType, Convert.ToInt32(channels[i].ChannelValue),
                            //        channels[i].ChannelText, loginService,CacheTimeOption.TenMinutes)
                            //                                   .OrderBy(p => p.StatDate)
                            //                                   .ToList();

                            List <net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers> ssUsersComp;
                            ssUsersComp = suService.GetStatUsersByHour(SelectedSofts[0].ID, channels[i].Platform, channels[i].ChannelType, Convert.ToInt32(channels[i].ChannelValue), (int)Period, BeginCompareTime, EndCompareTime);
                            List <SoftUser> usersCompare = new List <SoftUser>();
                            foreach (net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers u in ssUsersComp)
                            {
                                SoftUser softuser = new SoftUser();
                                softuser.StatDate  = u.StatDate;
                                softuser.SoftId    = SelectedSofts[0].ID;
                                softuser.Platform  = channels[i].Platform;
                                softuser.ActiveNum = u.ActiveUserCount - u.NewUserCount;
                                softuser.Hour      = u.StatHour;
                                softuser.NewNum    = u.NewUserCount;
                                softuser.UseNum    = u.ActiveUserCount;
                                usersCompare.Add(softuser);
                            }
                            usersCompare = usersCompare.OrderBy(p => p.StatDate).ToList();

                            if (usersCompare != null && usersCompare.Count != 0)
                            {
                                ListAllForCompare.Add(usersCompare);
                            }
                        }
                    }
                }
                else
                {
                    for (int i = 0; i < channels.Count; i++)
                    {
                        List <SoftUser> users =
                            Sjqd_StatUsersByChannelsService.GetInstance()
                            .GetSoftUserChanelListCache(BeginTime, EndTime,
                                                        SelectedSofts[0].ID,
                                                        channels[i].Platform, Period,
                                                        channels[i].ChannelType,
                                                        Convert.ToInt32(
                                                            channels[i].ChannelValue),
                                                        channels[i].ChannelText, false,
                                                        loginService,
                                                        CacheTimeOption.TenMinutes)
                            .OrderBy(p => p.StatDate)
                            .ToList();
                        if (users != null && users.Count != 0)
                        {
                            ListAll.Add(users);
                            ////添加里程碑列表集(若ListAll添加了,里程碑也要添加)
                            //mileStoneDate.Add(Sjqd_MileStoneConfigService.GetInstance()
                            //                        .GetMileStoneDatesByCache(SelectedSofts[0].ID, channels[i].Platform, BeginTime, EndTime));
                            QuDaoList.Add(i);

                            //if (Period == net91com.Stat.Core.PeriodOptions.Daily)
                            //{
                            //    ForecastSoftUser softUser =
                            //        Sjqd_StatUsersByChannelsService.GetInstance()
                            //                                       .GetStatUsersForRealTime(SelectedSofts[0].ID,
                            //                                                                channels[i].Platform,
                            //                                                                channels[i].ChannelType,
                            //                                                                Convert.ToInt32(
                            //                                                                    channels[i].ChannelValue),
                            //                                                                loginService,
                            //                                                                CacheTimeOption.TenMinutes);
                            //    if (softUser != null)
                            //        ForeCastUserDatas.Add(softUser);
                            //}
                        }
                        //获取对比曲线
                        if (HeadControl1.CompareTimeType > 0)
                        {
                            List <SoftUser> usersCompare =
                                Sjqd_StatUsersByChannelsService.GetInstance()
                                .GetSoftUserChanelListCache(BeginCompareTime,
                                                            EndCompareTime,
                                                            SelectedSofts[0].ID,
                                                            channels[i].Platform, Period,
                                                            channels[i].ChannelType,
                                                            Convert.ToInt32(channels[i].ChannelValue),
                                                            channels[i].ChannelText,
                                                            false, loginService,
                                                            CacheTimeOption.TenMinutes)
                                .OrderBy(p => p.StatDate)
                                .ToList();

                            if (usersCompare != null && usersCompare.Count != 0)
                            {
                                ListAllForCompare.Add(usersCompare);
                            }
                        }
                    }
                }
            }
            else
            {
                //选择所筛选的所有软件
                for (int softid = 0; softid < SelectedSofts.Count; softid++)
                {
                    for (int i = 0; i < SelectedPlatforms.Count; i++)
                    {
                        foreach (MobileOption tempplat in SelectedSofts[softid].Platforms)
                        {
                            //他选出的平台加上和自己支持平台的交集
                            if (tempplat == SelectedPlatforms[i] || SelectedPlatforms[i] == 0)
                            {
                                List <SoftUser> users = null;
                                if (Period != net91com.Stat.Core.PeriodOptions.TimeOfDay && Period != net91com.Stat.Core.PeriodOptions.Hours)
                                {
                                    users =
                                        Sjqd_StatUsersService.GetInstance()
                                        .GetSoftUserListCache(BeginTime, EndTime,
                                                              SelectedSofts[softid].ID,
                                                              (int)SelectedPlatforms[i], Period,
                                                              loginService,
                                                              CacheTimeOption.TenMinutes)
                                        .OrderBy(p => p.StatDate)
                                        .ToList();
                                    if (Period == net91com.Stat.Core.PeriodOptions.Daily)
                                    {
                                        //ForecastSoftUser softUser =
                                        //    Sjqd_StatUsersService.GetInstance()
                                        //                         .GetStatUsersForRealTime(SelectedSofts[softid].ID,
                                        //                                                  (int)SelectedPlatforms[i],
                                        //                                                  loginService,
                                        //                                                  CacheTimeOption.TenMinutes);
                                        //if (softUser != null)
                                        //    ForeCastUserDatas.Add(softUser);
                                        //else
                                        ForeCastUserDatas.AddRange(
                                            Sjqd_StatUsersService.GetInstance()
                                            .GetForecastSoftUserCache(
                                                SelectedSofts[softid].ID,
                                                (int)SelectedPlatforms[i], Period,
                                                loginService, CacheTimeOption.TenMinutes));
                                    }
                                    else
                                    {
                                        //获取计算预测数据
                                        ForeCastUserDatas.AddRange(
                                            Sjqd_StatUsersService.GetInstance()
                                            .GetForecastSoftUserCache(SelectedSofts[softid].ID,
                                                                      (int)SelectedPlatforms[i],
                                                                      Period, loginService,
                                                                      CacheTimeOption
                                                                      .TenMinutes));
                                    }
                                }
                                else
                                {
                                    //users =
                                    //    StatUsersByHourService.GetInstance()
                                    //                          .GetHourUserDataCache(SelectedSofts[softid].ID,
                                    //                                                (int) SelectedPlatforms[i],
                                    //                                                BeginTime, EndTime, Period,
                                    //                                                loginService,
                                    //                                               CacheTimeOption.TenMinutes)
                                    //                          .OrderBy(p => p.StatDate)
                                    //                          .ToList();

                                    net91com.Reports.Services.CommonServices.SjqdUserStat.StatUsersService suService = new net91com.Reports.Services.CommonServices.SjqdUserStat.StatUsersService();
                                    List <net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers>         ssUsers;
                                    ssUsers = suService.GetStatUsersByHour(SelectedSofts[softid].ID, (int)SelectedPlatforms[i], ChannelTypeOptions.Category, 0, (int)Period, BeginTime, EndTime);
                                    users   = new List <SoftUser>();
                                    foreach (net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers u in ssUsers)
                                    {
                                        SoftUser softuser = new SoftUser();
                                        softuser.StatDate  = u.StatDate;
                                        softuser.SoftId    = SelectedSofts[softid].ID;
                                        softuser.Platform  = (int)SelectedPlatforms[i];
                                        softuser.ActiveNum = u.ActiveUserCount - u.NewUserCount;
                                        softuser.Hour      = u.StatHour;
                                        softuser.NewNum    = u.NewUserCount;
                                        softuser.UseNum    = u.ActiveUserCount;
                                        users.Add(softuser);
                                    }
                                    users = users.OrderBy(p => p.StatDate).ToList();
                                }


                                if (users != null && users.Count != 0)
                                {
                                    ListAll.Add(users);
                                    //添加里程碑列表集(若ListAll添加了,里程碑也要添加)
                                    //mileStoneDate.Add(Sjqd_MileStoneConfigService.GetInstance()
                                    //                                             .GetMileStoneDatesByCache(
                                    //                                                 SelectedSofts[softid].ID,
                                    //                                                 (int)SelectedPlatforms[i],
                                    //                                                 BeginTime, EndTime));
                                    RealSoftLine.Add((int)SelectedPlatforms[i]);
                                }
                                //获取对比曲线
                                if (HeadControl1.CompareTimeType > 0)
                                {
                                    List <SoftUser> usersCompare = null;
                                    if (Period != net91com.Stat.Core.PeriodOptions.TimeOfDay && Period != net91com.Stat.Core.PeriodOptions.Hours)
                                    {
                                        usersCompare =
                                            Sjqd_StatUsersService.GetInstance()
                                            .GetSoftUserListCache(BeginCompareTime, EndCompareTime,
                                                                  SelectedSofts[softid].ID,
                                                                  (int)SelectedPlatforms[i],
                                                                  Period, loginService,
                                                                  CacheTimeOption.TenMinutes)
                                            .OrderBy(p => p.StatDate)
                                            .ToList();
                                    }
                                    else
                                    {
                                        //usersCompare =
                                        //    StatUsersByHourService.GetInstance()
                                        //                          .GetHourUserDataCache(SelectedSofts[softid].ID,
                                        //                                                (int)SelectedPlatforms[i],
                                        //                                                BeginCompareTime, EndCompareTime,
                                        //                                                Period, loginService,
                                        //                                               CacheTimeOption.TenMinutes)
                                        //                          .OrderBy(p => p.StatDate)
                                        //                          .ToList();

                                        net91com.Reports.Services.CommonServices.SjqdUserStat.StatUsersService suService = new net91com.Reports.Services.CommonServices.SjqdUserStat.StatUsersService();
                                        List <net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers>         ssUsers;
                                        ssUsers      = suService.GetStatUsersByHour(SelectedSofts[softid].ID, (int)SelectedPlatforms[i], ChannelTypeOptions.Category, 0, (int)Period, BeginCompareTime, EndCompareTime);
                                        usersCompare = new List <SoftUser>();
                                        foreach (net91com.Reports.Entities.DataBaseEntity.Sjqd_StatUsers u in ssUsers)
                                        {
                                            SoftUser softuser = new SoftUser();
                                            softuser.StatDate  = u.StatDate;
                                            softuser.SoftId    = SelectedSofts[softid].ID;
                                            softuser.Platform  = (int)SelectedPlatforms[i];
                                            softuser.ActiveNum = u.ActiveUserCount - u.NewUserCount;
                                            softuser.Hour      = u.StatHour;
                                            softuser.NewNum    = u.NewUserCount;
                                            softuser.UseNum    = u.ActiveUserCount;
                                            usersCompare.Add(softuser);
                                        }
                                        usersCompare = usersCompare.OrderBy(p => p.StatDate).ToList();
                                    }

                                    if (usersCompare != null && usersCompare.Count != 0)
                                    {
                                        ListAllForCompare.Add(usersCompare);
                                    }
                                }
                                break;
                            }
                        }
                    }
                }
            }

            if (ListAll.Count == 0)
            {
                return;
            }


            //生成所有曲线的JSON
            GetAllLineJson();

            //生成Table的HTML
            GetAllTableHtml();
        }
Example #8
0
        ///获取统计慨况
        public void GetTableGaiKuang()
        {
            DateTime hourendtime = EndTimeForHour.Date;
            //预计今日使用的数据,昨天之前的5天数据
            List <SoftUser> users = _usersfor80Days.Where(p => p.StatDate >= EndTime.AddDays(-5) && p.Period == (int)net91com.Stat.Core.PeriodOptions.Daily).ToList();

            if (users.Count != 0)
            {
                StringBuilder sb = new StringBuilder("<table   class=\" tablesorter \"   cellspacing=\"1\">");
                sb.Append(@" <thead><tr>
                     <th>指标</th>
                     <th>新增用户</th>     
                     <th>活跃用户</th>   
                     <th>新用户占比</th>
                     <th>日活跃度</th>
                     </tr></thead>");
                sb.Append("<tbody>");

                sb.Append("<tr class=\"tableover\">");
                int totalNumyes = users[0].NewNum + users[0].ActiveNum;
                sb.Append(string.Format(@"<td>昨日</td><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td> ",
                                        Utility.SetNum(users[0].NewNum), Utility.SetNum(totalNumyes), (users[0].NewNum / (double)totalNumyes * 100).ToString("0.00") + "%", (totalNumyes / (double)users[0].TotalNum * 100).ToString("0.00") + "%"));
                sb.Append("</tr>");

                SoftUser forecast = GetForeCastSoftUser(users.ToList());

                sb.Append("<tr class=\"tableover\">");
                int totalNumforeLast = forecast.NewNum + forecast.ActiveNum;
                sb.Append(string.Format(@"<td>预计今日</td><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td> ",
                                        Utility.SetNum(forecast.NewNum), Utility.SetNum(forecast.ActiveNum), (forecast.NewNum / (double)totalNumforeLast * 100).ToString("0.00") + "%", ((forecast.ActiveNum + forecast.NewNum) / (double)forecast.TotalNum * 100).ToString("0.00") + "%"));
                sb.Append("</tr>");

                //历史最高
                List <SoftUser> tempHigh = Sjqd_StatUsersService.GetInstance().GetMaxNumCache(EndTime.AddDays(-1000), EndTime, SoftID, PlatID, net91com.Stat.Core.PeriodOptions.Daily, CacheTimeOption.OneHour);

                sb.Append("<tr class=\"tableover\">");
                if (tempHigh.Count == 1)
                {
                    sb.Append(string.Format(@"<td>历史最高</td><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td> ",
                                            Utility.SetNum(tempHigh[0].NewNum) + "(" + tempHigh[0].StatDate.ToShortDateString() + ")",
                                            Utility.SetNum(tempHigh[0].ActiveNum + tempHigh[0].NewNum) + "(" + tempHigh[0].StatDate.ToShortDateString() + ")", "--", "--"));
                    sb.Append("</tr>");
                }
                else if (tempHigh.Count == 2)
                {
                    sb.Append(string.Format(@"<td>历史最高</td><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td> ",
                                            Utility.SetNum(tempHigh[0].NewNum) + "(" + tempHigh[0].StatDate.ToShortDateString() + ")",
                                            Utility.SetNum(tempHigh[1].ActiveNum + tempHigh[1].NewNum) + "(" + tempHigh[1].StatDate.ToShortDateString() + ")", "--", "--"));
                    sb.Append("</tr>");
                }
                else
                {
                    sb.Append(string.Format(@"<td>历史最高</td><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td> ",
                                            "--", "--", "--", "--"));
                    sb.Append("</tr>");
                }

                sb.Append("</tbody></table>");
                TabStrGaiKuang = sb.ToString();
            }

            _usersfor80Days.Clear();
            _usersfor80Days = null;
        }