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)
{
//检验数据