BsController.cs 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. using Hotline.Caching.Interfaces;
  2. using Hotline.Orders;
  3. using Hotline.Repository.SqlSugar.Orders;
  4. using Hotline.Settings;
  5. using Hotline.Share.Enums.Order;
  6. using Microsoft.AspNetCore.Authorization;
  7. using Microsoft.AspNetCore.Mvc;
  8. using SqlSugar;
  9. using XF.Domain.Repository;
  10. namespace Hotline.Api.Controllers
  11. {
  12. public class BsController : BaseController
  13. {
  14. private readonly IOrderRepository _orderRepository;
  15. private readonly ISystemDicDataCacheManager _systemDicDataCacheManager;
  16. private readonly IRepository<SystemArea> _areaRepository;
  17. public BsController(
  18. IOrderRepository orderRepository,
  19. ISystemDicDataCacheManager systemDicDataCacheManager,
  20. IRepository<SystemArea> areaRepository)
  21. {
  22. _orderRepository = orderRepository;
  23. _systemDicDataCacheManager = systemDicDataCacheManager;
  24. _areaRepository = areaRepository;
  25. }
  26. [AllowAnonymous]
  27. [HttpGet("datashow")]
  28. public async Task<dynamic> InitDataShowAsync()
  29. {
  30. var now = DateTime.Now;
  31. var month = now.Month;
  32. var day = now.Day;
  33. //area2
  34. //var area2 = await _orderRepository.Queryable(workflowFilter: false)
  35. // //.Where(d => d.CreationTime.Month == now.Month)
  36. // .GroupBy(d => d.SourceChannel)
  37. // .Select(d => new
  38. // {
  39. // Source = d.SourceChannel,
  40. // Count = SqlFunc.AggregateCount(d.SourceChannel)
  41. // })
  42. // .ToListAsync(HttpContext.RequestAborted);
  43. var area2 = _systemDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.SourceChannel)
  44. .Select(d => new
  45. {
  46. d.DicDataName,
  47. Count = d.DicDataValue == "RGDH" ? Random.Shared.Next(2000, 3000) : Random.Shared.Next(10, 50)
  48. })
  49. .ToList();
  50. //area4
  51. var areas = await _areaRepository.Queryable()
  52. .Where(d => d.AreaId != "511500" && d.AreaId.StartsWith("5115"))
  53. .ToListAsync(HttpContext.RequestAborted);
  54. var area4 = areas.Select(d => new
  55. {
  56. d.AreaName,
  57. Total = Random.Shared.Next(500, 1500),
  58. Completed = Random.Shared.Next(100, 500)
  59. })
  60. .ToList();
  61. //var area4 = await _orderRepository.Queryable(workflowFilter: false)
  62. // .Where(d => d.AreaCode != "511500" && d.AreaCode.StartsWith("5115"))
  63. // .GroupBy(d => new { d.AreaCode, d.Address })
  64. // .Select(d => new
  65. // {
  66. // d.Address,
  67. // Count = SqlFunc.AggregateCount(d.AreaCode)
  68. // })
  69. // .ToListAsync(HttpContext.RequestAborted);
  70. //area5
  71. //var acceptTypes = _systemDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.AcceptType)
  72. // .OrderBy(d => d.DicDataName).ToList();
  73. //var completed = await _orderRepository.Queryable(workflowFilter: false)
  74. // .Where(d => d.Status == EOrderStatus.Filed)
  75. // .GroupBy(d => d.AcceptType)
  76. // .Select(d => new
  77. // {
  78. // d.AcceptType,
  79. // Count = SqlFunc.AggregateCount(d.AcceptType)
  80. // })
  81. // .ToListAsync(HttpContext.RequestAborted);
  82. //var uncompleted = await _orderRepository.Queryable(workflowFilter: false)
  83. // .Where(d => d.Status != EOrderStatus.Filed)
  84. // .GroupBy(d => d.AcceptType)
  85. // .Select(d => new
  86. // {
  87. // d.AcceptType,
  88. // Count = SqlFunc.AggregateCount(d.AcceptType)
  89. // })
  90. // .ToListAsync(HttpContext.RequestAborted);
  91. var area5 = _systemDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.AcceptType)
  92. .Select(d => new
  93. {
  94. AcceptType = d.DicDataName,
  95. Completed = Random.Shared.Next(1, 200),
  96. Uncompleted = Random.Shared.Next(1, 100)
  97. }).ToList();
  98. //area6
  99. //var area6 = await _orderRepository.Queryable(workflowFilter: false)
  100. // .GroupBy(d => d.CreationTime.Date)
  101. // .Select(d => new
  102. // {
  103. // d.CreationTime.Date,
  104. // Count = SqlFunc.AggregateCount(d.CreationTime.Date)
  105. // })
  106. // .ToListAsync(HttpContext.RequestAborted);
  107. //var query6 = await _orderRepository.Queryable(workflowFilter: false)
  108. // .Select(it => new
  109. // {
  110. // Id = it.Id,
  111. // CreateTime = it.CreationTime.Date//只取日期
  112. // })
  113. // .MergeTable()//将查询结果转成一个表
  114. // .GroupBy(it => it.CreateTime)
  115. // .Select(it => new { Count = SqlFunc.AggregateCount(it.Id), it.CreateTime })
  116. // .ToListAsync(HttpContext.RequestAborted);
  117. //var area6 = query6.OrderByDescending(d => d.CreateTime).Take(6).ToList();
  118. //var date6 = new List<DateTime>();
  119. //for (int i = 0; i < 6; i++)
  120. //{
  121. // date6.Add(DateTime.Now.AddDays(-i).Date);
  122. //}
  123. //date6.Reverse();
  124. //area7
  125. var query7 = await _orderRepository.Queryable(canView: false)
  126. .GroupBy(d => d.HotspotName)
  127. .Select(d => new
  128. {
  129. d.HotspotName,
  130. Count = SqlFunc.AggregateCount(d.HotspotName)
  131. })
  132. .ToListAsync(HttpContext.RequestAborted);
  133. var area7 = query7.OrderByDescending(d => d.Count).Take(8).ToList();
  134. return new { area2, area4, area5, area7 };
  135. }
  136. }
  137. }