feat 配置菜品菜单

This commit is contained in:
cheche
2024-03-15 10:40:05 +08:00
parent 1c0ad2edd6
commit 9fc0719bad
9 changed files with 76 additions and 35 deletions

View File

@@ -66,5 +66,16 @@ public class MenuDishesController : ControllerBase
{
await _menuDishesService.SaveDishesAsync(request);
}
/// <summary>
/// 配置菜单菜品
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("disposition")]
public async Task DispositionDishesAsync(DispositionDishesRequest request)
{
await _menuDishesService.DispositionDishesAsync(request);
}
}

View File

@@ -0,0 +1,8 @@
namespace Dlhis.Canteen.Order.Request
{
public class DispositionDishesRequest
{
public Guid MenudCode { get; set; }
public List<Guid> DishersCodes { get; set; }
}
}

View File

@@ -10,11 +10,6 @@ namespace Dlhis.Canteen.Order.Request
public long? Id { get; set; }
/// <summary>
/// 菜单编码
/// </summary>
public Guid MenuCode { get; set; }
/// <summary>
/// 大类
/// </summary>

View File

@@ -7,11 +7,6 @@ namespace Dlhis.Canteen.Order.Response
{
public class GetDishesResponse
{
/// <summary>
/// 菜单编码
/// </summary>
public Guid MenuCode { get; set; }
/// <summary>
/// 菜单名称
/// </summary>

View File

@@ -14,5 +14,7 @@ namespace Dlhis.Canteen.Order.Services
Task<Pagination<GetDishesResponse>> GetDishesAsync(GetDishesRequest request);
Task SaveDishesAsync(SaveDishesRequest request);
Task DispositionDishesAsync(DispositionDishesRequest request);
}
}

View File

@@ -61,24 +61,27 @@ namespace Dlhis.Canteen.Order.Services.Implements
public async Task<Pagination<GetDishesResponse>> GetDishesAsync(GetDishesRequest request)
{
var page = await _dbContext.Queryable<CanteenDishesEntity>()
.LeftJoin<CanteenMenuEntity>((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<CanteenDishesEntity>()
.Select<GetDishesResponse>()
.ToPageListAsync(request);
}
else
{
var disCodes = await _dbContext.Queryable<CanteenMenuDishersRelationshipEntity>()
.Where(x => x.MenuCode == request.MenuCode)
.Select(x => x.DishersCode)
.ToListAsync();
return await _dbContext.Queryable<CanteenDishesEntity>()
.Where(x => disCodes.Contains(x.Code))
.Select<GetDishesResponse>()
.ToPageListAsync(request);
}
}
public async Task SaveDishesAsync(SaveDishesRequest request)
{
var menu = await _dbContext.Queryable<CanteenMenuEntity>()
.FirstAsync(x => x.Code == request.MenuCode);
menu.ThrowIfNull($"{request.MenuCode}:该菜单不存在!");
if (!request.Id.HasValue)
{
var dishers = request.Adapt<CanteenDishesEntity>();
@@ -93,5 +96,20 @@ namespace Dlhis.Canteen.Order.Services.Implements
await _dbContext.UpdateAsync(entity);
}
}
public async Task DispositionDishesAsync(DispositionDishesRequest request)
{
var lst = new List<CanteenMenuDishersRelationshipEntity>();
foreach (var dCode in request.DishersCodes)
{
var entity = new CanteenMenuDishersRelationshipEntity
{
MenuCode = request.MenudCode,
DishersCode = dCode,
};
lst.Add(entity);
}
await _dbContext.InsertAsync(lst);
}
}
}

View File

@@ -82,15 +82,15 @@ public class MiniProgramOrderDetailService : IMiniProgramOrderDetailService
var dishes = await _dbContext.Queryable<CanteenDishesEntity>().Where(x => x.Code == request.DishesCode).FirstAsync();
dishes.Enable.ThrowIfFalse($"{dishes.Name}没启用!");
var menu = await _dbContext.Queryable<CanteenMenuEntity>().Where(x => x.Code == dishes.MenuCode).FirstAsync();
menu.Enable.ThrowIfFalse($"{dishes.Name}没启用!");
//var menu = await _dbContext.Queryable<CanteenMenuEntity>().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}已售罄!");

View File

@@ -16,11 +16,6 @@ namespace Dlhis.Entity.Canteen.Entities
[SugarTable(TableName = "CanteenDishes", TableDescription = "菜品表")]
public class CanteenDishesEntity : SugarBaseEntity
{
/// <summary>
/// 菜单编码
/// </summary>
[SugarColumn(ColumnDescription = "菜单编码")]
public Guid MenuCode { get; set; }
/// <summary>
/// 大类

View File

@@ -0,0 +1,17 @@
using Kurisu.SqlSugar;
using SqlSugar;
namespace Dlhis.Entity.Canteen.Entities
{
/// <summary>
/// 菜单菜品表
/// </summary>
[SugarTable(TableName = "CanteenMenuDishersRelationship", TableDescription = "菜单菜品表")]
public class CanteenMenuDishersRelationshipEntity : SugarBaseEntity
{
public Guid MenuCode { get; set; }
public Guid DishersCode { get; set; }
}
}