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> GetPageAsync(TicketPageRequest request) { return await DbContext.Queryable() .LeftJoin((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(); }