123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- using Cksoft.Data;
- using DllEapEntity.OFILM;
- using DllUfpDal;
- using DllUfpEntity.Dto;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace DllEapDal.OFILM
- {
- public class HomeDal
- {
- private IDatabase db;
- public HomeDal(IDatabase db)
- {
- this.db = db;
- }
- public HomeData get()
- {
- var data = new HomeData();
- DateTime end = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")).AddMilliseconds(-1);
- DateTime start = end.AddMonths(-1).AddMilliseconds(1);
-
- var dal = new VisitLogDal(db);
- /*string filter = $@" and a.VisitTime>='{Mstart.ToString("yyyy-MM-dd 00:00:00")}' and a.VisitTime<='{end.ToString("yyyy-MM-dd 00:00:00")}'";
- data.total = dal.GetReportTotalInfo(filter, "").Count;
- data.average = data.total / 30;*/
- var dto = dal.GetVisitLogByDate(start, end).ToList();
- List<VisitLogAnalysisDto> visitLogs = new List<VisitLogAnalysisDto>();
- string sql = $@"SELECT count(1) from visitlog where VisitTime<'{end.ToString("yyyy-MM-dd HH:mm:ss")}'";
- var sum = Convert.ToInt32(db.FindObject(sql));
- for (int i = 0; i < dto.Count-1; i++)
- {
- data.total += dto[i].Count;
- if (dto.Count - i <= 8)
- {
- visitLogs.Add(dto[i]);
- }
- }
- List<VisitLogAnalysisDto> list = new List<VisitLogAnalysisDto>();
- for (int i = 6; i >=0; i--)
- {
- var date = end.AddDays(-i);
- var count = Convert.ToInt32(db.FindObject($@"SELECT COUNT(1) FROM (select UserCode from visitlog where VisitTime>='{date.ToString("yyyy-MM-dd 00:00:00")} ' and VisitTime<='{date.ToString("yyyy-MM-dd 23:59:59.999")}' group by usercode) t "));
- list.Add(new VisitLogAnalysisDto()
- {
- Count = count,
- Date = DateTime.Parse(date.ToString("yyyy-MM-dd"))
- });
- }
- /* var days = end.AddMilliseconds(1).Subtract(DateTime.Parse("2022-01-08 00:00:00")).TotalDays;*/
- data.dto.XData = visitLogs.Select(c => c.Date.Value.ToString("yyyy-MM-dd")).ToList();
- List<decimal> y1 = new List<decimal>();
- List<decimal> y2 = new List<decimal>();
- data.average = sum / Convert.ToInt32(end.AddMilliseconds(1).Subtract(DateTime.Parse("2021-03-16 00:00:00")).TotalDays);
- foreach (var item in visitLogs)
- {
- var da = DateTime.Parse(item.Date.Value.ToString("yyyy-MM-dd"));
- y1.Add(Convert.ToDecimal(item.Count));
- y2.Add(Convert.ToDecimal(list.Where(c => c.Date == da).FirstOrDefault().Count));
- }
- data.dto.SeriesData.Add(new Series { Name = "当天访问量", Type = "line", Data = y1,YAxis=0 });
- data.dto.SeriesData.Add(new Series { Name = "当天访问人次", Type = "line", Data = y2,YAxis=1});
- return data;
- }
- }
- }
|