From 5be226aef21a3a3db5a519bf6c23d7a0060a8850 Mon Sep 17 00:00:00 2001 From: cheche <717840555@qq.com> Date: Thu, 14 Mar 2024 17:19:43 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=AD=97=E6=AE=B5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GainfoPermissionsController.cs | 13 ++ .../Response/GetAssignGroupResponse.cs | 7 + .../Services/IGainfoPermissions.cs | 3 +- .../Services/Implements/GainfoPermissions.cs | 12 ++ .../Order/Controllers/MenuDishesController.cs | 4 +- .../MiniProgramOrderDetailController.cs | 22 +++ .../Order/Request/GetMenuRequest.cs | 2 + .../Request/GetMiniProgramOrderRequest.cs | 4 + .../Order/Request/OrderRequest.cs | 45 ++++++ .../Order/Request/SaveDetailRequest.cs | 61 ++++++++ .../Order/Response/GetDetailResponse.cs | 9 +- .../Order/Response/GetDishesResponse.cs | 5 + .../Order/Response/GetMenuResponse.cs | 5 + .../Response/GetMiniProgramOrderResponse.cs | 32 ++++- .../IMiniProgramOrderDetailService.cs | 4 + .../Services/Implements/MenuDishesService.cs | 14 +- .../MiniProgramOrderDetailService.cs | 136 +++++++++++++++++- Src/Dlhis.Canteen/appsettings.json | 3 +- .../Entities/MiniProgramOrderEntity.cs | 10 +- .../Canteen/Entities/OrderDetailsEntity.cs | 17 +-- Src/Dlhis.Entity/Common/ApkFileEntity.cs | 2 +- 21 files changed, 379 insertions(+), 31 deletions(-) create mode 100644 Src/Dlhis.Basic/Organization/Response/GetAssignGroupResponse.cs create mode 100644 Src/Dlhis.Canteen/Order/Request/OrderRequest.cs create mode 100644 Src/Dlhis.Canteen/Order/Request/SaveDetailRequest.cs diff --git a/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs b/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs index 84ab0fb5..94b134a4 100644 --- a/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs +++ b/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs @@ -1,13 +1,16 @@ using System.ComponentModel.DataAnnotations; using Dlhis.Basic.BusinessPlace.Response; using Dlhis.Basic.Device.Response; +using Dlhis.Basic.Device.Services; using Dlhis.Basic.Organization.Request; using Dlhis.Basic.Organization.Response; using Dlhis.Basic.Organization.Services; using Dlhis.Basic.Organization.Services.Implements; +using Dlhis.Entity.Device.Entities; using Kurisu.Core.DataAccess.Dto; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Org.BouncyCastle.Asn1.Ocsp; namespace Dlhis.Basic.Organization.Controllers; @@ -57,4 +60,14 @@ public class GainfoPermissionsController : ControllerBase { return await _gainfoPermissions.GetAssignDeviceCodesAsync(request); } + + /// + /// 当前绑定的设备组信息 + /// + /// + [HttpGet("assignGroups")] + public async Task> GetAssignGroupAsync(string userNo) + { + return await _gainfoPermissions.GetAssignGroupAsync(userNo); + } } diff --git a/Src/Dlhis.Basic/Organization/Response/GetAssignGroupResponse.cs b/Src/Dlhis.Basic/Organization/Response/GetAssignGroupResponse.cs new file mode 100644 index 00000000..eff54888 --- /dev/null +++ b/Src/Dlhis.Basic/Organization/Response/GetAssignGroupResponse.cs @@ -0,0 +1,7 @@ +namespace Dlhis.Basic.Organization.Response +{ + public class GetAssignGroupResponse + { + + } +} diff --git a/Src/Dlhis.Basic/Organization/Services/IGainfoPermissions.cs b/Src/Dlhis.Basic/Organization/Services/IGainfoPermissions.cs index 7b1f6183..72e38ae2 100644 --- a/Src/Dlhis.Basic/Organization/Services/IGainfoPermissions.cs +++ b/Src/Dlhis.Basic/Organization/Services/IGainfoPermissions.cs @@ -2,7 +2,6 @@ using Dlhis.Basic.Device.Response; using Dlhis.Basic.Organization.Request; using Dlhis.Basic.Organization.Response; -using Dlhis.Basic.Organization.Services.Implements; using Kurisu.Core.DataAccess.Dto; namespace Dlhis.Basic.Organization.Services; @@ -14,4 +13,6 @@ public interface IGainfoPermissions : IScopeDependency Task> GetDevicesUnderGroupByUserNoAsync(string userNo, string deviceGroupCode); Task> GetAssignDeviceCodesAsync(DeviceAssRequest request); + + Task> GetAssignGroupAsync(string userNo); } diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs index 2bcc5fe4..5fd1e448 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs @@ -1,4 +1,5 @@ using Dlhis.Basic.BusinessPlace.Response; +using Dlhis.Basic.Device.Request; using Dlhis.Basic.Device.Response; using Dlhis.Basic.Device.Services; using Dlhis.Basic.Organization.Request; @@ -8,6 +9,7 @@ using Dlhis.Entity.Canteen.Entities; using Dlhis.Entity.Canteen.Enums; using Dlhis.Entity.Device.Entities; using Dlhis.Entity.Device.Enums; +using Dlhis.Entity.Sys.Enums; using Kurisu.AspNetCore.Utils.Extensions; using Kurisu.Core.DataAccess.Dto; using Kurisu.SqlSugar.Extensions; @@ -193,6 +195,16 @@ public class GainfoPermissions : IGainfoPermissions } + + public async Task> GetAssignGroupAsync(string userNo) + { + var groups = await _devicePermissionService.GetAssignmentsAsync(DeviceAssignmentTypeEnumType.Group, AssignTypeEnumType.User, userNo); + return await _dbContext.Queryable() + .Where(x => groups.Contains(x.Code)) + .Select() + .ToListAsync(); + } + private IEnumerable RecursionGetNext(DeviceGroupEntity current, List deviceGroups) { var next = deviceGroups.Where(x => x.PCode == current.Code).ToList(); diff --git a/Src/Dlhis.Canteen/Order/Controllers/MenuDishesController.cs b/Src/Dlhis.Canteen/Order/Controllers/MenuDishesController.cs index be35ced4..4c04d817 100644 --- a/Src/Dlhis.Canteen/Order/Controllers/MenuDishesController.cs +++ b/Src/Dlhis.Canteen/Order/Controllers/MenuDishesController.cs @@ -24,7 +24,7 @@ public class MenuDishesController : ControllerBase } /// - /// 获取菜单 + /// 菜单分页 /// /// /// @@ -46,7 +46,7 @@ public class MenuDishesController : ControllerBase } /// - /// 获取菜品 + /// 菜品分页 /// /// /// diff --git a/Src/Dlhis.Canteen/Order/Controllers/MiniProgramOrderDetailController.cs b/Src/Dlhis.Canteen/Order/Controllers/MiniProgramOrderDetailController.cs index 93d81ee9..e26efc4b 100644 --- a/Src/Dlhis.Canteen/Order/Controllers/MiniProgramOrderDetailController.cs +++ b/Src/Dlhis.Canteen/Order/Controllers/MiniProgramOrderDetailController.cs @@ -34,6 +34,18 @@ public class MiniProgramOrderDetailController : ControllerBase return await _miniProgramOrderDetailService.GetMiniProgramOrderAsync(request); } + + /// + /// 明细保存 + /// + /// + /// + [HttpPost("saveDetail")] + public async Task SaveDetailAsync(SaveDetailRequest request) + { + await _miniProgramOrderDetailService.SaveDetailAsync(request); + } + /// /// 明细分页 /// @@ -44,4 +56,14 @@ public class MiniProgramOrderDetailController : ControllerBase { return await _miniProgramOrderDetailService.GetDetailAsync(request); } + + /// + /// 下单 + /// + /// + [HttpPost("order")] + public async Task OrderAsync(OrderRequest request) + { + await _miniProgramOrderDetailService.OrderAsync(request); + } } diff --git a/Src/Dlhis.Canteen/Order/Request/GetMenuRequest.cs b/Src/Dlhis.Canteen/Order/Request/GetMenuRequest.cs index 0d197a5e..8f9c6b55 100644 --- a/Src/Dlhis.Canteen/Order/Request/GetMenuRequest.cs +++ b/Src/Dlhis.Canteen/Order/Request/GetMenuRequest.cs @@ -5,5 +5,7 @@ namespace Dlhis.Canteen.Order.Request public class GetMenuRequest : PageDto { public Guid? PlaceCode { get; set; } + + public string Factory { get; set; } } } diff --git a/Src/Dlhis.Canteen/Order/Request/GetMiniProgramOrderRequest.cs b/Src/Dlhis.Canteen/Order/Request/GetMiniProgramOrderRequest.cs index dbbbdea8..98bdea14 100644 --- a/Src/Dlhis.Canteen/Order/Request/GetMiniProgramOrderRequest.cs +++ b/Src/Dlhis.Canteen/Order/Request/GetMiniProgramOrderRequest.cs @@ -4,5 +4,9 @@ namespace Dlhis.Canteen.Order.Request { public class GetMiniProgramOrderRequest : PageDto { + /// + /// 用餐日期 + /// + public DateOnly? SysDate { get; set; } } } diff --git a/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs b/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs new file mode 100644 index 00000000..2369dd07 --- /dev/null +++ b/Src/Dlhis.Canteen/Order/Request/OrderRequest.cs @@ -0,0 +1,45 @@ +using Dlhis.Entity.Canteen.Enums; +using SqlSugar.DbConvert; +using SqlSugar; + +namespace Dlhis.Canteen.Order.Request +{ + public class OrderRequest + { + + /// + /// 订餐人 + /// + public string UserCode { get; set; } + + /// + /// 食堂 + /// + public Guid PlaceCode { get; set; } + + /// + /// 餐别 + /// + public ShiftEnumType ShiftType { get; set; } + + /// + /// 配送地址 + /// + public string Address { get; set; } + + /// + /// 菜品 + /// + public Guid DishesCode { get; set; } + + /// + /// 数量 + /// + public int DishesNum { get; set; } = 1; + + /// + /// 支付方式 + /// + public CanteenPayEnumType PayType { get; set; } + } +} diff --git a/Src/Dlhis.Canteen/Order/Request/SaveDetailRequest.cs b/Src/Dlhis.Canteen/Order/Request/SaveDetailRequest.cs new file mode 100644 index 00000000..a7ed3d5d --- /dev/null +++ b/Src/Dlhis.Canteen/Order/Request/SaveDetailRequest.cs @@ -0,0 +1,61 @@ +using Dlhis.Entity.Canteen.Enums; +using SqlSugar.DbConvert; +using SqlSugar; + +namespace Dlhis.Canteen.Order.Request +{ + public class SaveDetailRequest + { + public long? Id { get; set; } + + /// + /// 订单号 + /// + public string ThirdNo { get; set; } + + /// + /// 营业日 + /// + public DateOnly BusinessDate { get; set; } + + /// + /// 餐次 + /// + public ShiftEnumType ShiftType { get; set; } + + /// + /// 菜品编码 + /// + public Guid DishesCode { get; set; } + + /// + /// 菜品名称 + /// + public Guid DishesName { get; set; } + + /// + /// 单价 + /// + public decimal Price { get; set; } + + /// + /// 单位 + /// + public string Unit { get; set; } + + /// + /// 数量 + /// + public int Num { get; set; } + + /// + /// 金额 + /// + public decimal Amount { get; set; } + + /// + /// 订单明细状态 + /// + public OrderDetailsStatusEnumType OrderStatus { get; set; } + } +} diff --git a/Src/Dlhis.Canteen/Order/Response/GetDetailResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetDetailResponse.cs index c20c4f00..c99deb60 100644 --- a/Src/Dlhis.Canteen/Order/Response/GetDetailResponse.cs +++ b/Src/Dlhis.Canteen/Order/Response/GetDetailResponse.cs @@ -18,9 +18,14 @@ namespace Dlhis.Canteen.Order.Response public DateOnly BusinessDate { get; set; } /// - /// 餐别 + /// 餐次 /// - public string ShiftType { get; set; } + public ShiftEnumType ShiftType { get; set; } + + /// + /// 餐次CN + /// + public string ShiftTypeCN => ShiftType.GetDescription(); /// /// 菜品编码 diff --git a/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs index 5b790fd0..aafee2b4 100644 --- a/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs +++ b/Src/Dlhis.Canteen/Order/Response/GetDishesResponse.cs @@ -12,6 +12,11 @@ namespace Dlhis.Canteen.Order.Response /// public Guid MenuCode { get; set; } + /// + /// 菜单名称 + /// + public string MenuName { get; set; } + /// /// 大类 /// diff --git a/Src/Dlhis.Canteen/Order/Response/GetMenuResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetMenuResponse.cs index 06d1d2bc..11a864da 100644 --- a/Src/Dlhis.Canteen/Order/Response/GetMenuResponse.cs +++ b/Src/Dlhis.Canteen/Order/Response/GetMenuResponse.cs @@ -21,6 +21,11 @@ namespace Dlhis.Canteen.Order.Response /// public Guid PlaceCode { get; set; } + /// + /// 所属营业点名称 + /// + public string PlaceName { get; set; } + /// /// 厂区 /// diff --git a/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs b/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs index d14f4fcb..5fcd6a2b 100644 --- a/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs +++ b/Src/Dlhis.Canteen/Order/Response/GetMiniProgramOrderResponse.cs @@ -32,6 +32,11 @@ namespace Dlhis.Canteen.Order.Response /// public string DepartmentNo { get; set; } + /// + /// 部门名称 + /// + public string DepartmentName { get; set; } + /// /// 成本中心 /// @@ -52,16 +57,31 @@ namespace Dlhis.Canteen.Order.Response /// public Guid PlaceCode { get; set; } + /// + /// 营业名称 + /// + public string PlaceName { get; set; } + /// /// 餐次 /// - public string ShiftType { get; set; } + public ShiftEnumType ShiftType { get; set; } + + /// + /// 餐次CN + /// + public string ShiftTypeCN => ShiftType.GetDescription(); /// /// 菜品 /// public Guid DishesCode { get; set; } + /// + /// 菜品名称 + /// + public string DishesName { get; set; } + /// /// 手机号码 /// @@ -97,6 +117,16 @@ namespace Dlhis.Canteen.Order.Response /// public string OrderStatusCN => OrderStatus.GetDescription(); + /// + /// 订单类型 + /// + public CanteenDishesEnumType OrderType { get; set; } + + /// + /// 订单类型CN + /// + public string OrderTypeCN => OrderType.GetDescription(); + /// /// 总金额 /// diff --git a/Src/Dlhis.Canteen/Order/Services/IMiniProgramOrderDetailService.cs b/Src/Dlhis.Canteen/Order/Services/IMiniProgramOrderDetailService.cs index 1fb11cd4..7bb8394d 100644 --- a/Src/Dlhis.Canteen/Order/Services/IMiniProgramOrderDetailService.cs +++ b/Src/Dlhis.Canteen/Order/Services/IMiniProgramOrderDetailService.cs @@ -9,6 +9,10 @@ namespace Dlhis.Canteen.Order.Services { Task> GetMiniProgramOrderAsync(GetMiniProgramOrderRequest request); + Task SaveDetailAsync(SaveDetailRequest request); + Task> GetDetailAsync( GetDetailRequest request); + + Task OrderAsync(OrderRequest request); } } diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs index ca06fee2..2b1c3443 100644 --- a/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs +++ b/Src/Dlhis.Canteen/Order/Services/Implements/MenuDishesService.cs @@ -24,15 +24,15 @@ namespace Dlhis.Canteen.Order.Services.Implements public async Task> GetMenuAsync(GetMenuRequest request) { - var currentTenantId = _currentUser.GetStringTenantId(); - var page = await _dbContext.Queryable() - .Where(x => x.Factory == currentTenantId) + .LeftJoin((x,place) => x.PlaceCode == place.Code) + .WhereIF(!request.Factory.IsEmpty(),x => x.Factory == request.Factory) .WhereIF(request.PlaceCode.HasValue, x => request.PlaceCode == x.PlaceCode) .WhereIF(!request.Search.IsEmpty(),x => x.Name.Contains(request.Search)) - .Select(x => new GetMenuResponse + .Select((x,place) => new GetMenuResponse { ShiftTypesSrt = x.ShiftTypes.ToString(), + PlaceName = place.Name, },true) .ToPageListAsync(request); return page; @@ -62,9 +62,13 @@ 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() + .Select((x,menu) => new GetDishesResponse + { + MenuName = menu.Name, + },true) .ToPageListAsync(request); return page; } diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs index 1235e705..c322f622 100644 --- a/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs +++ b/Src/Dlhis.Canteen/Order/Services/Implements/MiniProgramOrderDetailService.cs @@ -1,32 +1,64 @@ using Dlhis.Canteen.Order.Request; using Dlhis.Canteen.Order.Response; +using Dlhis.Entity.Basic.Entity; using Dlhis.Entity.Canteen.Entities; +using Dlhis.Entity.Canteen.Enums; +using Dlhis.Sys.Api; +using Kurisu.AspNetCore.Utils; using Kurisu.AspNetCore.Utils.Extensions; using Kurisu.Core.DataAccess.Dto; using Kurisu.SqlSugar.Extensions; using Kurisu.SqlSugar.Services; -using Microsoft.AspNetCore.Mvc; +using Mapster; namespace Dlhis.Canteen.Order.Services.Implements; public class MiniProgramOrderDetailService : IMiniProgramOrderDetailService { private readonly IDbContext _dbContext; - - public MiniProgramOrderDetailService(IDbContext dbContext) + private readonly ITenantApi _tenantApi; + public MiniProgramOrderDetailService(IDbContext dbContext, ITenantApi tenantApi) { _dbContext = dbContext; + _tenantApi = tenantApi; } public async Task> GetMiniProgramOrderAsync(GetMiniProgramOrderRequest request) { var page = await _dbContext.Queryable() - .WhereIF(!request.Search.IsEmpty(), x => x.Name == request.Search || x.Code == request.Search) - .Select() + .LeftJoin((order,place) => order.PlaceCode == place.Code) + .LeftJoin((order, place,dishers) => order.DishesCode == dishers.Code) + .LeftJoin((order, place, dishers,depart) => order.DepartmentNo == depart.No) + .WhereIF(!request.Search.IsEmpty(), order => order.Name == request.Search || order.Code == request.Search) + .WhereIF(request.SysDate.HasValue,order=>order.SysDate == request.SysDate) + .OrderBy(order => order.CostDate,SqlSugar.OrderByType.Desc) + .Select((order, place, dishers, depart) => new GetMiniProgramOrderResponse + { + PlaceName = place.Name, + DepartmentName = depart.Name, + DishesName = dishers.Name, + },true) .ToPageListAsync(request); return page; } + public async Task SaveDetailAsync(SaveDetailRequest request) + { + if (!request.Id.HasValue) + { + var entity = request.Adapt(); + await _dbContext.InsertAsync(entity); + } + else + { + var entity = await _dbContext.Queryable() + .Where(x => x.Id == request.Id) + .FirstAsync(); + request.Adapt(entity); + await _dbContext.UpdateAsync(entity); + } + } + public async Task> GetDetailAsync(GetDetailRequest request) { var page = await _dbContext.Queryable() @@ -36,4 +68,98 @@ public class MiniProgramOrderDetailService : IMiniProgramOrderDetailService return page; } + + public async Task OrderAsync(OrderRequest request) + { + //判断时间 + DateTime currentTime = DateTime.Now; + TimeSpan ninePM = new TimeSpan(20, 30, 0); + if (currentTime.TimeOfDay > ninePM) + { + true.ThrowIfTrue("20:30之后无法订餐!"); + } + //判断营业日 + 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}没启用!"); + + // 获取用餐日期 + 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) + { + true.ThrowIfTrue($"菜品:{dishes.Name}已售罄!"); + } + + var gainfo = await _dbContext.Queryable() + .Where(x => x.Code == request.UserCode) + .FirstAsync(); + + //判断是否订过餐 + var flag = await _dbContext.Queryable() + .Where(x => x.SysDate == tomorrow && x.ShiftType == request.ShiftType && x.Code == request.UserCode && x.OrderStatus == MiniProgramOrderStatusEnumType.I) + .AnyAsync(); + flag.ThrowIfTrue($"工号:{request.UserCode} 姓名:{gainfo.Name} 已经定过{tomorrow}的{request.ShiftType.GetDescription()}!"); + + //支付方式 + /* var result = await _tenantApi.GetTenantTreeAsync(); + var tree = result.Data; + var shanxi = tree.Where(x => x.Name == "山西基地").FirstOrDefault(); + var codes = shanxi.Next.Select(x => x.Code).ToList(); + if (!codes.Contains(gainfo.Factory)) + { + if (request.PayType == CanteenPayEnumType.Repair) + { + true.ThrowIfTrue($"非山西,支付方式不能为{request.PayType.GetDescription()}"); + } + }*/ + + //生成订单 + var order = new MiniProgramOrderEntity + { + No = "O" + SnowFlakeHelper.Instance.NextId(), + Name = gainfo.Name, + Code = gainfo.Code, + Werks = gainfo.Werks, + DepartmentNo = gainfo.DepartmentNo, + CostId = gainfo.CostId, + Workplace = gainfo.Workplace, + Factory = gainfo.Factory, + PlaceCode = request.PlaceCode, + ShiftType = request.ShiftType, + DishesCode = request.DishesCode, + Phone = gainfo.Phone, + SysDate = tomorrow, + CostDate = DateTime.Now, + PayType = request.PayType, + OrderStatus = MiniProgramOrderStatusEnumType.I, + OrderType = dishes.Type, + }; + //订单明细 + var detail = new OrderDetailsEntity + { + ThirdNo = order.No, + SysDate = tomorrow, + ShiftType= request.ShiftType, + DishesCode= request.DishesCode, + DishesName = dishes.Name, + Price = dishes.Amount, + Unit = dishes.Unit, + Num = request.DishesNum, + Amount = request.DishesNum * dishes.Amount, + OrderStatus = OrderDetailsStatusEnumType.I, + }; + order.TotalAmount = detail.Amount; + + await _dbContext.InsertAsync(order); + await _dbContext.InsertAsync(detail); + dishes.RestrictedNum-=request.DishesNum; + await _dbContext.UpdateAsync(dishes); + } + } diff --git a/Src/Dlhis.Canteen/appsettings.json b/Src/Dlhis.Canteen/appsettings.json index e8f2179e..75f2d95b 100644 --- a/Src/Dlhis.Canteen/appsettings.json +++ b/Src/Dlhis.Canteen/appsettings.json @@ -8,7 +8,8 @@ "AllowedHosts": "*", "InternalRequest": { "CommonRequestUrl": "http://common", - "BasicRequestUrl": "http://basic" + "BasicRequestUrl": "http://basic", + "SysRequestUrl": "http://sys" }, "FilterOptions": { "EnableApiRequestLog": true diff --git a/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs index 8a007704..13ba9fed 100644 --- a/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs +++ b/Src/Dlhis.Entity/Canteen/Entities/MiniProgramOrderEntity.cs @@ -68,8 +68,8 @@ namespace Dlhis.Entity.Canteen.Entities /// /// 餐次 /// - [SugarColumn(ColumnDescription = "餐次", IsNullable = true)] - public string ShiftType { get; set; } + [SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "餐次")] + public ShiftEnumType ShiftType { get; set; } /// /// 菜品 @@ -107,6 +107,12 @@ namespace Dlhis.Entity.Canteen.Entities [SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "订单状态")] public MiniProgramOrderStatusEnumType OrderStatus { get; set; } + /// + /// 订单类型 + /// + [SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "订单类型")] + public CanteenDishesEnumType OrderType { get; set; } + /// /// 总金额 /// diff --git a/Src/Dlhis.Entity/Canteen/Entities/OrderDetailsEntity.cs b/Src/Dlhis.Entity/Canteen/Entities/OrderDetailsEntity.cs index ecd2ab2a..7ba082e5 100644 --- a/Src/Dlhis.Entity/Canteen/Entities/OrderDetailsEntity.cs +++ b/Src/Dlhis.Entity/Canteen/Entities/OrderDetailsEntity.cs @@ -2,11 +2,6 @@ using Kurisu.SqlSugar; using SqlSugar; using SqlSugar.DbConvert; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace Dlhis.Entity.Canteen.Entities { @@ -23,16 +18,16 @@ namespace Dlhis.Entity.Canteen.Entities public string ThirdNo { get; set; } /// - /// 营业日 + /// 营业日(用餐日期) /// [SugarColumn(ColumnDescription = "营业日")] - public DateOnly BusinessDate { get; set; } + public DateOnly SysDate { get; set; } /// - /// 餐别 + /// 餐次 /// - [SugarColumn(ColumnDescription = "餐别")] - public string ShiftType { get; set; } + [SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert), ColumnDescription = "餐次")] + public ShiftEnumType ShiftType { get; set; } /// /// 菜品编码 @@ -44,7 +39,7 @@ namespace Dlhis.Entity.Canteen.Entities /// 菜品名称 /// [SugarColumn(ColumnDescription = "菜品名称")] - public Guid DishesName { get; set; } + public string DishesName { get; set; } /// /// 单价 diff --git a/Src/Dlhis.Entity/Common/ApkFileEntity.cs b/Src/Dlhis.Entity/Common/ApkFileEntity.cs index 2c15bf57..e32c5bf9 100644 --- a/Src/Dlhis.Entity/Common/ApkFileEntity.cs +++ b/Src/Dlhis.Entity/Common/ApkFileEntity.cs @@ -42,7 +42,7 @@ public class ApkFileEntity : SugarBaseEntity /// 产品代码 /// [SugarColumn(ColumnDescription = "产品代码")] - public string? ProductCode { get; set; } + public string ProductCode { get; set; } }