/// <summary> /// 检索浏览量 /// </summary> /// <param name="data"></param> /// <returns></returns> public async Task <IActionResult> GetVisitamount(VisitAmountInputViewModel data) { var result = await _visitamount.GetVisiByTime(data); return(Json(result)); }
public async Task <VisitamountOutViewModel> GetVisiByTime(VisitAmountInputViewModel data) { if (!data.startTime.HasValue) { data.startTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); } if (!data.endTime.HasValue) { data.endTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month)); } VisitamountOutViewModel result = new VisitamountOutViewModel(); //得到访问情况 var query = from visi in _db.VisitAmounts where visi.visitDateTime >= data.startTime.Value && visi.visitDateTime <= data.endTime.Value group visi by new { time = visi.visitDateTime, ipaddress = visi.ipaddress }; if (data.visitAountEnum == VisitAountEnum.Week) { var week = new Dictionary <string, int>(); week.Add("Monday", 0); week.Add("Tuesday", 0); week.Add("Wednesday", 0); week.Add("Thursday", 0); week.Add("Friday", 0); week.Add("Saturday", 0); week.Add("Sunday", 0); result.data = week; foreach (var item in query) { result.data[item.Key.time.DayOfWeek.ToString()]++; } } else if (data.visitAountEnum == VisitAountEnum.Month) { var week = new Dictionary <string, int>(); for (int i = 1; i <= DateTime.DaysInMonth(data.endTime.Value.Year, data.endTime.Value.Month); i++) { week.Add(i + "号", 0); } foreach (var item in query) { week[item.Key.time.Day + "号"]++; } result.data = week; } else if (data.visitAountEnum == VisitAountEnum.Year) { var week = new Dictionary <string, int>(); for (int i = 1; i <= 12; i++) { week.Add(i + "月", 0); } foreach (var item in query) { week[item.Key.time.Month + "月"]++; } result.data = week; } else if (data.visitAountEnum == VisitAountEnum.Day) { var week = new Dictionary <string, int>(); foreach (var item in query) { if (!week.ContainsKey(item.Key.time.ToString("yyyy-MM-dd"))) { week.Add(item.Key.time.ToString("yyyy-MM-dd"), 0); } week[item.Key.time.ToString("yyyy-MM-dd")]++; } result.data = week; } return(result); }