Exemple #1
0
        //获取基础信息统计
        public void GetTableJcXx()
        {
            //已经按照时间倒叙了 取得范围是80天里面选
            _usersfor80Days = Ds.GetUsersWithNoPeriodCache(EndTime.AddDays(-80), EndTime, SoftID, PlatID, CacheTimeOption.HalfDay).OrderByDescending(p => p.StatDate).ToList();
            List <SoftUser> users = _usersfor80Days;

            if (users.Count != 0)
            {
                int totalNum = users.Max(p => p.TotalNum);
                //周用户数据
                SoftUser weekUser     = users.Where(p => p.Period == (int)net91com.Stat.Core.PeriodOptions.Weekly).OrderByDescending(p => p.StatDate).FirstOrDefault();
                int      weekActivity = 0;
                string   weekPercent  = "--";
                if (weekUser != null)
                {
                    weekActivity = weekUser.ActiveNum;
                    weekPercent  = weekUser.ActivityPercent;
                }
                SoftUser monthUser = users.Where(p => p.Period == (int)net91com.Stat.Core.PeriodOptions.Monthly).OrderByDescending(p => p.StatDate).FirstOrDefault();
                ///获取月留存数据
                var list = new RetainedUsersService(true)
                           .GetStatRetainedUsersCache(SoftID, PlatID, -1, net91com.Stat.Core.PeriodOptions.Monthly, EndTime.AddDays(-80), EndTime, CacheTimeOption.TenMinutes, ChannelTypeOptions.Category, loginService);
                Sjqd_StatChannelRetainedUsers lastretainuser = list.Count == 0? null:list.OrderBy(p => p.OriginalDate).Last();
                //数据库还 没有值
                int    monthActivity = 0;
                string monthPercent  = "--";
                int    monthnew      = 0;

                if (monthUser != null)
                {
                    monthActivity = monthUser.ActiveNum;
                    monthPercent  = monthUser.ActivityPercent;
                    monthnew      = monthUser.NewNum;
                }
                string percent = lastretainuser == null ? "--" : (lastretainuser.RetainedUserCount * 100 / (decimal)lastretainuser.OriginalNewUserCount).ToString("0.00") + "%";


                StringBuilder sb = new StringBuilder("<table   class=\" tablesorter \"   cellspacing=\"1\">");
                sb.Append(@" <thead><tr>
                     <th>累计用户</th>
                     <th>周活跃用户</th>     
                     <th>周跃率</th>   
                     <th>月活跃用户</th>
                     <th>月活跃率</th>
                     <th>月新增用户</th>
                     <th>上月留存率</th>
                     </tr></thead>");
                sb.Append("<tbody>");
                sb.Append("<tr class=\"tableover\">");
                sb.AppendFormat(@"<td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td><td>{4}</td><td>{5}</td><td>{6}</td>",
                                Utility.SetNum(totalNum), Utility.SetNum(weekActivity), weekPercent, Utility.SetNum(monthActivity), monthPercent,
                                monthnew, percent);

                sb.Append("</tr>");
                sb.Append("</tbody></table>");
                TabStrJcXx = sb.ToString();
            }
        }
Exemple #2
0
        ///绑定StatRetaindeUsers 对象
        public Sjqd_StatChannelRetainedUsers RetainedUserBind(IDataReader dataReader)
        {
            Sjqd_StatChannelRetainedUsers modelretained = new Sjqd_StatChannelRetainedUsers();
            object obj;

            obj = dataReader["ChannelID"];
            if (obj != null && obj != DBNull.Value)
            {
                modelretained.ChannelID = Convert.ToInt32(obj);
            }
            obj = dataReader["SoftID"];
            if (obj != null && obj != DBNull.Value)
            {
                modelretained.SoftID = Convert.ToInt32(obj);
            }
            obj = dataReader["Period"];
            if (obj != null && obj != DBNull.Value)
            {
                modelretained.Period = (net91com.Stat.Core.PeriodOptions)Convert.ToInt32(obj);
            }
            obj = dataReader["Platform"];
            if (obj != null && obj != DBNull.Value)
            {
                modelretained.Platform = (MobileOption)Convert.ToInt32(obj);
            }
            obj = dataReader["OriginalNewUserCount"];
            if (obj != null && obj != DBNull.Value)
            {
                modelretained.OriginalNewUserCount = Convert.ToInt32(obj);
            }
            obj = dataReader["RetainedUserCount"];
            if (obj != null && obj != DBNull.Value)
            {
                modelretained.RetainedUserCount = Convert.ToInt32(obj);
            }
            obj = dataReader["OriginalDate"];
            if (obj != null && obj != DBNull.Value)
            {
                int temp = Convert.ToInt32(obj);
                modelretained.OriginalDate = new DateTime(temp / 10000, temp / 100 % 100, temp % 100, 0, 0, 0);
            }

            obj = dataReader["StatDate"];
            if (obj != null && obj != DBNull.Value)
            {
                int temp = Convert.ToInt32(obj);
                modelretained.StatDate = new DateTime(temp / 10000, temp / 100 % 100, temp % 100, 0, 0, 0);
            }

            return(modelretained);
        }