feat 配置菜品菜单
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
namespace Dlhis.Canteen.Order.Request
|
||||
{
|
||||
public class DispositionDishesRequest
|
||||
{
|
||||
public Guid MenudCode { get; set; }
|
||||
public List<Guid> DishersCodes { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -10,11 +10,6 @@ namespace Dlhis.Canteen.Order.Request
|
||||
|
||||
public long? Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 菜单编码
|
||||
/// </summary>
|
||||
public Guid MenuCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 大类
|
||||
/// </summary>
|
||||
|
||||
@@ -7,11 +7,6 @@ namespace Dlhis.Canteen.Order.Response
|
||||
{
|
||||
public class GetDishesResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 菜单编码
|
||||
/// </summary>
|
||||
public Guid MenuCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 菜单名称
|
||||
/// </summary>
|
||||
|
||||
@@ -14,5 +14,7 @@ namespace Dlhis.Canteen.Order.Services
|
||||
Task<Pagination<GetDishesResponse>> GetDishesAsync(GetDishesRequest request);
|
||||
|
||||
Task SaveDishesAsync(SaveDishesRequest request);
|
||||
|
||||
Task DispositionDishesAsync(DispositionDishesRequest request);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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}已售罄!");
|
||||
|
||||
@@ -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>
|
||||
/// 大类
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user