using Dlhis.Canteen.Tickets.Request;
using Dlhis.Canteen.Tickets.Response;
using Dlhis.Canteen.Tickets.Services;
using Kurisu.AspNetCore.DataAccess.Dto;
using Kurisu.AspNetCore.Utils.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Dlhis.Canteen.Tickets.Controllers;
///
/// 券
///
[Authorize]
[Route("api/[controller]")]
[ApiController]
public class TicketsController : ControllerBase
{
private readonly INamedResolver _namedResolver;
public TicketsController(INamedResolver namedResolver)
{
_namedResolver = namedResolver;
}
///
/// 获取分页数据(按券类型)
///
///
///
[HttpGet("page")]
public async Task> GetPageAsync(TicketPageRequest request)
{
return await _namedResolver.GetService(request.Type.ToString()).GetPageAsync(request);
}
///
/// 创建券
///
/// 券类型,需要后端支持
[AllowAnonymous]
[HttpPost("{type:required}/create")]
public async Task CreateAsync(string type)
{
var srv = _namedResolver.GetService(type);
srv.ThrowIfNull("不支持的券类型");
await srv.CreateAsync();
}
}