|
@@ -11,12 +11,12 @@ using Models.DTO;
|
|
|
using Models.Entity;
|
|
using Models.Entity;
|
|
|
using Models.Enum;
|
|
using Models.Enum;
|
|
|
using Models.ViewModel;
|
|
using Models.ViewModel;
|
|
|
|
|
+using Newtonsoft.Json;
|
|
|
using System;
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
using System.Collections.Generic;
|
|
|
using System.IO;
|
|
using System.IO;
|
|
|
using System.Linq;
|
|
using System.Linq;
|
|
|
using System.Threading;
|
|
using System.Threading;
|
|
|
-using Masuit.Tools.Mapping;
|
|
|
|
|
|
|
|
|
|
namespace Masuit.MyBlogs.WebApp.Models.Hangfire
|
|
namespace Masuit.MyBlogs.WebApp.Models.Hangfire
|
|
|
{
|
|
{
|
|
@@ -240,15 +240,6 @@ namespace Masuit.MyBlogs.WebApp.Models.Hangfire
|
|
|
int monthpv = list.Count(i => i.ViewTime >= monthStart);
|
|
int monthpv = list.Count(i => i.ViewTime >= monthStart);
|
|
|
int monthuv = list.DistinctBy(i => i.IP).Count(i => i.ViewTime >= monthStart);
|
|
int monthuv = list.DistinctBy(i => i.IP).Count(i => i.ViewTime >= monthStart);
|
|
|
|
|
|
|
|
- ////YTD统计
|
|
|
|
|
- //var yearStart = new DateTime(DateTime.Now.Year, 1, 1);
|
|
|
|
|
- //int yearpv = list.Count(i => i.ViewTime >= yearStart);
|
|
|
|
|
- //int yearuv = list.DistinctBy(i => i.IP).Count(i => i.ViewTime >= yearStart);
|
|
|
|
|
-
|
|
|
|
|
- ////完全统计
|
|
|
|
|
- //int totalpv = list.Count();
|
|
|
|
|
- //int totaluv = list.DistinctBy(i => i.IP).Count();
|
|
|
|
|
-
|
|
|
|
|
var allClient = new List<object>();
|
|
var allClient = new List<object>();
|
|
|
var uniClient = new List<object>();
|
|
var uniClient = new List<object>();
|
|
|
var allRegion = new List<object>();
|
|
var allRegion = new List<object>();
|
|
@@ -360,7 +351,7 @@ namespace Masuit.MyBlogs.WebApp.Models.Hangfire
|
|
|
TimeStamp = g.Key.GetTotalMilliseconds(),
|
|
TimeStamp = g.Key.GetTotalMilliseconds(),
|
|
|
pv = g.Count(),
|
|
pv = g.Count(),
|
|
|
uv = count,
|
|
uv = count,
|
|
|
- iv = count - dic[g.Key]
|
|
|
|
|
|
|
+ iv = count - (dic.ContainsKey(g.Key) ? dic[g.Key] : 0)
|
|
|
};
|
|
};
|
|
|
}).ToList(); //汇总统计
|
|
}).ToList(); //汇总统计
|
|
|
|
|
|
|
@@ -399,24 +390,6 @@ namespace Masuit.MyBlogs.WebApp.Models.Hangfire
|
|
|
g.iv
|
|
g.iv
|
|
|
}).ToList(); //每日新增独立访客
|
|
}).ToList(); //每日新增独立访客
|
|
|
|
|
|
|
|
- ////访问时长统计
|
|
|
|
|
- //InterviewAnalysisDto maxSpanViewer = list.OrderByDescending(i => i.OnlineSpanSeconds).Select(i => new InterviewAnalysisDto
|
|
|
|
|
- //{
|
|
|
|
|
- // ViewTime = i.ViewTime,
|
|
|
|
|
- // IP = i.IP,
|
|
|
|
|
- // BrowserType = i.BrowserType,
|
|
|
|
|
- // Province = i.Province,
|
|
|
|
|
- // OnlineSpanSeconds = i.OnlineSpanSeconds
|
|
|
|
|
- //}).FirstOrDefault(); //历史最久访客
|
|
|
|
|
- //InterviewAnalysisDto maxSpanViewerToday = list.Where(i => i.ViewTime >= DateTime.Today).OrderByDescending(i => i.OnlineSpanSeconds).Select(i => new InterviewAnalysisDto
|
|
|
|
|
- //{
|
|
|
|
|
- // ViewTime = i.ViewTime,
|
|
|
|
|
- // IP = i.IP,
|
|
|
|
|
- // BrowserType = i.BrowserType,
|
|
|
|
|
- // Province = i.Province,
|
|
|
|
|
- // OnlineSpanSeconds = i.OnlineSpanSeconds
|
|
|
|
|
- //}).FirstOrDefault(); //今日最久访客
|
|
|
|
|
-
|
|
|
|
|
double average = 0;
|
|
double average = 0;
|
|
|
double average2 = 0;
|
|
double average2 = 0;
|
|
|
if (list.Any(i => i.OnlineSpanSeconds > 0 && i.ViewTime >= DateTime.Today))
|
|
if (list.Any(i => i.OnlineSpanSeconds > 0 && i.ViewTime >= DateTime.Today))
|
|
@@ -441,11 +414,7 @@ namespace Masuit.MyBlogs.WebApp.Models.Hangfire
|
|
|
Pv = pv,
|
|
Pv = pv,
|
|
|
Todaypv = todaypv,
|
|
Todaypv = todaypv,
|
|
|
Todayuv = todayuv,
|
|
Todayuv = todayuv,
|
|
|
- //Totalpv = totalpv,
|
|
|
|
|
- //Totaluv = totaluv,
|
|
|
|
|
Uv = uv,
|
|
Uv = uv,
|
|
|
- //Yearpv = yearpv,
|
|
|
|
|
- //Yearuv = yearuv,
|
|
|
|
|
BounceRate = $"{dap?.Dap}/{dap?.All}({dap?.Result:P})",
|
|
BounceRate = $"{dap?.Dap}/{dap?.All}({dap?.Result:P})",
|
|
|
BounceRateAggregate = dapAgg.Select(a => new object[]
|
|
BounceRateAggregate = dapAgg.Select(a => new object[]
|
|
|
{
|
|
{
|
|
@@ -455,27 +424,11 @@ namespace Masuit.MyBlogs.WebApp.Models.Hangfire
|
|
|
BounceRateToday = $"{todayDap?.Dap}/{todayDap?.All}({todayDap?.Rate:P})",
|
|
BounceRateToday = $"{todayDap?.Dap}/{todayDap?.All}({todayDap?.Rate:P})",
|
|
|
OnlineSpanAggregate = new
|
|
OnlineSpanAggregate = new
|
|
|
{
|
|
{
|
|
|
- //maxSpanViewerToday = new
|
|
|
|
|
- //{
|
|
|
|
|
- // maxSpanViewerToday?.IP,
|
|
|
|
|
- // maxSpanViewerToday?.BrowserType,
|
|
|
|
|
- // maxSpanViewerToday?.Province,
|
|
|
|
|
- // maxSpanViewerToday?.ViewTime,
|
|
|
|
|
- // OnlineSpanSeconds = TimeSpan2String(TimeSpan.FromSeconds(maxSpanViewerToday?.OnlineSpanSeconds ?? 0))
|
|
|
|
|
- //},
|
|
|
|
|
averSpanToday,
|
|
averSpanToday,
|
|
|
- //maxSpanViewer = new
|
|
|
|
|
- //{
|
|
|
|
|
- // maxSpanViewer?.IP,
|
|
|
|
|
- // maxSpanViewer?.BrowserType,
|
|
|
|
|
- // maxSpanViewer?.Province,
|
|
|
|
|
- // maxSpanViewer?.ViewTime,
|
|
|
|
|
- // OnlineSpanSeconds = TimeSpan2String(TimeSpan.FromSeconds(maxSpanViewer?.OnlineSpanSeconds ?? 0))
|
|
|
|
|
- //},
|
|
|
|
|
averSpan,
|
|
averSpan,
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
- var unique = all.Copy();
|
|
|
|
|
|
|
+ var unique = JsonConvert.DeserializeObject<AnalysisModel>(all.ToJsonString());
|
|
|
unique.Browser = uniBrowser;
|
|
unique.Browser = uniBrowser;
|
|
|
unique.Client = uniClient;
|
|
unique.Client = uniClient;
|
|
|
unique.Region = uniRegion;
|
|
unique.Region = uniRegion;
|
|
@@ -484,7 +437,7 @@ namespace Masuit.MyBlogs.WebApp.Models.Hangfire
|
|
|
|
|
|
|
|
private static string TimeSpan2String(TimeSpan span)
|
|
private static string TimeSpan2String(TimeSpan span)
|
|
|
{
|
|
{
|
|
|
- string averSpan = String.Empty;
|
|
|
|
|
|
|
+ string averSpan = string.Empty;
|
|
|
if (span.Hours > 0)
|
|
if (span.Hours > 0)
|
|
|
{
|
|
{
|
|
|
averSpan += span.Hours + "小时";
|
|
averSpan += span.Hours + "小时";
|