50 lines
1.4 KiB
C#
50 lines
1.4 KiB
C#
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;
|
|
|
|
/// <summary>
|
|
/// 券
|
|
/// </summary>
|
|
[Authorize]
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
public class TicketsController : ControllerBase
|
|
{
|
|
private readonly INamedResolver _namedResolver;
|
|
|
|
public TicketsController(INamedResolver namedResolver)
|
|
{
|
|
_namedResolver = namedResolver;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取分页数据(按券类型)
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("page")]
|
|
public async Task<Pagination<TicketPageResponse>> GetPageAsync(TicketPageRequest request)
|
|
{
|
|
return await _namedResolver.GetService<ITicketService>(request.Type.ToString()).GetPageAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 创建券
|
|
/// </summary>
|
|
/// <param name="type">券类型,需要后端支持</param>
|
|
[AllowAnonymous]
|
|
[HttpPost("{type:required}/create")]
|
|
public async Task CreateAsync(string type)
|
|
{
|
|
var srv = _namedResolver.GetService<ITicketService>(type);
|
|
srv.ThrowIfNull("不支持的券类型");
|
|
|
|
await srv.CreateAsync();
|
|
}
|
|
} |