Ejemplo n.º 1
0
        //[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));
        }
Ejemplo n.º 2
0
        //[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));
        }
Ejemplo n.º 3
0
        //[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));
        }
Ejemplo n.º 4
0
        /// <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
                    });
                }
            }
        }