HomeDal.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using Cksoft.Data;
  2. using DllEapEntity.OFILM;
  3. using DllUfpDal;
  4. using DllUfpEntity.Dto;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. namespace DllEapDal.OFILM
  10. {
  11. public class HomeDal
  12. {
  13. private IDatabase db;
  14. public HomeDal(IDatabase db)
  15. {
  16. this.db = db;
  17. }
  18. public HomeData get()
  19. {
  20. var data = new HomeData();
  21. DateTime end = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")).AddMilliseconds(-1);
  22. DateTime start = end.AddMonths(-1).AddMilliseconds(1);
  23. var dal = new VisitLogDal(db);
  24. /*string filter = $@" and a.VisitTime>='{Mstart.ToString("yyyy-MM-dd 00:00:00")}' and a.VisitTime<='{end.ToString("yyyy-MM-dd 00:00:00")}'";
  25. data.total = dal.GetReportTotalInfo(filter, "").Count;
  26. data.average = data.total / 30;*/
  27. var dto = dal.GetVisitLogByDate(start, end).ToList();
  28. List<VisitLogAnalysisDto> visitLogs = new List<VisitLogAnalysisDto>();
  29. string sql = $@"SELECT count(1) from visitlog where VisitTime<'{end.ToString("yyyy-MM-dd HH:mm:ss")}'";
  30. var sum = Convert.ToInt32(db.FindObject(sql));
  31. for (int i = 0; i < dto.Count-1; i++)
  32. {
  33. data.total += dto[i].Count;
  34. if (dto.Count - i <= 8)
  35. {
  36. visitLogs.Add(dto[i]);
  37. }
  38. }
  39. List<VisitLogAnalysisDto> list = new List<VisitLogAnalysisDto>();
  40. for (int i = 6; i >=0; i--)
  41. {
  42. var date = end.AddDays(-i);
  43. 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 "));
  44. list.Add(new VisitLogAnalysisDto()
  45. {
  46. Count = count,
  47. Date = DateTime.Parse(date.ToString("yyyy-MM-dd"))
  48. });
  49. }
  50. /* var days = end.AddMilliseconds(1).Subtract(DateTime.Parse("2022-01-08 00:00:00")).TotalDays;*/
  51. data.dto.XData = visitLogs.Select(c => c.Date.Value.ToString("yyyy-MM-dd")).ToList();
  52. List<decimal> y1 = new List<decimal>();
  53. List<decimal> y2 = new List<decimal>();
  54. data.average = sum / Convert.ToInt32(end.AddMilliseconds(1).Subtract(DateTime.Parse("2021-03-16 00:00:00")).TotalDays);
  55. foreach (var item in visitLogs)
  56. {
  57. var da = DateTime.Parse(item.Date.Value.ToString("yyyy-MM-dd"));
  58. y1.Add(Convert.ToDecimal(item.Count));
  59. y2.Add(Convert.ToDecimal(list.Where(c => c.Date == da).FirstOrDefault().Count));
  60. }
  61. data.dto.SeriesData.Add(new Series { Name = "当天访问量", Type = "line", Data = y1,YAxis=0 });
  62. data.dto.SeriesData.Add(new Series { Name = "当天访问人次", Type = "line", Data = y2,YAxis=1});
  63. return data;
  64. }
  65. }
  66. }