diff --git a/common.props b/common.props index 704d0796..2906d601 100644 --- a/common.props +++ b/common.props @@ -1,7 +1,7 @@ latest - 2.1.7 + 2.1.8 $(NoWarn);CS1591 true EasyAbp Team diff --git a/plugins/Coupons/src/EasyAbp.EShop.Orders.Plugins.Coupons/EasyAbp/EShop/Orders/Plugins/Coupons/OrderDiscount/CouponOrderDiscountProvider.cs b/plugins/Coupons/src/EasyAbp.EShop.Orders.Plugins.Coupons/EasyAbp/EShop/Orders/Plugins/Coupons/OrderDiscount/CouponOrderDiscountProvider.cs index f89064e1..bc016eb7 100644 --- a/plugins/Coupons/src/EasyAbp.EShop.Orders.Plugins.Coupons/EasyAbp/EShop/Orders/Plugins/Coupons/OrderDiscount/CouponOrderDiscountProvider.cs +++ b/plugins/Coupons/src/EasyAbp.EShop.Orders.Plugins.Coupons/EasyAbp/EShop/Orders/Plugins/Coupons/OrderDiscount/CouponOrderDiscountProvider.cs @@ -45,7 +45,7 @@ namespace EasyAbp.EShop.Orders.Plugins.Coupons.OrderDiscount var coupon = await _couponLookupService.FindByIdAsync(couponId); - if (coupon == null || coupon.ExpirationTime < now) + if (coupon == null || coupon.ExpirationTime.HasValue && coupon.ExpirationTime.Value < now) { throw new CouponNotFoundOrHasExpiredException(); } diff --git a/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.Application/EasyAbp/EShop/Plugins/Coupons/Coupons/CouponAppService.cs b/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.Application/EasyAbp/EShop/Plugins/Coupons/Coupons/CouponAppService.cs index 564e85f6..665197a6 100644 --- a/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.Application/EasyAbp/EShop/Plugins/Coupons/Coupons/CouponAppService.cs +++ b/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.Application/EasyAbp/EShop/Plugins/Coupons/Coupons/CouponAppService.cs @@ -40,7 +40,7 @@ namespace EasyAbp.EShop.Plugins.Coupons.Coupons return (input.AvailableOnly ? _repository.GetAvailableCouponQueryable(Clock) : _repository.AsQueryable()) .WhereIf(input.UserId.HasValue, x => x.UserId == input.UserId.Value) .WhereIf(!input.AvailableOnly && !input.IncludesUsed, x => !x.UsedTime.HasValue) - .WhereIf(!input.AvailableOnly && !input.IncludesExpired, x => x.ExpirationTime > Clock.Now); + .WhereIf(!input.AvailableOnly && !input.IncludesExpired, x => !x.ExpirationTime.HasValue || x.ExpirationTime.Value > Clock.Now); } protected virtual CouponDto FillCouponTemplateData(CouponDto couponDto, CouponTemplate couponTemplate) diff --git a/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.EntityFrameworkCore/EasyAbp/EShop/Plugins/Coupons/Coupons/CouponRepository.cs b/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.EntityFrameworkCore/EasyAbp/EShop/Plugins/Coupons/Coupons/CouponRepository.cs index 7b0c7cae..49f66146 100644 --- a/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.EntityFrameworkCore/EasyAbp/EShop/Plugins/Coupons/Coupons/CouponRepository.cs +++ b/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.EntityFrameworkCore/EasyAbp/EShop/Plugins/Coupons/Coupons/CouponRepository.cs @@ -35,9 +35,9 @@ namespace EasyAbp.EShop.Plugins.Coupons.Coupons { var clock = ServiceProvider.GetRequiredService(); - var notExpiredCouponQuantity = - await (await GetDbSetAsync()).CountAsync(x => x.UserId == entity.UserId && x.ExpirationTime > clock.Now, - cancellationToken); + var notExpiredCouponQuantity = await (await GetDbSetAsync()).CountAsync( + x => x.UserId == entity.UserId && (!x.ExpirationTime.HasValue || x.ExpirationTime.Value > clock.Now), + cancellationToken); if (notExpiredCouponQuantity >= CouponsConsts.MaxNotExpiredCouponQuantityPerUser) {