107 lines
3.5 KiB
C#
107 lines
3.5 KiB
C#
using Dlhis.Basic.Vouchers.Request;
|
|
using Dlhis.Canteen.Order.Request;
|
|
using Dlhis.Canteen.Order.Response;
|
|
using Dlhis.Canteen.Tickets.Request;
|
|
using Dlhis.Canteen.Tickets.Services;
|
|
using Dlhis.Canteen.Voucher.Requests;
|
|
using Dlhis.Canteen.Voucher.Response;
|
|
using Dlhis.Constants;
|
|
using Dlhis.Entity.Canteen.Enums;
|
|
using Kurisu.AspNetCore.Authentication.Abstractions;
|
|
using Kurisu.AspNetCore.DataAccess.Dto;
|
|
using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
|
|
using Kurisu.AspNetCore.Utils.Extensions;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace Dlhis.Canteen.Voucher.Controllers;
|
|
|
|
/// <summary>
|
|
/// 券
|
|
/// </summary>
|
|
[Authorize]
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
public class VouchersController : ControllerBase
|
|
{
|
|
private readonly INamedResolver _namedResolver;
|
|
private readonly ICurrentUser _currentUser;
|
|
|
|
public VouchersController(INamedResolver namedResolver, ICurrentUser currentUser)
|
|
{
|
|
_namedResolver = namedResolver;
|
|
_currentUser = currentUser;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取分页数据(按券类型)
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("page")]
|
|
public async Task<Pagination<VoucherPageResponse>> GetPageAsync([FromQuery] VoucherPageRequest request)
|
|
{
|
|
return await _namedResolver.GetService<IVoucherService>(request.Type.ToString() + "VoucherService").GetPageAsync(request);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 获取我的分页数据(按券类型)(H5)
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("my")]
|
|
public async Task<Pagination<VoucherPageResponse>> GetMyPageAsync([FromQuery] VoucherPageRequest request)
|
|
{
|
|
var userCode = _currentUser.GetUserClaim(UserClaimConstants.JinkoCode);
|
|
request.UserCode = userCode;
|
|
return await _namedResolver.GetService<IVoucherService>(request.Type.ToString()).GetPageAsync(request);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 创建生日券
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[AllowAnonymous]
|
|
[HttpPost("birthday/create")]
|
|
public async Task CreateBirthdayVoucherAsync(VoucherByBirthdayRequest request)
|
|
{
|
|
var srv = _namedResolver.GetService<IVoucherService>(VoucherEnumType.Birthday.ToString() + "VoucherService");
|
|
srv.ThrowIfNull("不支持的券类型");
|
|
await srv.CreateAsync(new Dictionary<string, object>
|
|
{
|
|
["userCodes"] = request.UserCodes,
|
|
["begin"] = request.Begin,
|
|
["end"] = request.End,
|
|
["remark"] = request.Remark
|
|
});
|
|
}
|
|
|
|
/// <summary>
|
|
/// 餐券消费分页
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("balance/page")]
|
|
[IgnoreTenant]
|
|
public async Task<Pagination<VoucherBalancePageResponse>> GetVoucherBalancePageAsync([FromQuery] VoucherBalancePageRequest request)
|
|
{
|
|
var srv = _namedResolver.GetService<IVoucherService>(request.Type.ToString() + "VoucherService");
|
|
|
|
return await srv.GetVoucherBalancePageAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 我的餐券消费分页(H5)
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("balance/my/page")]
|
|
[IgnoreTenant]
|
|
public async Task<Pagination<VoucherBalancePageResponse>> GetMyVoucherBalancePageAsync([FromQuery] VoucherBalancePageRequest request)
|
|
{
|
|
var srv = _namedResolver.GetService<IVoucherService>(request.Type.ToString());
|
|
return await srv.GetVoucherBalancePageAsync(request);
|
|
}
|
|
} |