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(); } }