using Dlhis.Canteen.Dishes.Request; 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 Kurisu.AspNetCore.UnifyResultAndValidation; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Dlhis.Canteen.Order.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; } /// /// 消费 /// /// /// [Authorize(Policy = "consumer")] [HttpPost] [IgnoreTenant] public async Task> AddAsync(OrderAddRequest request) { return await _orderService.AddAsync(request); } /// /// 设备发起订单 /// /// /// [Authorize(Policy = "consumer")] [HttpPost("device")] [IgnoreTenant] public async Task> DeviceConsume(OrderAddRequest request) { return await _orderService.AddAsync(request); } /// /// 订单聚合数据 /// /// [HttpGet("aggregation")] [IgnoreTenant] public async Task> GetOrdersAggregationAsync([FromQuery] PageDto page) { return await _orderService.GetOrdersAggregationAsync(page); } // /// // /// 取消订单 // /// // /// // /// // [HttpPut("user-cancel")] // [Transactional] // [IgnoreTenant] // public async Task CancelOrderAsync(OrderCancelRequest request) // { // await _bookingOrderService.UserCancelOrderAsync(request); // } // // /// // /// 取消订单 // /// // /// // /// // [HttpPut("manager-cancel")] // [Transactional] // [IgnoreTenant] // public async Task ManagerCancelOrderAsync(OrderCancelRequest request) // { // await _bookingOrderService.ManagerCancelOrderAsync(request); // } // // //************************************************************** 订餐功能 ********************************************************************************** // /// /// /// /// /// [HttpPost("booking")] [Transactional] [IgnoreTenant] 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); } }