BiSnapshotController.cs 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. using Hotline.Application.Snapshot;
  2. using Hotline.Share.Dtos;
  3. using Hotline.Share.Dtos.Snapshot;
  4. using Microsoft.AspNetCore.Mvc;
  5. using Hotline.Repository.SqlSugar.Extensions;
  6. using Hotline.Share.Tools;
  7. using Hotline.Snapshot.Interfaces;
  8. using Hotline.Settings.Hotspots;
  9. using Hotline.Share.Requests;
  10. using SqlSugar;
  11. using XF.Domain.Authentications;
  12. using Hotline.Settings;
  13. namespace Hotline.Api.Controllers.Snapshot;
  14. /// <summary>
  15. /// 随手拍统计
  16. /// </summary>
  17. public class BiSnapshotController : BaseController
  18. {
  19. private readonly IBiSnapshotApplication _biSnapshotApplication;
  20. private readonly IIndustryRepository _industryRepository;
  21. public BiSnapshotController(IBiSnapshotApplication biSnapshotApplication, IIndustryRepository industryRepository)
  22. {
  23. _biSnapshotApplication = biSnapshotApplication;
  24. _industryRepository = industryRepository;
  25. }
  26. /// <summary>
  27. /// 随手拍统计基础数据
  28. /// </summary>
  29. /// <returns></returns>
  30. [HttpGet("statistics/basedata")]
  31. public async Task<Dictionary<string, object>> GetSnapshotStatisticsBaseDataAsync()
  32. {
  33. return new Dictionary<string, object>()
  34. {
  35. { "industry", await _industryRepository.GetDataBaseAsync() }
  36. };
  37. }
  38. /// <summary>
  39. /// 随手拍统计
  40. /// </summary>
  41. /// <returns></returns>
  42. [HttpGet("statistics")]
  43. public async Task<SnapshotStatisticsOutDto> GetSnapshotStatisticsAsync([FromQuery] SnapshotStatisticsInDto dto)
  44. => await _biSnapshotApplication.GetSnapshotStatisticsAsync(dto, HttpContext.RequestAborted);
  45. /// <summary>
  46. /// 随手拍统计详情集合
  47. /// </summary>
  48. /// <param name="dto"></param>
  49. /// <returns></returns>
  50. [HttpGet("statistics/details")]
  51. public async Task<PagedDto<SnapshotStatisticsDetailOutDto>> GetSnapshotStatisticsDetailAsync([FromQuery] SnapshotStatisticsDetailInDto dto)
  52. => (await _biSnapshotApplication.GetSnapshotStatisticsDetail(dto).ToPagedListAsync(dto)).ToPaged();
  53. /// <summary>
  54. /// 市民红包审核统计
  55. /// </summary>
  56. /// <param name="dto"></param>
  57. /// <returns></returns>
  58. [HttpGet("redpack/audit")]
  59. public IList<RedPackStatisticsOutDto> GetRedPackAuditStatisticsAsync([FromQuery] RedPackStatisticsInDto dto)
  60. => _biSnapshotApplication.GetRedPackAuditStatistics(dto);
  61. /// <summary>
  62. /// 市民红包审核统计详情
  63. /// </summary>
  64. /// <param name="dto"></param>
  65. /// <returns></returns>
  66. [HttpGet("redpack/audit/details")]
  67. public async Task<PagedDto<RedPackStatisticsDetailsOutDto>> GetRedPackAuditStatisticsDetailsAsync([FromQuery] RedPackStatisticsDetailsInDto dto)
  68. => (await _biSnapshotApplication.GetRedPackAuditStatisticsDetails(dto).ToPagedListAsync(dto)).ToPaged();
  69. /// <summary>
  70. /// 热点类型小类统计
  71. /// </summary>
  72. /// <param name="dto"></param>
  73. /// <returns></returns>
  74. [HttpGet("hotspot-statistics")]
  75. public async Task<IList<HotspotStatisticsOutDto>> GetHotspotStatisticsAsync([FromQuery] HotspotStatisticsInDto dto)
  76. => await _biSnapshotApplication.GetHotspotStatistics(dto).ToListAsync();
  77. /// <summary>
  78. /// 热点类型小类统计明细
  79. /// </summary>
  80. /// <param name="dto"></param>
  81. /// <returns></returns>
  82. [HttpGet("hotspot-statistics-detail")]
  83. public async Task<PagedDto<HotspotStatisticsDetailsOutDto>> GetHotspotStatisticsDetailAsync([FromQuery] HotspotStatisticsDetailsInDto dto)
  84. => (await _biSnapshotApplication.HotspotStatisticsDetail(dto).ToPagedListAsync(dto)).ToPaged();
  85. /// <summary>
  86. /// 热点类型-随手拍
  87. /// </summary>
  88. /// <param name="dto"></param>
  89. /// <returns></returns>
  90. [HttpGet("hotspot-data-statistics")]
  91. public async Task<IList<HotspotDataStatisticsOutDto>> GetHotspotDataStatisticsAsync([FromQuery] HotspotDataStatisticsInDto dto)
  92. {
  93. var items = await _biSnapshotApplication.GetHotspotDataStatisticsAsync(dto).ToListAsync();
  94. items.Add(new HotspotDataStatisticsOutDto
  95. {
  96. Name = "合计",
  97. OrderCount = items.Sum(x => x.OrderCount),
  98. });
  99. return items;
  100. }
  101. /// <summary>
  102. /// 办件统计-随手拍
  103. /// </summary>
  104. /// <param name="dto"></param>
  105. /// <returns></returns>
  106. [HttpGet("processing-statistics")]
  107. public async Task<IList<SnapshotProcessingStatisticsOutDto>> GetSnapshotProcessingStatistics([FromQuery] SnapshotProcessingStatisticsInDto dto)
  108. => await _biSnapshotApplication.GetSnapshotProcessingStatistics(dto).ToListAsync();
  109. /// <summary>
  110. /// 办件统计明细-随手拍
  111. /// </summary>
  112. /// <param name="dto"></param>
  113. /// <returns></returns>
  114. [HttpGet("processing-statistics-detail")]
  115. public async Task<PagedDto<SnapshotProcessingStatisticsDetailsOutDto>> GetSnapshotProcessingStatisticsDetails(SnapshotProcessingStatisticsDetailsInDto dto)
  116. => (await _biSnapshotApplication.GetSnapshotProcessingStatisticsDetails(dto).ToPagedListAsync(dto)).ToPaged();
  117. /// <summary>
  118. /// 网格员办理情况统计
  119. /// </summary>
  120. /// <param name="dto"></param>
  121. /// <returns></returns>
  122. [HttpGet("guider-work-statistics")]
  123. public async Task<IList<GuiderWorkStatisticsOutDto>> GetGuiderWorkStatisticsAsync([FromQuery] GuiderWorkStatisticsInDto dto)
  124. => await _biSnapshotApplication.GetGuiderWorkStatisticsAsync(dto).ToListAsync();
  125. /// <summary>
  126. /// 网格员办理情况统计详情
  127. /// </summary>
  128. /// <param name="dto"></param>
  129. /// <returns></returns>
  130. [HttpGet("guider-work-statistics-detail")]
  131. public async Task<PagedDto<GuiderWorkStatisticsDetailsOutDto>> GetGuiderWorkStatisticsDetailsAsync([FromQuery] GuiderWorkStatisticsDetailsInDto dto)
  132. => (await _biSnapshotApplication.GetGuiderWorkStatisticsDetails(dto).ToPagedListAsync(dto)).ToPaged();
  133. }