diff --git a/Src/Dlhis.Canteen/Order/Controllers/MenuDishesController.cs b/Src/Dlhis.Canteen/Order/Controllers/MenuDishesController.cs
index 9001b4f4..b6ecc0d5 100644
--- a/Src/Dlhis.Canteen/Order/Controllers/MenuDishesController.cs
+++ b/Src/Dlhis.Canteen/Order/Controllers/MenuDishesController.cs
@@ -68,7 +68,7 @@ public class MenuDishesController : ControllerBase
}
///
- /// 配置菜单菜品
+ /// 配置每日菜单菜品及限售
///
///
///
diff --git a/Src/Dlhis.Canteen/Order/Request/DispositionDishesDto.cs b/Src/Dlhis.Canteen/Order/Request/DispositionDishesDto.cs
new file mode 100644
index 00000000..07863df5
--- /dev/null
+++ b/Src/Dlhis.Canteen/Order/Request/DispositionDishesDto.cs
@@ -0,0 +1,10 @@
+namespace Dlhis.Canteen.Order.Request
+{
+ public class DispositionDishesDto
+ {
+ public Guid DisherCode { get; set; }
+
+ public int RestrictedNum { get; set; }
+
+ }
+}
diff --git a/Src/Dlhis.Canteen/Order/Request/DispositionDishesRequest.cs b/Src/Dlhis.Canteen/Order/Request/DispositionDishesRequest.cs
index 5beb9f23..070e8c42 100644
--- a/Src/Dlhis.Canteen/Order/Request/DispositionDishesRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/DispositionDishesRequest.cs
@@ -3,6 +3,8 @@
public class DispositionDishesRequest
{
public Guid MenudCode { get; set; }
- public List DishersCodes { get; set; }
+
+ public List DishersDtos { get; set; }
+
}
}
diff --git a/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs b/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs
index 2369dd07..4d8b9cc2 100644
--- a/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs
@@ -18,7 +18,7 @@ namespace Dlhis.Canteen.Order.Request
public Guid PlaceCode { get; set; }
///
- /// 餐别
+ /// 餐次
///
public ShiftEnumType ShiftType { get; set; }
@@ -27,6 +27,11 @@ namespace Dlhis.Canteen.Order.Request
///
public string Address { get; set; }
+ ///
+ /// 菜单
+ ///
+ public Guid MenuCode { get; set; }
+
///
/// 菜品
///
diff --git a/Src/Dlhis.Canteen/Order/Request/SaveDishesRequest.cs b/Src/Dlhis.Canteen/Order/Request/SaveDishesRequest.cs
index 11429d96..f68b41e1 100644
--- a/Src/Dlhis.Canteen/Order/Request/SaveDishesRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/SaveDishesRequest.cs
@@ -46,11 +46,6 @@ namespace Dlhis.Canteen.Order.Request
///
public string Unit { get; set; }
- ///
- /// 限售份数
- ///
- public int RestrictedNum { get; set; }
-
///
/// 图片
///
diff --git a/Src/Dlhis.Canteen/Order/Request/SaveMenuRequest.cs b/Src/Dlhis.Canteen/Order/Request/SaveMenuRequest.cs
index d4420c48..76e7d66e 100644
--- a/Src/Dlhis.Canteen/Order/Request/SaveMenuRequest.cs
+++ b/Src/Dlhis.Canteen/Order/Request/SaveMenuRequest.cs
@@ -26,14 +26,10 @@ namespace Dlhis.Canteen.Order.Request
public string Factory { get; set; }
///
- /// 开始日期
+ /// 营业日期
///
public DateOnly StartDate { get; set; }
- ///
- /// 结束日期
- ///
- public DateOnly EndDate { get; set; }
///
/// 餐次段
diff --git a/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs
index 3fa98a24..4d149b01 100644
--- a/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs
+++ b/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs
@@ -7,10 +7,6 @@ namespace Dlhis.Canteen.Order.Response
{
public class GetDishesResponse
{
- ///
- /// 菜单名称
- ///
- public string MenuName { get; set; }
///
/// 大类
@@ -57,10 +53,6 @@ namespace Dlhis.Canteen.Order.Response
///
public string Unit { get; set; }
- ///
- /// 限售份数
- ///
- public int RestrictedNum { get; set; }
///
/// 图片
diff --git a/Src/Dlhis.Canteen/Order/Response/GetMenuResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetMenuResponse.cs
index 11a864da..111e0ecb 100644
--- a/Src/Dlhis.Canteen/Order/Response/GetMenuResponse.cs
+++ b/Src/Dlhis.Canteen/Order/Response/GetMenuResponse.cs
@@ -32,14 +32,10 @@ namespace Dlhis.Canteen.Order.Response
public string Factory { get; set; }
///
- /// 开始日期
+ /// 营业日期
///
public DateOnly StartDate { get; set; }
- ///
- /// 结束日期
- ///
- public DateOnly EndDate { get; set; }
///
/// 餐次段
diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs
index 84b2d4dd..a5965110 100644
--- a/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs
@@ -32,6 +32,7 @@ namespace Dlhis.Canteen.Order.Services.Implements
.Select((x,place) => new GetMenuResponse
{
ShiftTypesSrt = x.ShiftTypes.ToString(),
+ //ShiftTypesSrt = string.Join(", ", x.ShiftTypes.Select(enumValue => enumValue.GetDescription())),
PlaceName = place.Name,
},true)
.ToPageListAsync(request);
@@ -100,12 +101,14 @@ namespace Dlhis.Canteen.Order.Services.Implements
public async Task DispositionDishesAsync(DispositionDishesRequest request)
{
var lst = new List();
- foreach (var dCode in request.DishersCodes)
+
+ foreach (var dto in request.DishersDtos)
{
var entity = new CanteenMenuDishersRelationshipEntity
{
MenuCode = request.MenudCode,
- DishersCode = dCode,
+ DishersCode = dto.DisherCode,
+ RestrictedNum = dto.RestrictedNum,
};
lst.Add(entity);
}
diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs
index b30107d1..9c31e57e 100644
--- a/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs
+++ b/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs
@@ -10,6 +10,7 @@ using Kurisu.Core.DataAccess.Dto;
using Kurisu.SqlSugar.Extensions;
using Kurisu.SqlSugar.Services;
using Mapster;
+using SqlSugar;
namespace Dlhis.Canteen.Order.Services.Implements;
@@ -82,16 +83,20 @@ 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 == request.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(dishes.RestrictedNum < 0)
+ if (tomorrow != menu.StartDate)
+ {
+ true.ThrowIfTrue($"菜品:{dishes.Name}对应的菜单:{menu.Name}不在营业日!");
+ }
+
+ var restricted= await _dbContext.Queryable< CanteenMenuDishersRelationshipEntity>()
+ .Where(x => x.MenuCode == request.MenuCode && x.DishersCode == request.DishesCode).FirstAsync();
+ restricted.ThrowIfNull($"每日菜单:{menu.Name} 还没有配置菜品:{dishes.Name} 的限售数量!");
+ if (restricted.RestrictedNum < 0)
{
true.ThrowIfTrue($"菜品:{dishes.Name}已售罄!");
}
@@ -99,6 +104,7 @@ public class MiniProgramOrderDetailService : IMiniProgramOrderDetailService
var gainfo = await _dbContext.Queryable()
.Where(x => x.Code == request.UserCode)
.FirstAsync();
+ gainfo.ThrowIfNull($"用户{request.UserCode}无档案信息,无法订餐!");
//判断是否订过餐
var flag = await _dbContext.Queryable()
@@ -140,7 +146,7 @@ public class MiniProgramOrderDetailService : IMiniProgramOrderDetailService
OrderStatus = MiniProgramOrderStatusEnumType.I,
OrderType = dishes.Type,
};
- //订单明细
+ //生成订单明细
var detail = new OrderDetailsEntity
{
ThirdNo = order.No,
@@ -155,11 +161,16 @@ public class MiniProgramOrderDetailService : IMiniProgramOrderDetailService
OrderStatus = OrderDetailsStatusEnumType.I,
};
order.TotalAmount = detail.Amount;
-
await _dbContext.InsertAsync(order);
await _dbContext.InsertAsync(detail);
- dishes.RestrictedNum-=request.DishesNum;
- await _dbContext.UpdateAsync(dishes);
+ //扣减份数
+ var effect = await _dbContext.Updateable()
+ .SetColumns(x => x.RestrictedNum == restricted.RestrictedNum - request.DishesNum)
+ .SetColumns(x => x.Version == x.Version + 1)
+ .Where(x => x.MenuCode == request.MenuCode && x.DishersCode == request.DishesCode && x.Version == restricted.Version)
+ .ExecuteCommandAsync();
+
+ if (effect <= 0) throw new VersionExceptions("更新版本冲突");
}
}
diff --git a/Src/Dlhis.Entity/Canteen/Entities/CanteenDishesEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/CanteenDishesEntity.cs
index 7c8a4292..25dfd418 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/CanteenDishesEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/CanteenDishesEntity.cs
@@ -65,12 +65,6 @@ namespace Dlhis.Entity.Canteen.Entities
[SugarColumn(ColumnDescription = "单位")]
public string Unit { get; set; }
- ///
- /// 限售份数
- ///
- [SugarColumn(ColumnDescription = "限售份数")]
- public int RestrictedNum { get; set; }
-
///
/// 图片
///
diff --git a/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuDishersRelationshipEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuDishersRelationshipEntity.cs
index 28341644..da94aa3b 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuDishersRelationshipEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuDishersRelationshipEntity.cs
@@ -9,9 +9,24 @@ namespace Dlhis.Entity.Canteen.Entities
[SugarTable(TableName = "CanteenMenuDishersRelationship", TableDescription = "菜单菜品表")]
public class CanteenMenuDishersRelationshipEntity : SugarBaseEntity
{
+ ///
+ /// 菜单code
+ ///
public Guid MenuCode { get; set; }
-
+ ///
+ /// 菜品code
+ ///
public Guid DishersCode { get; set; }
+
+ ///
+ /// 限售份数
+ ///
+ public int RestrictedNum { get; set; }
+
+ ///
+ /// 版本
+ ///
+ public int Version { get; set; }
}
}
diff --git a/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuEntity.cs
index 2c8501ba..03461d3a 100644
--- a/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuEntity.cs
+++ b/Src/Dlhis.Entity/Canteen/Entities/CanteenMenuEntity.cs
@@ -1,12 +1,6 @@
using Dlhis.Entity.Canteen.Enums;
-using Dlhis.Entity.Device.Enums;
using Kurisu.SqlSugar;
using SqlSugar;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
namespace Dlhis.Entity.Canteen.Entities;
@@ -42,16 +36,11 @@ public class CanteenMenuEntity : SugarBaseEntity
public string Factory { get; set; }
///
- /// 开始日期
+ /// 营业日期
///
- [SugarColumn(ColumnDescription = "开始日期")]
+ [SugarColumn(ColumnDescription = "营业日期")]
public DateOnly StartDate { get; set; }
- ///
- /// 结束日期
- ///
- [SugarColumn(ColumnDescription = "结束日期")]
- public DateOnly EndDate { get; set; }
///
/// 餐次段