Exemple #1
0
        /// <summary>
        /// 检索浏览量
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public async Task <IActionResult> GetVisitamount(VisitAmountInputViewModel data)
        {
            var result = await _visitamount.GetVisiByTime(data);

            return(Json(result));
        }
Exemple #2
0
        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);
        }