using Dlhis.Canteen.Order.Request; using Dlhis.Canteen.Order.Request.Common; using Dlhis.Canteen.Order.Response; using Dlhis.Canteen.Order.Services; using Kurisu.AspNetCore.DataAccess.Dto; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Dlhis.Canteen.Order.Controllers; /// /// 消费统计 /// [Authorize] [Route("api/[controller]")] [ApiController] public class BalanceSummaryController : ControllerBase { private readonly IBalanceSummaryService _balanceSummaryService; public BalanceSummaryController(IBalanceSummaryService balanceSummaryService) { _balanceSummaryService = balanceSummaryService; } /// /// 用餐分析 /// /// /// [HttpGet("analysis")] public async Task BalanceRecordAnalysisAsync([FromQuery] BalanceRecordAnalysisRequest request) { return await _balanceSummaryService.BalanceRecordAnalysisAsync(request); } /// /// 部门用餐分析,统计部门金额和消费人数 /// [HttpGet("department/analysis/amountAndCount")] public async Task> BalanceRecordAnalysisByDepartmentAsync([FromQuery] SummaryCommonDto request) { return await _balanceSummaryService.BalanceRecordAnalysisByDepartmentAsync(request); } /// /// 成本中心用餐分析,统计成本中心金额和消费人数 /// [HttpGet("costId/analysis/amountAndCount")] public async Task> BalanceRecordAnalysisByCostAsync([FromQuery] SummaryCommonDto request) { return await _balanceSummaryService.BalanceRecordAnalysisByCostAsync(request); } /// /// 餐次用餐分析,统计金额 /// [HttpGet("shift/analysis/amount")] public async Task BalanceRecordShiftAnalysisAmountAsync([FromQuery] BalanceRecordAnalysisByShiftRequest request) { return await _balanceSummaryService.BalanceRecordShiftAnalysisAmountAsync(request); } /// /// 餐次用餐分析,统计金额和人数 /// /// /// [HttpGet("shift/analysis/amountAndCount")] public async Task BalanceRecordShiftAnalysisAmountAndCountAsync([FromQuery] BalanceRecordAnalysisByShiftRequest request) { return await _balanceSummaryService.BalanceRecordShiftAnalysisAmountAndCountAsync(request); } /// /// 厂区就餐分析,统计金额和人数 /// /// /// [HttpGet("factory/analysis/amountAndUserCount")] public async Task> BalanceRecordAnalysisByFactoryAsync([FromQuery] SummaryCommonDto request) { return await _balanceSummaryService.BalanceRecordAnalysisByFactoryAsync(request); } /// /// 餐次和营业点就餐分析,统计金额和人数/人次 /// /// /// [HttpGet("shiftAndBusinessPlace/analysis/amountAndUserCountAndCostCount")] public async Task ShiftAndBusinessPlaceAnalysisAsync([FromQuery] BalanceRecordPageDetailRequest request) { return await _balanceSummaryService.ShiftAndBusinessPlaceAnalysisAsync(request); } }