//[AuthorizeToken] public JsonResult Refresh() { string conStr = Session["conStr"].ToString(); //ConfigurationManager.ConnectionStrings["MySQLConnectionString"].ConnectionString; Utilizator u = (Utilizator)Session["CURENT_USER"]; DashboardJson dj = new DashboardJson(Convert.ToInt32(u.ID), Convert.ToInt32(Session["ID_SOCIETATE"]), conStr); return(Json(dj, JsonRequestBehavior.AllowGet)); }
//[AuthorizeToken] public ActionResult IndexMain(string id) { string conStr = Session["conStr"].ToString(); //ConfigurationManager.ConnectionStrings["MySQLConnectionString"].ConnectionString; Utilizator u = (Utilizator)Session["CURENT_USER"]; DashboardJson dj = new DashboardJson(Convert.ToInt32(u.ID), Convert.ToInt32(Session["ID_SOCIETATE"]), conStr); return(PartialView("_DashboardMain", dj)); }
//[AuthorizeToken] public ActionResult Index() { string conStr = Session["conStr"].ToString(); //ConfigurationManager.ConnectionStrings["MySQLConnectionString"].ConnectionString; Utilizator u = (Utilizator)Session["CURENT_USER"]; DashboardJson dj = new DashboardJson(Convert.ToInt32(u.ID), Convert.ToInt32(Session["ID_SOCIETATE"]), conStr); /* * DosareRepository dr = new DosareRepository(Convert.ToInt32(u.ID), conStr); * dj.DOSARE_TOTAL = Convert.ToInt32(dr.CountAll().Result); * dj.DOSARE_FROM_LAST_LOGIN = Convert.ToInt32(dr.CountFromLastLogin().Result); * dj.MESAJE_NOI = 0; */ return(PartialView("_Dashboard", dj)); }
/// <summary> /// 生成首页数据 /// </summary> /// <param name="websiteOwnerList">站点列表</param> /// <param name="date">日期</param> public void BuildDashboardInfo(List <string> websiteList, DateTime nDate) { if (websiteList.Count == 0) { return; } int nDateInt = DateTimeHelper.ToDateInt8ByDateTime(nDate); int lastDate7Int = DateTimeHelper.ToDateInt8ByDateTime(nDate.AddDays(-6)); int lastDate30Int = DateTimeHelper.ToDateInt8ByDateTime(nDate.AddDays(-29)); List <DashboardLog> dashLogList = GetDashboardLogList(null, lastDate30Int, nDateInt); List <DashboardInfo> dashInfoList = GetDashboardInfoList(); List <DashboardLog> uvDashLogList = new List <DashboardLog>(); #region 访客记录统计 List <MonitorEventDetailsInfo> uvList = GetDashboardUVList(null, nDate.AddDays(-29).ToString("yyyy-MM-dd"), nDate.ToString("yyyy-MM-dd")); List <DashboardMonitorInfo> uvDashboardLogList = GetColList <DashboardMonitorInfo>(int.MaxValue, 1, "1=1", "DetailID"); //ExecuteSql("truncate table ZCJ_DashboardMonitorInfo");//清除原30天UV记录 if (uvList.Count > 0) { List <DashboardMonitorInfo> uvGroupList = uvList.GroupBy(p => new { p.WebsiteOwner, p.EventUserID }).Select(g => new DashboardMonitorInfo { WebsiteOwner = g.Key.WebsiteOwner, EventUserID = g.Key.EventUserID, DetailID = g.Max(p => p.DetailID).Value }).OrderByDescending(x => x.DetailID).ToList(); //删除数据 List <int> delIdList = uvDashboardLogList.Where(p => !uvGroupList.Exists(pi => pi.DetailID == p.DetailID)).Select(pid => pid.DetailID).ToList(); if (delIdList.Count > 0) { DeleteMultByKey <DashboardMonitorInfo>("DetailID", ZentCloud.Common.MyStringHelper.ListToStr(delIdList, "", ",")); } List <int> addIdList = uvGroupList.Where(p => !uvDashboardLogList.Exists(pi => pi.DetailID == p.DetailID)).Select(pid => pid.DetailID).ToList(); List <DashboardMonitorInfo> uvAddDashboardList = uvList.Where(p => addIdList.Exists(pi => pi == p.DetailID.Value)).Select(g => new DashboardMonitorInfo { DetailID = g.DetailID.Value, WebsiteOwner = g.WebsiteOwner, EventUserID = g.EventUserID, EventDate = g.EventDate.Value, SourceIP = g.SourceIP, IPLocation = g.IPLocation, EventBrowserID = g.EventBrowserID }).ToList(); if (uvAddDashboardList.Count > 0) { string userIds = MyStringHelper.ListToStr(uvAddDashboardList.Select(p => p.EventUserID).Distinct().ToList(), "'", ","); List <UserInfo> userList = GetColMultListByKey <UserInfo>(int.MaxValue, 1, "UserID", userIds, "AutoID,UserID,TrueName,Phone,WXNickname,WXHeadimgurl"); for (int i = 0; i < uvAddDashboardList.Count; i++) { UserInfo nuser = userList.FirstOrDefault(p => p.UserID == uvAddDashboardList[i].EventUserID); if (nuser != null) { uvAddDashboardList[i].EventUserWXNikeName = nuser.WXNickname; uvAddDashboardList[i].EventUserTrueName = nuser.TrueName; uvAddDashboardList[i].EventUserWXImg = nuser.WXHeadimgurl; uvAddDashboardList[i].EventUserPhone = nuser.Phone; } Add(uvAddDashboardList[i]); } } uvDashLogList = uvList.Where(ni => uvGroupList.Exists(pi => pi.DetailID == ni.DetailID)).GroupBy(p => new { p.WebsiteOwner, Value = DateTimeHelper.ToDateInt8ByDateTime(p.EventDate.Value) }).Select(g => new DashboardLog { WebsiteOwner = g.Key.WebsiteOwner, Date = g.Key.Value, DashboardType = "UV", Num = g.Count() }).OrderByDescending(x => x.Date).ThenBy(x => x.WebsiteOwner).ToList(); } #endregion List <DashboardLog> fansDashLogList = new List <DashboardLog>(); #region 粉丝记录统计 List <Log> fansList = GetDashboardSubscribeList(null, nDate.AddDays(-29).ToString("yyyy-MM-dd"), nDate.ToString("yyyy-MM-dd")); if (fansList.Count > 0) { fansDashLogList = fansList.GroupBy(p => new { p.WebsiteOwner, p.UserID }).Select(g => new Log { WebsiteOwner = g.Key.WebsiteOwner, UserID = g.Key.UserID, InsertDate = g.Max(p => p.InsertDate) }).GroupBy(e => new { e.WebsiteOwner, Value = DateTimeHelper.ToDateInt8ByDateTime(e.InsertDate) }).Select(f => new DashboardLog { WebsiteOwner = f.Key.WebsiteOwner, Date = f.Key.Value, DashboardType = "Fans", Num = f.Count() }).OrderByDescending(x => x.Date).ThenBy(x => x.WebsiteOwner).ToList(); } #endregion List <TotalInfo> memberTotalList = GetAllDashboardRegUserTotal(); List <TotalInfo> uvTotalList = GetAllDashboardUVTotal(); List <TotalInfo> fansTotalList = GetAllDashboardSubscribeTotal(); List <TotalInfo> orderTotalList = GetAllDashboardOrderTotal("0,1,2,3"); List <TotalInfo> visitTotalList = GetAllDashboardMonitorEventDetailsTotal(); foreach (string web in websiteList) { DashboardInfo ndi = dashInfoList.FirstOrDefault(p => p.WebsiteOwner == web); //if (ndi!=null && ndi.Date == nDateInt) continue; DashboardJson nDashboardJson = new DashboardJson(); nDashboardJson.visit_num_lastday = dashLogList.Where(p => p.WebsiteOwner == web && p.DashboardType == "WebAccessLog" && p.Date == nDateInt).Sum(p => p.Num); nDashboardJson.order_num_lastday = dashLogList.Where(p => p.WebsiteOwner == web && p.DashboardType == "WXMallOrder" && p.Date == nDateInt).Sum(p => p.Num); nDashboardJson.member_num_lastday = dashLogList.Where(p => p.WebsiteOwner == web && p.DashboardType == "Member" && p.Date == nDateInt).Sum(p => p.Num); nDashboardJson.uv_num_lastday = uvDashLogList.Where(p => p.WebsiteOwner == web && p.Date == nDateInt).Sum(p => p.Num); nDashboardJson.fans_num_lastday = fansDashLogList.Where(p => p.WebsiteOwner == web && p.Date == nDateInt).Sum(p => p.Num); nDashboardJson.visit_num_lastweek = dashLogList.Where(p => p.WebsiteOwner == web && p.DashboardType == "WebAccessLog" && p.Date >= lastDate7Int && p.Date <= nDateInt).Sum(p => p.Num); nDashboardJson.order_num_lastweek = dashLogList.Where(p => p.WebsiteOwner == web && p.DashboardType == "WXMallOrder" && p.Date >= lastDate7Int && p.Date <= nDateInt).Sum(p => p.Num); nDashboardJson.member_num_lastweek = dashLogList.Where(p => p.WebsiteOwner == web && p.DashboardType == "Member" && p.Date >= lastDate7Int && p.Date <= nDateInt).Sum(p => p.Num); nDashboardJson.uv_num_lastweek = uvDashLogList.Where(p => p.WebsiteOwner == web && p.Date >= lastDate7Int && p.Date <= nDateInt).Sum(p => p.Num); nDashboardJson.fans_num_lastweek = fansDashLogList.Where(p => p.WebsiteOwner == web && p.Date >= lastDate7Int && p.Date <= nDateInt).Sum(p => p.Num); nDashboardJson.visit_num_lastmonth = dashLogList.Where(p => p.WebsiteOwner == web && p.DashboardType == "WebAccessLog" && p.Date >= lastDate30Int && p.Date <= nDateInt).Sum(p => p.Num); nDashboardJson.order_num_lastmonth = dashLogList.Where(p => p.WebsiteOwner == web && p.DashboardType == "WXMallOrder" && p.Date >= lastDate30Int && p.Date <= nDateInt).Sum(p => p.Num); nDashboardJson.member_num_lastmonth = dashLogList.Where(p => p.WebsiteOwner == web && p.DashboardType == "Member" && p.Date >= lastDate30Int && p.Date <= nDateInt).Sum(p => p.Num); nDashboardJson.uv_num_lastmonth = uvDashLogList.Where(p => p.WebsiteOwner == web && p.Date >= lastDate30Int && p.Date <= nDateInt).Sum(p => p.Num); nDashboardJson.fans_num_lastmonth = fansDashLogList.Where(p => p.WebsiteOwner == web && p.Date >= lastDate30Int && p.Date <= nDateInt).Sum(p => p.Num); TotalInfo memberTotal = memberTotalList.FirstOrDefault(p => p.WebsiteOwner == web); if (memberTotal != null) { nDashboardJson.member_total = memberTotal.Total; } TotalInfo uvTotal = uvTotalList.FirstOrDefault(p => p.WebsiteOwner == web); if (uvTotal != null) { nDashboardJson.uv_total = uvTotal.Total; } TotalInfo fansTotal = fansTotalList.FirstOrDefault(p => p.WebsiteOwner == web); if (fansTotal != null) { nDashboardJson.fans_total = fansTotal.Total; } TotalInfo orderTotal = orderTotalList.FirstOrDefault(p => p.WebsiteOwner == web); if (orderTotal != null) { nDashboardJson.order_total = orderTotal.Total; } TotalInfo visitTotal = visitTotalList.FirstOrDefault(p => p.WebsiteOwner == web); if (visitTotal != null) { nDashboardJson.visit_total = visitTotal.Total; } for (DateTime i = nDate; i >= nDate.AddDays(-29); i = i.AddDays(-1)) { int rDateInt = ZentCloud.Common.DateTimeHelper.ToDateInt8ByDateTime(i); string rDateString = i.ToString("yyyy-MM-dd"); nDashboardJson.day_list.Add(rDateString); DashboardLog rVisitLog = dashLogList.FirstOrDefault(p => p.WebsiteOwner == web && p.DashboardType == "WebAccessLog" && p.Date == rDateInt); if (rVisitLog == null) { nDashboardJson.visit_num_list.Add(0); } else { nDashboardJson.visit_num_list.Add(rVisitLog.Num); } DashboardLog rOrderLog = dashLogList.FirstOrDefault(p => p.WebsiteOwner == web && p.DashboardType == "WXMallOrder" && p.Date == rDateInt); if (rOrderLog == null) { nDashboardJson.order_num_list.Add(0); } else { nDashboardJson.order_num_list.Add(rOrderLog.Num); } DashboardLog rMemberLog = dashLogList.FirstOrDefault(p => p.WebsiteOwner == web && p.DashboardType == "Member" && p.Date == rDateInt); if (rMemberLog == null) { nDashboardJson.member_num_list.Add(0); } else { nDashboardJson.member_num_list.Add(rMemberLog.Num); } DashboardLog rUVLog = uvDashLogList.FirstOrDefault(p => p.WebsiteOwner == web && p.Date == rDateInt); if (rUVLog == null) { nDashboardJson.uv_num_list.Add(0); } else { nDashboardJson.uv_num_list.Add(rUVLog.Num); } DashboardLog rFansLog = fansDashLogList.FirstOrDefault(p => p.WebsiteOwner == web && p.Date == rDateInt); if (rFansLog == null) { nDashboardJson.fans_num_list.Add(0); } else { nDashboardJson.fans_num_list.Add(rFansLog.Num); } } nDashboardJson.timestamp = DateTimeHelper.DateTimeToUnixTimestamp(DateTime.Now); string nJson = JsonConvert.SerializeObject(nDashboardJson); if (ndi == null) { Add(new DashboardInfo() { WebsiteOwner = web, Date = nDateInt, Json = nJson }); } else { Update(new DashboardInfo() { WebsiteOwner = web, Date = nDateInt, Json = nJson }); } } }