From 9fc0719bad2748388c5fa0f419f937b5bfecd2aa Mon Sep 17 00:00:00 2001 From: cheche <717840555@qq.com> Date: Fri, 15 Mar 2024 10:40:05 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E9=85=8D=E7=BD=AE=E8=8F=9C=E5=93=81?= =?UTF-8?q?=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Order/Controllers/MenuDishesController.cs | 11 +++++ .../Order/Request/DispositionDishesRequest.cs | 8 ++++ .../Order/Request/SaveDishesRequest.cs | 5 -- .../Order/Response/GetDishesResponse.cs | 5 -- .../Order/Services/IMenuDishesService.cs | 2 + .../Services/Implements/MenuDishesService.cs | 46 +++++++++++++------ .../MiniProgramOrderDetailService.cs | 12 ++--- .../Canteen/Entities/CanteenDishesEntity.cs | 5 -- .../CanteenMenuDishersRelationshipEntity.cs | 17 +++++++ 9 files changed, 76 insertions(+), 35 deletions(-) create mode 100644 Src/Dlhis.Canteen/Order/Request/DispositionDishesRequest.cs create mode 100644 Src/Dlhis.Entity/Canteen/Entities/CanteenMenuDishersRelationshipEntity.cs diff --git a/Src/Dlhis.Canteen/Order/Controllers/MenuDishesController.cs b/Src/Dlhis.Canteen/Order/Controllers/MenuDishesController.cs index 4c04d817..9001b4f4 100644 --- a/Src/Dlhis.Canteen/Order/Controllers/MenuDishesController.cs +++ b/Src/Dlhis.Canteen/Order/Controllers/MenuDishesController.cs @@ -66,5 +66,16 @@ public class MenuDishesController : ControllerBase { await _menuDishesService.SaveDishesAsync(request); } + + /// + /// 配置菜单菜品 + /// + /// + /// + [HttpPost("disposition")] + public async Task DispositionDishesAsync(DispositionDishesRequest request) + { + await _menuDishesService.DispositionDishesAsync(request); + } } diff --git a/Src/Dlhis.Canteen/Order/Request/DispositionDishesRequest.cs b/Src/Dlhis.Canteen/Order/Request/DispositionDishesRequest.cs new file mode 100644 index 00000000..5beb9f23 --- /dev/null +++ b/Src/Dlhis.Canteen/Order/Request/DispositionDishesRequest.cs @@ -0,0 +1,8 @@ +namespace Dlhis.Canteen.Order.Request +{ + public class DispositionDishesRequest + { + public Guid MenudCode { get; set; } + public List DishersCodes { get; set; } + } +} diff --git a/Src/Dlhis.Canteen/Order/Request/SaveDishesRequest.cs b/Src/Dlhis.Canteen/Order/Request/SaveDishesRequest.cs index 1a05a4ba..11429d96 100644 --- a/Src/Dlhis.Canteen/Order/Request/SaveDishesRequest.cs +++ b/Src/Dlhis.Canteen/Order/Request/SaveDishesRequest.cs @@ -10,11 +10,6 @@ namespace Dlhis.Canteen.Order.Request public long? Id { get; set; } - /// - /// 菜单编码 - /// - public Guid MenuCode { get; set; } - /// /// 大类 /// diff --git a/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs index aafee2b4..3fa98a24 100644 --- a/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs +++ b/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs @@ -7,11 +7,6 @@ namespace Dlhis.Canteen.Order.Response { public class GetDishesResponse { - /// - /// 菜单编码 - /// - public Guid MenuCode { get; set; } - /// /// 菜单名称 /// diff --git a/Src/Dlhis.Canteen/Order/Services/IMenuDishesService.cs b/Src/Dlhis.Canteen/Order/Services/IMenuDishesService.cs index 63e2a697..020b5bed 100644 --- a/Src/Dlhis.Canteen/Order/Services/IMenuDishesService.cs +++ b/Src/Dlhis.Canteen/Order/Services/IMenuDishesService.cs @@ -14,5 +14,7 @@ namespace Dlhis.Canteen.Order.Services Task> GetDishesAsync(GetDishesRequest request); Task SaveDishesAsync(SaveDishesRequest request); + + Task DispositionDishesAsync(DispositionDishesRequest request); } } diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs index 2b1c3443..84b2d4dd 100644 --- a/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs +++ b/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs @@ -61,24 +61,27 @@ namespace Dlhis.Canteen.Order.Services.Implements public async Task> GetDishesAsync(GetDishesRequest request) { - var page = await _dbContext.Queryable() - .LeftJoin((x,menu)=>x.MenuCode == menu.Code) - .WhereIF(request.MenuCode.HasValue, x => request.MenuCode == x.MenuCode) - .WhereIF(!request.Search.IsEmpty(),x => x.Name.Contains(request.Search)) - .Select((x,menu) => new GetDishesResponse - { - MenuName = menu.Name, - },true) - .ToPageListAsync(request); - return page; + if (!request.MenuCode.HasValue) + { + return await _dbContext.Queryable() + .Select() + .ToPageListAsync(request); + } + else + { + var disCodes = await _dbContext.Queryable() + .Where(x => x.MenuCode == request.MenuCode) + .Select(x => x.DishersCode) + .ToListAsync(); + return await _dbContext.Queryable() + .Where(x => disCodes.Contains(x.Code)) + .Select() + .ToPageListAsync(request); + } } public async Task SaveDishesAsync(SaveDishesRequest request) { - var menu = await _dbContext.Queryable() - .FirstAsync(x => x.Code == request.MenuCode); - menu.ThrowIfNull($"{request.MenuCode}:该菜单不存在!"); - if (!request.Id.HasValue) { var dishers = request.Adapt(); @@ -93,5 +96,20 @@ namespace Dlhis.Canteen.Order.Services.Implements await _dbContext.UpdateAsync(entity); } } + + public async Task DispositionDishesAsync(DispositionDishesRequest request) + { + var lst = new List(); + foreach (var dCode in request.DishersCodes) + { + var entity = new CanteenMenuDishersRelationshipEntity + { + MenuCode = request.MenudCode, + DishersCode = dCode, + }; + lst.Add(entity); + } + await _dbContext.InsertAsync(lst); + } } } diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs index c322f622..b30107d1 100644 --- a/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs +++ b/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs @@ -82,15 +82,15 @@ public class MiniProgramOrderDetailService : IMiniProgramOrderDetailService var dishes = await _dbContext.Queryable().Where(x => x.Code == request.DishesCode).FirstAsync(); dishes.Enable.ThrowIfFalse($"{dishes.Name}没启用!"); - var menu = await _dbContext.Queryable().Where(x => x.Code == dishes.MenuCode).FirstAsync(); - menu.Enable.ThrowIfFalse($"{dishes.Name}没启用!"); + //var menu = await _dbContext.Queryable().Where(x => x.Code == dishes.MenuCode).FirstAsync(); + //menu.Enable.ThrowIfFalse($"{dishes.Name}没启用!"); // 获取用餐日期 DateOnly tomorrow = DateOnly.FromDateTime(DateTime.Today.AddDays(1)); - if (!(tomorrow >= menu.StartDate && tomorrow <= menu.EndDate)) - { - true.ThrowIfTrue($"菜品:{dishes.Name}对应的菜单:{menu.Name}不在营业日!"); - } + //if (!(tomorrow >= menu.StartDate && tomorrow <= menu.EndDate)) + //{ + // true.ThrowIfTrue($"菜品:{dishes.Name}对应的菜单:{menu.Name}不在营业日!"); + //} if(dishes.RestrictedNum < 0) { true.ThrowIfTrue($"菜品:{dishes.Name}已售罄!"); diff --git a/Src/Dlhis.Entity/Canteen/Entities/CanteenDishesEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/CanteenDishesEntity.cs index b1136216..7c8a4292 100644 --- a/Src/Dlhis.Entity/Canteen/Entities/CanteenDishesEntity.cs +++ b/Src/Dlhis.Entity/Canteen/Entities/CanteenDishesEntity.cs @@ -16,11 +16,6 @@ namespace Dlhis.Entity.Canteen.Entities [SugarTable(TableName = "CanteenDishes", TableDescription = "菜品表")] public class CanteenDishesEntity : SugarBaseEntity { - /// - /// 菜单编码 - /// - [SugarColumn(ColumnDescription = "菜单编码")] - public Guid MenuCode { get; set; } /// /// 大类 diff --git a/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuDishersRelationshipEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuDishersRelationshipEntity.cs new file mode 100644 index 00000000..28341644 --- /dev/null +++ b/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuDishersRelationshipEntity.cs @@ -0,0 +1,17 @@ +using Kurisu.SqlSugar; +using SqlSugar; + +namespace Dlhis.Entity.Canteen.Entities +{ + /// + /// 菜单菜品表 + /// + [SugarTable(TableName = "CanteenMenuDishersRelationship", TableDescription = "菜单菜品表")] + public class CanteenMenuDishersRelationshipEntity : SugarBaseEntity + { + public Guid MenuCode { get; set; } + + + public Guid DishersCode { get; set; } + } +}