32 lines
1.1 KiB
C#
32 lines
1.1 KiB
C#
using Dlhis.Canteen.Tickets.Request;
|
|
using Dlhis.Canteen.Tickets.Response;
|
|
using Dlhis.Entity.Basic.Entity;
|
|
using Dlhis.Entity.Canteen.Entities;
|
|
using Kurisu.AspNetCore.DataAccess.Dto;
|
|
using Kurisu.AspNetCore.DataAccess.SqlSugar.Extensions;
|
|
using Kurisu.AspNetCore.DataAccess.SqlSugar.Services;
|
|
using Kurisu.AspNetCore.Utils.Extensions;
|
|
|
|
namespace Dlhis.Canteen.Tickets.Services.Implements;
|
|
|
|
public abstract class BaseTicketService : ITicketService
|
|
{
|
|
protected IDbContext DbContext { get; set; }
|
|
|
|
protected BaseTicketService(IDbContext dbContext)
|
|
{
|
|
DbContext = dbContext;
|
|
}
|
|
|
|
public async Task<Pagination<TicketPageResponse>> GetPageAsync(TicketPageRequest request)
|
|
{
|
|
return await DbContext.Queryable<TicketEntity>()
|
|
.LeftJoin<GainfoEntity>((x, ga) => x.UserCode == ga.Code)
|
|
.Where(x => x.Type == request.Type)
|
|
.WhereIF(request.UserCode.IsPresent(), x => x.UserCode == request.UserCode)
|
|
.Select((x, ga) => new TicketPageResponse { UserName = ga.Name }, true)
|
|
.ToPageListAsync(request);
|
|
}
|
|
|
|
public abstract Task CreateAsync();
|
|
} |