using Dlhis.Basic.Dishes.Request; using Dlhis.Basic.Dishes.Response; using Dlhis.Entity.Basic.Entity; using Dlhis.Entity.Canteen.Entities; using Kurisu.AspNetCore.Utils.Extensions; using Kurisu.Core.DataAccess.Dto; using Kurisu.SqlSugar.Extensions; using Kurisu.SqlSugar.Services; using Mapster; namespace Dlhis.Basic.Dishes.Services.Implements; public class DishesService : IDishesService { private readonly IDbContext _dbContext; public DishesService(IDbContext dbContext) { _dbContext = dbContext; } public async Task> GetDishesPageAsync(DishesPageRequest request) { //todo 营业点权限 return await _dbContext.Queryable() .WhereIF(request.Search.IsPresent(), x => x.CustomCode == request.Search || x.Name.Contains(request.Search)) .OrderBy(x => x.CreateTime, SqlSugar.OrderByType.Desc) .Select() .ToPageListAsync(request); } public async Task SaveDishesAsync(DishesSaveRequest request) { if (!request.Id.HasValue) { var dishers = request.Adapt(); dishers.CustomCode = request.CustomCode; await _dbContext.InsertAsync(dishers); } else { var entity = await _dbContext.Queryable().Where(x => x.Id == request.Id).FirstAsync(); entity.ThrowIfNull("菜品不存在,无法更新"); request.Adapt(entity); await _dbContext.UpdateAsync(entity); } } public async Task GetDishesMenusBookingSetting(Guid PLaceCode) { var shift = await _dbContext.Queryable() .Where(x => x.PlaceCode == PLaceCode) .FirstAsync(); var BusinessShiftMealRelationships= await _dbContext.Queryable() .Where(x => x.ShiftCode == shift.ShiftCode) .Select() .ToListAsync(); var res = new GetDishesMenusBookingResponse { BusinessShiftMealRelationships = BusinessShiftMealRelationships, }; return res; } }