From e88caccaa507734ce5f8a0981f829016793be97a Mon Sep 17 00:00:00 2001 From: liguoyang Date: Sun, 7 Apr 2024 17:55:39 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E8=B6=85=E5=B8=82=E9=99=90=E9=A2=9D?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Order/Services/Implements/OrderService.cs | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) 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}),无法消费"); + } } }