diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs index 67ed5c23..f8f80e15 100644 --- a/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs +++ b/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs @@ -22,9 +22,9 @@ namespace Dlhis.Canteen.Order.Services.Implements; public class OrderService : BaseOrderService, IOrderService { - public OrderService(ICanteenSettingService canteenSettingService, + public OrderService(ICanteenSettingService canteenSettingService, IDbContext dbContext, - ICurrentUser currentUser, + ICurrentUser currentUser, IDevicePermissionApi devicePermissionApi, ILogger logger) : base(canteenSettingService, dbContext, currentUser, devicePermissionApi, logger) @@ -366,6 +366,7 @@ public class OrderService : BaseOrderService, IOrderService var balanceRecords = await DbContext.Queryable() .Where(x => x.UserNo == order.UserNo) + .Where(x=>x.Type == BalanceRecordTypeEnumType.Out) .Where(x => x.CreateTime >= beginOfDay && x.CreateTime <= endOfDay) //今天消费记录 .ToListAsync(); @@ -376,7 +377,9 @@ public class OrderService : BaseOrderService, IOrderService .Where(x => x.Catalog == CanteenBusinessPlaceCatalogEnumType.Supermarket) .Select(x => x.Code).ToListAsync(); - var cost = balanceRecords.Where(x => businessPlaceCodes.Contains(x.BusinessPlaceCode.Value)).Sum(x => x.Amount); + var cost = balanceRecords.Where(x => x.BusinessPlaceCode.HasValue) + .Where(x => businessPlaceCodes.Contains(x.BusinessPlaceCode.Value)) + .Sum(x => x.Amount); if (cost + Math.Abs(order.Amount) > dayMarketCostMax) { throw new UserFriendlyException($"超出当天超市消费限制({dayMarketCostMax}),无法消费");