diff --git a/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs b/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs index 2084043f..e7f1aceb 100644 --- a/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs +++ b/Src/Dlhis.Canteen/Order/Services/Implements/OrderService.cs @@ -370,16 +370,23 @@ public class OrderService : BaseOrderService, IOrderService var dayMarketCostMax = await GetSettingAsync(CanteenSettingItemEnumType.DayMarketCostMax); if (dayMarketCostMax != default) { - var businessPlaceCodes = await DbContext.Queryable() + if (order.BusinessPlaceCode.HasValue && await DbContext.Queryable() .Where(x => x.Catalog == CanteenBusinessPlaceCatalogEnumType.Supermarket) - .Select(x => x.Code).ToListAsync(); - - 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) + .Where(x => x.Code == order.BusinessPlaceCode.Value) + .AnyAsync()) { - throw new UserFriendlyException($"超出当天超市消费限制({dayMarketCostMax}),无法消费"); + var businessPlaceCodes = await DbContext.Queryable() + .Where(x => x.Catalog == CanteenBusinessPlaceCatalogEnumType.Supermarket) + .Select(x => x.Code).ToListAsync(); + + 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}),无法消费"); + } } }