using Hotline.Application.Snapshot;
using Hotline.Share.Dtos;
using Hotline.Share.Dtos.Snapshot;
using Microsoft.AspNetCore.Mvc;
using Hotline.Repository.SqlSugar.Extensions;
using Hotline.Share.Tools;
using Hotline.Snapshot.Interfaces;
using Hotline.Settings.Hotspots;
using Hotline.Share.Requests;
using SqlSugar;
using XF.Domain.Authentications;
using Hotline.Settings;
namespace Hotline.Api.Controllers.Snapshot;
///
/// 随手拍统计
///
public class BiSnapshotController : BaseController
{
private readonly IBiSnapshotApplication _biSnapshotApplication;
private readonly IIndustryRepository _industryRepository;
public BiSnapshotController(IBiSnapshotApplication biSnapshotApplication, IIndustryRepository industryRepository)
{
_biSnapshotApplication = biSnapshotApplication;
_industryRepository = industryRepository;
}
///
/// 随手拍统计基础数据
///
///
[HttpGet("statistics/basedata")]
public async Task> GetSnapshotStatisticsBaseDataAsync()
{
return new Dictionary()
{
{ "industry", await _industryRepository.GetDataBaseAsync() }
};
}
///
/// 随手拍统计
///
///
[HttpGet("statistics")]
public async Task GetSnapshotStatisticsAsync([FromQuery] SnapshotStatisticsInDto dto)
=> await _biSnapshotApplication.GetSnapshotStatisticsAsync(dto, HttpContext.RequestAborted);
///
/// 随手拍统计详情集合
///
///
///
[HttpGet("statistics/details")]
public async Task> GetSnapshotStatisticsDetailAsync([FromQuery] SnapshotStatisticsDetailInDto dto)
=> (await _biSnapshotApplication.GetSnapshotStatisticsDetail(dto).ToPagedListAsync(dto)).ToPaged();
///
/// 市民红包审核统计
///
///
///
[HttpGet("redpack/audit")]
public IList GetRedPackAuditStatisticsAsync([FromQuery] RedPackStatisticsInDto dto)
=> _biSnapshotApplication.GetRedPackAuditStatistics(dto);
///
/// 市民红包审核统计详情
///
///
///
[HttpGet("redpack/audit/details")]
public async Task> GetRedPackAuditStatisticsDetailsAsync([FromQuery] RedPackStatisticsDetailsInDto dto)
=> (await _biSnapshotApplication.GetRedPackAuditStatisticsDetails(dto).ToPagedListAsync(dto)).ToPaged();
///
/// 热点类型小类统计
///
///
///
[HttpGet("hotspot-statistics")]
public async Task> GetHotspotStatisticsAsync([FromQuery] HotspotStatisticsInDto dto)
=> await _biSnapshotApplication.GetHotspotStatistics(dto).ToListAsync();
///
/// 热点类型小类统计明细
///
///
///
[HttpGet("hotspot-statistics-detail")]
public async Task> GetHotspotStatisticsDetailAsync([FromQuery] HotspotStatisticsDetailsInDto dto)
=> (await _biSnapshotApplication.HotspotStatisticsDetail(dto).ToPagedListAsync(dto)).ToPaged();
///
/// 热点类型-随手拍
///
///
///
[HttpGet("hotspot-data-statistics")]
public async Task> GetHotspotDataStatisticsAsync([FromQuery] HotspotDataStatisticsInDto dto)
{
var items = await _biSnapshotApplication.GetHotspotDataStatisticsAsync(dto).ToListAsync();
items.Add(new HotspotDataStatisticsOutDto
{
Name = "合计",
OrderCount = items.Sum(x => x.OrderCount),
});
return items;
}
///
/// 办件统计-随手拍
///
///
///
[HttpGet("processing-statistics")]
public async Task> GetSnapshotProcessingStatistics([FromQuery] SnapshotProcessingStatisticsInDto dto)
=> await _biSnapshotApplication.GetSnapshotProcessingStatistics(dto).ToListAsync();
///
/// 办件统计明细-随手拍
///
///
///
[HttpGet("processing-statistics-detail")]
public async Task> GetSnapshotProcessingStatisticsDetails(SnapshotProcessingStatisticsDetailsInDto dto)
=> (await _biSnapshotApplication.GetSnapshotProcessingStatisticsDetails(dto).ToPagedListAsync(dto)).ToPaged();
///
/// 网格员办理情况统计
///
///
///
[HttpGet("guider-work-statistics")]
public async Task> GetGuiderWorkStatisticsAsync([FromQuery] GuiderWorkStatisticsInDto dto)
=> await _biSnapshotApplication.GetGuiderWorkStatisticsAsync(dto).ToListAsync();
///
/// 网格员办理情况统计详情
///
///
///
[HttpGet("guider-work-statistics-detail")]
public async Task> GetGuiderWorkStatisticsDetailsAsync([FromQuery] GuiderWorkStatisticsDetailsInDto dto)
=> (await _biSnapshotApplication.GetGuiderWorkStatisticsDetails(dto).ToPagedListAsync(dto)).ToPaged();
}