using System.Data;
using Dlhis.Canteen.Order.Request;
using Dlhis.Canteen.Order.Response;
using Dlhis.Canteen.Order.Services;
using Kurisu.AspNetCore.DataAccess.Dto;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Dlhis.Canteen.Order.Controllers;
///
/// 充值/消费
///
[Authorize]
[Route("api/[controller]")]
[ApiController]
public class BalancesController : ControllerBase
{
private readonly IBalanceService _balanceService;
public BalancesController(IBalanceService balanceService)
{
_balanceService = balanceService;
}
///
/// 获取所有消费记录分页
///
///
///
[HttpGet]
[IgnoreTenant]
public async Task> GetPageAsync([FromQuery] BalanceRecordPageRequest request)
{
return await _balanceService.GetPageAsync(request);
}
///
/// 数据导出
///
///
///
[HttpGet("export")]
[ExcelResult("员工账务明细")]
[IgnoreTenant]
public async Task> GetPageToExportAsync([FromQuery] BalanceRecordPageRequest request)
{
return await _balanceService.GetPageToExportAsync(request);
}
///
/// 修补餐补明细
///
///
///
[HttpPost("supplementBalance")]
[IgnoreTenant]
public async Task SupplementBalanceAsync(BalanceSupplementRequest request)
{
await _balanceService.SupplementBalanceAsync(request);
}
///
/// 退款
///
///
[HttpPost("refund")]
[IgnoreTenant]
[Transactional(IsolationLevel.ReadCommitted)]
public async Task RefundAsync(BalanceRecordRefundRequest request)
{
await _balanceService.RefundAsync(request.No);
}
///
/// 营业点消费明细
///
///
///
[HttpGet("recordPageDetails")]
public async Task RecordPageDetailsAsync([FromQuery] BalanceRecordPageDetailRequest request)
{
return await _balanceService.RecordPageDetailsAsync(request);
}
///
/// 营业点消费明细导出
///
///
///
[ExcelResult("营业点消费明细")]
[AllowAnonymous]
[HttpGet("recordPageDetails/export")]
public async Task> RecordPageDetailsToExportAsync([FromQuery] BalanceRecordPageDetailRequest request)
{
return await _balanceService.RecordPageDetailsToExportAsync(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("user/group/page")]
[IgnoreTenant]
public async Task> GetUserBalanceGroupAsync([FromQuery] BalanceRecordUserGroupPageRequest request)
{
return await _balanceService.GetUserBalanceGroupAsync(request);
}
///
/// 获取消费机总数、离线设备数量、营业点数量、可消费人数、人均日消费额
///
///
[HttpGet("consumenumbers")]
public async Task GetConsumeNumberAsync()
{
return await _balanceService.GetConsumeNumberAsync();
}
///
/// 手动处理余额
///
///
[HttpPost("manuallyRecalc")]
[IgnoreTenant]
[Transactional]
public async Task ManuallyImportBalanceAndReCalcAsync(List requests)
{
await _balanceService.ManuallyImportBalanceAndReCalcAsync(requests);
}
}