using Dlhis.Canteen.Dishes.Request; using Dlhis.Canteen.Order.Request; using Dlhis.Canteen.Order.Response; using Dlhis.Canteen.Order.Services; using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop; using Kurisu.Core.DataAccess.Dto; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Dlhis.Canteen.Dishes.Controllers; /// /// 充值/消费 /// [Authorize] [Route("api/[controller]")] [ApiController] public class BalancesController : ControllerBase { private readonly IBalanceService _balanceService; public BalancesController(IBalanceService balanceService) { _balanceService = balanceService; } /// /// 获取所有消费记录分页 /// /// /// [Authorize(Roles = "admin,tenant-admin")] [DataPermission] [HttpGet] public async Task> GetPageAsync([FromQuery] BalanceRecordPageRequest request) { return await _balanceService.GetPageAsync(request); } /// /// 修补餐补明细 /// /// /// [Authorize(Roles = "admin,tenant-admin")] [HttpPost("supplementBalance")] public async Task SupplementBalanceAsync(BalanceSupplementRequest request) { await _balanceService.SupplementBalanceAsync(request); } /// /// 消费明细 /// /// /// [HttpGet("recordPageDetails")] public async Task> RecordPageDetailsAsync([FromQuery] BalanceRecordPageDetailRequest request) { return await _balanceService.RecordPageDetailsAsync(request); } /// /// 设备消费记录 /// /// /// [HttpGet("device/page")] [IgnoreTenant] public async Task> GetPageByDeviceUniqueNoGetAsync([FromQuery] BalanceRecordPageByDeviceUniqueNoRequest request) { return await _balanceService.GetPageByDeviceUniqueNoAsync(request); } /// /// 设备消费记录 /// /// /// [HttpPost("device/page")] [IgnoreTenant] public async Task> GetPageByDeviceUniqueNoPostAsync(BalanceRecordPageByDeviceUniqueNoRequest request) { return await _balanceService.GetPageByDeviceUniqueNoAsync(request); } /// /// 用户消费记录 /// /// /// [HttpGet("user/page")] [IgnoreTenant] public async Task GetPageByUserAsync([FromQuery] BalanceRecordUserPageRequest request) { return await _balanceService.GetPageByUserAsync(request); } /// /// 根据成本中心 /// /// /// [HttpGet("recordByCostId")] public async Task> RecordByCostIdAsync([FromQuery] BalanceRecordPageByCostIdRequest request) { return await _balanceService.RecordByCostIdAsync(request); } /// /// 消费汇总 根据部门号 /// /// /// [HttpGet("recordSummaryByNo")] public async Task> BalanceRecordSummaryByNoAsync([FromQuery] BalanceRecordSummaryRequest request) { return await _balanceService.BalanceRecordSummaryByNoAsync(request); } /// /// 消费汇总 根据人事范围 /// /// /// [HttpGet("recordSummaryByTid")] public async Task> BalanceRecordSummaryByTidAsync([FromQuery] BalanceRecordSummaryRequest request) { return await _balanceService.BalanceRecordSummaryByTidAsync(request); } /// /// 用餐分析 /// /// /// [HttpGet("BalanceRecordSummaryAsync")] public async Task> BalanceRecordAnalysisAsync([FromQuery] BalanceRecordAnalysisRequest request) { return await _balanceService.BalanceRecordAnalysisAsync(request); } /// /// 获取消费机总数、离线设备数量、营业点数量、可消费人数、人均日消费额 /// /// [HttpGet("consumenumbers")] public async Task GetConsumeNumberAsync() { return await _balanceService.GetConsumeNumberAsync(); } /// /// 消费人数详情 /// /// [HttpGet("spendingDetails")] public async Task> GetSpendingDetailsAsync([FromQuery] SpendingDetailRequest request) { return await _balanceService.GetSpendingDetailsAsync(request); } /// /// 日消费均额 /// /// /// [HttpGet("averageDaily")] public async Task> AverageDailyAsync([FromQuery] AverageDailyRequest request) { return await _balanceService.AverageDailyAsync(request); } /// /// 获取消费机详情 /// /// /// [HttpGet("consumeDevices")] public async Task> GetConsumeDeviceAsync([FromQuery] GetConsumeDeviceRequest request) { return await _balanceService.GetConsumeDeviceAsync(request); } }