using Dlhis.Middle.Apis;
using Dlhis.Middle.Request;
using Dlhis.Middle.Response;
using Dlhis.Middle.Services;
using Kurisu.AspNetCore.DataAccess.Dto;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
using Kurisu.AspNetCore.UnifyResultAndValidation;
using Microsoft.AspNetCore.Mvc;
namespace Dlhis.Middle.Controllers;
[Route("api/canteen/[controller]")]
[ApiController]
public class BalancesController : ControllerBase
{
private readonly IBalanceService _balanceService;
private readonly IHealthCheckService _healthCheckService;
private readonly ICanteenApi _canteenApi;
public BalancesController(IBalanceService balanceService, IHealthCheckService healthCheckService, ICanteenApi canteenApi)
{
_balanceService = balanceService;
_healthCheckService = healthCheckService;
_canteenApi = canteenApi;
}
///
/// 设备消费记录
///
///
///
[HttpGet("device/page")]
[IgnoreTenant]
public async Task>> GetPageByDeviceUniqueNoGetAsync([FromQuery] BalanceRecordPageByDeviceUniqueNoRequest request)
{
if (_healthCheckService.GetIsOffline())
{
return new DefaultApiResult>()
{
Data = await _balanceService.GetPageByDeviceUniqueNoAsync(request),
Code = ApiStateCode.Success
};
}
return await _canteenApi.GetPageByDeviceUniqueNoAsync(request);
}
///
/// 设备消费记录
///
///
///
[HttpPost("device/page")]
[IgnoreTenant]
public async Task>> GetPageByDeviceUniqueNoPostAsync(BalanceRecordPageByDeviceUniqueNoRequest request)
{
if (_healthCheckService.GetIsOffline())
{
return new DefaultApiResult>()
{
Data = await _balanceService.GetPageByDeviceUniqueNoAsync(request),
Msg = "离线查询",
Code = ApiStateCode.Success
};
}
return await _canteenApi.GetPageByDeviceUniqueNoAsync(request);
}
///
/// 退款
///
///
[HttpPost("refund")]
[IgnoreTenant]
public async Task> RefundAsync(BalanceRecordRefundRequest request)
{
if (_healthCheckService.GetIsOffline())
{
return new DefaultApiResult()
{
Data = null,
Code = ApiStateCode.Error,
Msg = "不支持离线退款"
};
}
return await _canteenApi.RefundAsync(request);
}
}