//每月统计人数 public int MonthCount(int i) { int P_Int_count = 0; P_Int_count = new BCW.BLL.Statinfo().GetCount("Year(AddTime)=" + DateTime.Now.Year + "and Month(AddTime)=" + (i + 1) + " Group By Month(AddTime)"); return(P_Int_count); }
//每日统计人数 public int DayCount(int i) { int P_Int_count = 0; P_Int_count = new BCW.BLL.Statinfo().GetCount("AddTime<'" + M_Str_maxdate + "' and DATEPART(dd,AddTime)=" + (i + 1) + " GROUP BY DATEPART(dd, AddTime)"); return(P_Int_count); }
//各时间段的统计人数 private int HourCount(int i) { int P_Int_count = 0; P_Int_count = new BCW.BLL.Statinfo().GetCount("AddTime>='" + M_Str_mindate + "'and AddTime<'" + M_Str_maxdate + "' and DATEPART(hh,AddTime)=" + i + " GROUP BY DATEPART(hh, AddTime)"); return(P_Int_count); }
protected void statFulx() { //编写SQL语句,查询日网站的访问量的总人数(PV) M_Str_mindate = DateTime.Now.ToShortDateString() + " 0:00:00"; M_Str_maxdate = DateTime.Now.AddDays(1).ToShortDateString() + " 0:00:00"; int sumFlux = new BCW.BLL.Statinfo().GetCount("AddTime>='" + M_Str_mindate + "'and AddTime<'" + M_Str_maxdate + "'"); //调用自定义方法绘制柱子形图,表示日时段的流量 CreateImage(sumFlux, DateTime.Now.Year + "年" + DateTime.Now.Month + "月" + DateTime.Now.Day + "日网站24小时流量分析图"); }
/// <summary> /// 本月统计 /// </summary> private void MonthPage() { int P_Int_DaysInMonth = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);//指定年和月中的天数 string MonthText = DateTime.Now.Year + "-" + DateTime.Now.Month; M_Str_mindate = MonthText + "-1 0:00:00"; M_Str_maxdate = MonthText + "-" + P_Int_DaysInMonth + " 23:59:59"; //计算总量 int total = new BCW.BLL.Statinfo().GetCount("AddTime>='" + M_Str_mindate + "'and AddTime<'" + M_Str_maxdate + "'"); builder.Append(Out.Tab("<div>", "<br />")); builder.Append("月份:" + MonthText + " 累计流量" + total + ""); builder.Append(Out.Tab("</div>", "")); builder.Append(Out.Tab("<div>", "<br />")); builder.Append("日期|访问量|比例"); builder.Append(Out.Tab("</div>", "")); int[] P_Int_Day = new int[P_Int_DaysInMonth]; for (int i = 0; i < P_Int_DaysInMonth; i++) { if (i % 2 == 0) { builder.Append(Out.Tab("<div>", "<br />")); } else { builder.Append(Out.Tab("<div>", "<br />")); } if (!Utils.Isie()) { builder.Append(Day(i) + "—" + DayCount(i) + "—" + (Convert.ToInt32(Percent(DayCount(i), total) * 100)) + "%"); } else { builder.Append(Day(i) + "—" + DayCount(i) + "—<img src=\"/Files/sys/bar.gif\" height=\"10\" width=\"" + Percent(DayCount(i), total) * 100 + "\" />" + Convert.ToInt32(Percent(DayCount(i), total) * 100) + "%"); } builder.Append(Out.Tab("</div>", "")); } }
/// <summary> /// 本日统计 /// </summary> private void DayPage() { string DayText = DateTime.Now.ToShortDateString();//当日日期 M_Str_mindate = DateTime.Now.ToShortDateString() + " 0:00:00"; M_Str_maxdate = DateTime.Now.AddDays(1).ToShortDateString() + " 0:00:00"; //计算总量 int total = new BCW.BLL.Statinfo().GetCount("AddTime>='" + M_Str_mindate + "'and AddTime<'" + M_Str_maxdate + "'"); builder.Append(Out.Tab("<div>", "<br />")); builder.Append("日期:" + DayText + " 累计流量" + total + ""); builder.Append(Out.Tab("</div>", "")); builder.Append(Out.Tab("<div>", "<br />")); builder.Append("时间|访问量|比例"); builder.Append(Out.Tab("</div>", "")); int[] P_Int_hour = new int[24]; for (int i = 0; i < 24; i++) { if (i % 2 == 0) { builder.Append(Out.Tab("<div>", "<br />")); } else { builder.Append(Out.Tab("<div>", "<br />")); } if (!Utils.Isie()) { builder.Append(Time(i) + "—" + HourCount(i) + "—" + (Convert.ToInt32(Percent(HourCount(i), total) * 100)) + "%"); } else { builder.Append(Time(i) + "—" + HourCount(i) + "—<img src=\"/Files/sys/bar.gif\" height=\"10\" width=\"" + Percent(HourCount(i), total) * 100 + "\" />" + Convert.ToInt32(Percent(HourCount(i), total) * 100) + "%"); } builder.Append(Out.Tab("</div>", "")); } }
/// <summary> /// 本年统计 /// </summary> private void YearPage() { string YearText = DateTime.Now.Year + "年"; //计算总量 int total = new BCW.BLL.Statinfo().GetCount("Year(AddTime)=" + DateTime.Now.Year); builder.Append(Out.Tab("<div>", "<br />")); builder.Append("年份:" + YearText + " 累计流量" + total + ""); builder.Append(Out.Tab("</div>", "")); builder.Append(Out.Tab("<div>", "<br />")); builder.Append("月份|访问量|比例"); builder.Append(Out.Tab("</div>", "")); int[] P_Int_month = new int[12]; for (int i = 0; i < 12; i++) { if (i % 2 == 0) { builder.Append(Out.Tab("<div>", "<br />")); } else { builder.Append(Out.Tab("<div>", "<br />")); } if (!Utils.Isie()) { builder.Append(Year(i) + "—" + MonthCount(i) + "—" + (Convert.ToInt32(Percent(MonthCount(i), total) * 100)) + "%"); } else { builder.Append(Year(i) + "—" + MonthCount(i) + "—<img src=\"/Files/sys/bar.gif\" height=\"10\" width=\"" + Percent(MonthCount(i), total) * 100 + "\" />" + Convert.ToInt32(Percent(MonthCount(i), total) * 100) + "%"); } builder.Append(Out.Tab("</div>", "")); } }
/// <summary> /// PUrl统计 /// </summary> private void PUrlPage() { //计算总量 int total = new BCW.BLL.Statinfo().GetCount(""); builder.Append(Out.Tab("<div>", "<br />")); builder.Append("累计流量" + total + ""); builder.Append(Out.Tab("</div>", "")); builder.Append(Out.Tab("<div>", "<br />")); builder.Append("IP|访问量|比例"); builder.Append(Out.Tab("</div>", "<br />")); int pageIndex; int recordCount; int pageSize = Convert.ToInt32(ub.Get("SiteListNo")); string[] pageValUrl = { "ptype" }; pageIndex = Utils.ParseInt(Request.QueryString["page"]); if (pageIndex == 0) { pageIndex = 1; } // 开始读取列表 IList <BCW.Model.Statinfo> listStatinfo = new BCW.BLL.Statinfo().GetPUrls(pageIndex, pageSize, out recordCount); if (listStatinfo.Count > 0) { int k = 1; foreach (BCW.Model.Statinfo n in listStatinfo) { if (k % 2 == 0) { builder.Append(Out.Tab("<div>", "<br />")); } else { if (k == 1) { builder.Append(Out.Tab("<div>", "")); } else { builder.Append(Out.Tab("<div>", "<br />")); } } if (!Utils.Isie()) { builder.Append(Utils.Mid(n.PUrl, 1, n.PUrl.Length) + "—" + n.PUrlCount + "—" + (Convert.ToInt32(Percent(n.PUrlCount, total) * 100)) + "%"); } else { builder.Append(Utils.Mid(n.PUrl, 1, n.PUrl.Length) + "—" + n.PUrlCount + "—<img src=\"/Files/sys/bar.gif\" height=\"10\" width=\"" + Percent(n.PUrlCount, total) * 100 + "\" />" + Convert.ToInt32(Percent(n.PUrlCount, total) * 100) + "%"); } k++; builder.Append(Out.Tab("</div>", "")); } // 分页 builder.Append(BasePage.MultiPage(pageIndex, pageSize, recordCount, Utils.getPageUrl(), pageValUrl, "page", 0)); } else { builder.Append(Out.Div("div", "没有相关记录..")); } }
/// <summary> /// IP统计 /// </summary> private void IpPage() { //计算总量 int total = new BCW.BLL.Statinfo().GetCount(""); builder.Append(Out.Tab("<div>", "<br />")); builder.Append("累计流量" + total + ""); builder.Append(Out.Tab("</div>", "")); builder.Append(Out.Tab("<div>", "<br />")); builder.Append("IP|访问量|比例"); builder.Append(Out.Tab("</div>", "<br />")); int pageIndex; int recordCount; int pageSize = Convert.ToInt32(ub.Get("SiteListNo")); string[] pageValUrl = { "ptype" }; pageIndex = Utils.ParseInt(Request.QueryString["page"]); if (pageIndex == 0) { pageIndex = 1; } // 开始读取列表 IList <BCW.Model.Statinfo> listStatinfo = new BCW.BLL.Statinfo().GetIPs(pageIndex, pageSize, out recordCount); if (listStatinfo.Count > 0) { int k = 1; foreach (BCW.Model.Statinfo n in listStatinfo) { if (k % 2 == 0) { builder.Append(Out.Tab("<div>", "<br />")); } else { if (k == 1) { builder.Append(Out.Tab("<div>", "")); } else { builder.Append(Out.Tab("<div>", "<br />")); } } string ipCity = new IPSearch().GetAddressWithIP(n.IP); if (!string.IsNullOrEmpty(ipCity)) { ipCity = ipCity.Replace("IANA保留地址 CZ88.NET", "本机地址").Replace("CZ88.NET", "") + ":"; } if (!Utils.Isie()) { builder.Append(ipCity + "" + n.IP + "—" + n.IpCount + "—" + (Convert.ToInt32(Percent(n.IpCount, total) * 100)) + "%"); } else { builder.Append(ipCity + "" + n.IP + "—" + n.IpCount + "—<img src=\"/Files/sys/bar.gif\" height=\"10\" width=\"" + Percent(n.IpCount, total) * 100 + "\" />" + Convert.ToInt32(Percent(n.IpCount, total) * 100) + "%"); } k++; builder.Append(Out.Tab("</div>", "")); } // 分页 builder.Append(BasePage.MultiPage(pageIndex, pageSize, recordCount, Utils.getPageUrl(), pageValUrl, "page", 0)); } else { builder.Append(Out.Div("div", "没有相关记录..")); } }
private void ReloadPage() { string M_Str_mindate; //用于存储最小日期 string M_Str_maxdate; //用于存储最大日期 //显示统计时间 string sCountDate = DateTime.Now.ToString(); //本日访问人数的计算 M_Str_mindate = DateTime.Now.ToShortDateString() + " 0:00:00"; M_Str_maxdate = DateTime.Now.AddDays(1).ToShortDateString() + " 0:00:00"; string sCountDay = new BCW.BLL.Statinfo().GetCount("AddTime>='" + M_Str_mindate + "'and AddTime<'" + M_Str_maxdate + "'").ToString(); string sCountDayIP = new BCW.BLL.Statinfo().GetIPCount("AddTime>='" + M_Str_mindate + "'and AddTime<'" + M_Str_maxdate + "'").ToString(); //本周访问人数 switch (DateTime.Now.DayOfWeek) { case DayOfWeek.Monday: M_Str_mindate = DateTime.Now.AddDays(0).ToShortDateString() + " 0:00:00"; M_Str_maxdate = DateTime.Now.AddDays(6).ToShortDateString() + " 0:00:00"; break; case DayOfWeek.Tuesday: M_Str_mindate = DateTime.Now.AddDays(-1).ToShortDateString() + " 0:00:00"; M_Str_maxdate = DateTime.Now.AddDays(5).ToShortDateString() + " 0:00:00"; break; case DayOfWeek.Wednesday: M_Str_mindate = DateTime.Now.AddDays(-2).ToShortDateString() + " 0:00:00"; M_Str_maxdate = DateTime.Now.AddDays(4).ToShortDateString() + " 0:00:00"; break; case DayOfWeek.Thursday: M_Str_mindate = DateTime.Now.AddDays(-3).ToShortDateString() + " 0:00:00"; M_Str_maxdate = DateTime.Now.AddDays(3).ToShortDateString() + " 0:00:00"; break; case DayOfWeek.Friday: M_Str_mindate = DateTime.Now.AddDays(-4).ToShortDateString() + " 0:00:00"; M_Str_maxdate = DateTime.Now.AddDays(2).ToShortDateString() + " 0:00:00"; break; case DayOfWeek.Saturday: M_Str_mindate = DateTime.Now.AddDays(-5).ToShortDateString() + " 0:00:00"; M_Str_maxdate = DateTime.Now.AddDays(1).ToShortDateString() + " 0:00:00"; break; case DayOfWeek.Sunday: M_Str_mindate = DateTime.Now.AddDays(-6).ToShortDateString() + " 0:00:00"; M_Str_maxdate = DateTime.Now.AddDays(0).ToShortDateString() + " 0:00:00"; break; } string sCountWeek = new BCW.BLL.Statinfo().GetCount("AddTime>='" + M_Str_mindate + "'and AddTime<'" + M_Str_maxdate + "'").ToString(); string sCountWeekIP = new BCW.BLL.Statinfo().GetIPCount("AddTime>='" + M_Str_mindate + "'and AddTime<'" + M_Str_maxdate + "'").ToString(); //本月访问人数 string sCountMonth = new BCW.BLL.Statinfo().GetCount("Year(AddTime)=" + DateTime.Now.Year + " and Month(AddTime)=" + DateTime.Now.Month.ToString()).ToString(); string sCountMonthIP = new BCW.BLL.Statinfo().GetIPCount("Year(AddTime)=" + DateTime.Now.Year + " and Month(AddTime)=" + DateTime.Now.Month.ToString()).ToString(); //最高日访问量 DataSet ds = new BCW.BLL.Statinfo().GetList("Select COUNT(ID) AS count, MAX(AddTime) AS date From tb_Statinfo GROUP BY YEAR(AddTime), MONTH(AddTime), DAY(AddTime)"); int P_Int_max = 0;//最大值 string P_Str_date = ""; foreach (DataRow dr in ds.Tables[0].Rows) { if (!dr.IsNull(0)) { if (P_Int_max <= Convert.ToInt32(dr[0])) { P_Int_max = Convert.ToInt32(dr[0]); P_Str_date = Convert.ToDateTime(dr[1]).ToShortDateString(); } } } string sMaxCountDay = P_Int_max.ToString(); //最高日访问日期 string sMaxCountDayDate = ""; if (P_Str_date != "") { DateTime P_Date_date = Convert.ToDateTime(P_Str_date); sMaxCountDayDate = P_Date_date.Year + "年" + P_Date_date.Month + "月" + P_Date_date.Day + "日"; } //最高月访问量 P_Int_max = 0;//最大值 P_Str_date = ""; ds = new BCW.BLL.Statinfo().GetList("SELECT YEAR(AddTime) FROM tb_Statinfo GROUP BY YEAR(AddTime)"); foreach (DataRow drYear in ds.Tables[0].Rows) { drYear[0].ToString(); DataSet dsMonth = new BCW.BLL.Statinfo().GetList("SELECT COUNT(*) as count, MAX(Month(AddTime)) as month FROM tb_Statinfo where YEAR(AddTime)=" + drYear[0].ToString() + " GROUP BY Month(AddTime)"); foreach (DataRow drMonth in dsMonth.Tables[0].Rows) { if (!drMonth.IsNull(0)) { if (P_Int_max <= Convert.ToInt32(drMonth[0])) { P_Int_max = Convert.ToInt32(drMonth[0]); P_Str_date = drYear[0].ToString() + "年" + drMonth[1].ToString() + "月"; } } } } string sMaxCountMonth = P_Int_max.ToString(); //最高月访问日期 string sMaxCountMonthDate = P_Str_date; //最高年访问量 ds = new BCW.BLL.Statinfo().GetList("SELECT COUNT(ID), MAX(Year(AddTime)) FROM tb_Statinfo GROUP BY Year(AddTime)"); P_Int_max = 0;//最大值 P_Str_date = ""; foreach (DataRow dr in ds.Tables[0].Rows) { if (!dr.IsNull(0)) { if (P_Int_max <= Convert.ToInt32(dr[0])) { P_Int_max = Convert.ToInt32(dr[0]); P_Str_date = dr[1].ToString() + "年"; } } } string sMaxCountYear = P_Int_max.ToString(); //最高年访问日期 string sMaxCountYearDate = P_Str_date; //总访问人数 string sTotalCount = new BCW.BLL.Statinfo().GetCount("").ToString(); string sTotalCountIP = new BCW.BLL.Statinfo().GetIPCount("").ToString(); builder.Append(Out.Tab("<div>", "<br />")); builder.Append("本日访问:" + sCountDay + " IP:" + sCountDayIP + ""); builder.Append(Out.Tab("</div>", "")); builder.Append(Out.Tab("<div>", "<br />")); builder.Append("本周访问:" + sCountWeek + " IP:" + sCountWeekIP + ""); builder.Append(Out.Tab("</div>", "")); builder.Append(Out.Tab("<div>", "<br />")); builder.Append("本月访问:" + sCountMonth + " IP:" + sCountMonthIP + ""); builder.Append(Out.Tab("</div>", "")); builder.Append(Out.Tab("<div>", "<br />")); builder.Append("总访问:" + sTotalCount + " IP:" + sTotalCountIP + ""); builder.Append(Out.Tab("</div>", "")); builder.Append(Out.Tab("<div>", "<br />")); builder.Append("最高日访问:" + sMaxCountDay + ""); builder.Append(Out.Tab("</div>", "")); builder.Append(Out.Tab("<div>", "<br />")); builder.Append("最高日访问日期:" + sMaxCountDayDate + ""); builder.Append(Out.Tab("</div>", "")); builder.Append(Out.Tab("<div>", "<br />")); builder.Append("最高月访问:" + sMaxCountMonth + ""); builder.Append(Out.Tab("</div>", "")); builder.Append(Out.Tab("<div>", "<br />")); builder.Append("最高月访问日期:" + sMaxCountMonthDate + ""); builder.Append(Out.Tab("</div>", "")); builder.Append(Out.Tab("<div>", "<br />")); builder.Append("最高年访问:" + sMaxCountYear + ""); builder.Append(Out.Tab("</div>", "")); builder.Append(Out.Tab("<div>", "<br />")); builder.Append("最高年访问日期:" + sMaxCountYearDate + ""); builder.Append(Out.Tab("</div>", "")); builder.Append(Out.Tab("<div class=\"text\">", "<br />")); string VCountTypeName = string.Empty; if (ub.Get("SiteVCountType") == "0") { VCountTypeName = "按UV"; } else if (ub.Get("SiteVCountType") == "1") { VCountTypeName = "按PV"; } else { VCountTypeName = "已关闭"; } builder.Append("温馨提示:统计按自然日、周、月等计算,当前" + VCountTypeName + "统计"); builder.Append(Out.Tab("</div>", "")); }