From f427338715b1097e9efd840e3f0006469259ba2f Mon Sep 17 00:00:00 2001 From: liguoyang Date: Tue, 19 Mar 2024 18:43:19 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E8=8E=B7=E5=8F=96=E8=8F=9C=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/DishesMenusController.cs | 15 ++++++++++++++- .../Dishes/Services/IDishesMenuService.cs | 2 ++ .../Services/Implements/DishesMenuService.cs | 19 +++++++++++++++++-- 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs b/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs index b1eb6e49..2ebeea48 100644 --- a/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs +++ b/Src/Dlhis.Basic/Dishes/Controller/DishesMenusController.cs @@ -7,7 +7,6 @@ using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop; using Kurisu.Core.DataAccess.Dto; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Org.BouncyCastle.Asn1.Ocsp; namespace Dlhis.Basic.Dishes.Controller; @@ -52,6 +51,20 @@ public class DishesMenusController : ControllerBase return await _dishesMenuService.GetDishesMenuDetailAsync(businessPlaceCode, customCode, date); } + /// + /// 根据参数获取菜品 + /// + /// + /// + /// + /// + /// + [HttpGet("dishes-selections")] + public async Task> GetDishesUnderCurrentMenuAsync(Guid businessPlaceCode, DateTime date, ShiftEnumType? shiftType, [FromQuery] List categoryCodes) + { + return await _dishesMenuService.GetDishesUnderCurrentMenuAsync(businessPlaceCode, date, shiftType, categoryCodes); + } + /// /// 菜单保存/更改 /// diff --git a/Src/Dlhis.Basic/Dishes/Services/IDishesMenuService.cs b/Src/Dlhis.Basic/Dishes/Services/IDishesMenuService.cs index 00984ab5..da96b3cc 100644 --- a/Src/Dlhis.Basic/Dishes/Services/IDishesMenuService.cs +++ b/Src/Dlhis.Basic/Dishes/Services/IDishesMenuService.cs @@ -12,6 +12,8 @@ public interface IDishesMenuService : IScopeDependency Task GetDishesMenuDetailAsync(Guid businessPlaceCode, string customCode, DateTime date); + Task> GetDishesUnderCurrentMenuAsync(Guid businessPlaceCode, DateTime date, ShiftEnumType? shiftType, List categoryCodes); + Task SaveDishesMenuAsync(DishesMenuSaveRequest request); Task GetBookingDishesDetailAsync(DateTime date, Guid businessPlaceCode, ShiftEnumType shiftType, string dishesCode); diff --git a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs index c93fd62a..7ff3aa7c 100644 --- a/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs +++ b/Src/Dlhis.Basic/Dishes/Services/Implements/DishesMenuService.cs @@ -9,7 +9,7 @@ using Dlhis.Basic.Dishes.Request; using Dlhis.Basic.Dishes.Response; using Dlhis.Basic.BusinessPlace.Services; using Dlhis.Basic.Dishes.Dto; -using Org.BouncyCastle.Asn1.Ocsp; +using Mapster; namespace Dlhis.Basic.Dishes.Services.Implements; @@ -49,7 +49,7 @@ public class DishesMenuService : IDishesMenuService BusinessPlaceCode = businessPlaceCode, Items = new List { - new() + new() { CustomCode = customCode, Date = date, @@ -74,6 +74,21 @@ public class DishesMenuService : IDishesMenuService }; } + public async Task> GetDishesUnderCurrentMenuAsync(Guid businessPlaceCode, DateTime date, ShiftEnumType? shiftType, List categoryCodes) + { + var data = await _dbContext.Queryable() + .LeftJoin((x, dishes) => x.DishesCode == dishes.CustomCode) + .Where(x => x.BusinessPlaceCode == businessPlaceCode) + .Where(x => SqlFunc.DateIsSame(x.Date, date, DateType.Day)) + .Where((x, dishes) => dishes.Enable) + .WhereIF(shiftType.HasValue, x => x.ShiftType == shiftType) + .WhereIF(categoryCodes.IsPresent(), (x, dishes) => categoryCodes.Contains(dishes.CategoryCode)) + .Select((x, dishes) => dishes) + .ToListAsync(); + + return data.Adapt>(); + } + public async Task SaveDishesMenuAsync(DishesMenuSaveRequest request) { //检验数据