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 OrdersController : ControllerBase
{
private readonly IOrderService _orderService;
private readonly IBookingOrderService _bookingOrderService;
public OrdersController(IOrderService orderService, IBookingOrderService bookingOrderService)
{
_orderService = orderService;
_bookingOrderService = bookingOrderService;
}
///
/// 添加充值/消费订单
///
///
///
[HttpPost]
[IgnoreTenant]
public async Task AddAsync(OrderAddRequest request)
{
return await _orderService.AddAsync(request);
}
///
/// 设备发起订单
///
///
///
[HttpPost("device")]
[IgnoreTenant]
public async Task DeviceConsume(OrderAddRequest request)
{
return await _orderService.AddAsync(request);
}
///
/// 订单聚合数据
///
///
[HttpGet("aggregation")]
public async Task> GetOrdersAggregationAsync([FromQuery] PageDto page)
{
return await _orderService.GetOrdersAggregationAsync(page);
}
//************************************************************** 订餐功能 **********************************************************************************
///
/// 订餐
///
///
[HttpPost("booking")]
[Transactional]
public async Task Booking(BookingMealRequest request)
{
return await _bookingOrderService.BookingAsync(request);
}
///
/// 订单分页
///
///
///
[HttpGet("booking/page")]
public async Task> GetBookingPageAsync([FromQuery] OrderBookingPageRequest request)
{
return await _bookingOrderService.GetBookingPageAsync(request);
}
}