Browse Source

Coupons should not be expired if their ExpirationTime is null.

pull/119/head 2.1.8
gdlcf88 5 years ago
parent
commit
a92daf8d55
  1. 2
      common.props
  2. 2
      plugins/Coupons/src/EasyAbp.EShop.Orders.Plugins.Coupons/EasyAbp/EShop/Orders/Plugins/Coupons/OrderDiscount/CouponOrderDiscountProvider.cs
  3. 2
      plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.Application/EasyAbp/EShop/Plugins/Coupons/Coupons/CouponAppService.cs
  4. 6
      plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.EntityFrameworkCore/EasyAbp/EShop/Plugins/Coupons/Coupons/CouponRepository.cs

2
common.props

@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
<Version>2.1.7</Version>
<Version>2.1.8</Version>
<NoWarn>$(NoWarn);CS1591</NoWarn>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>EasyAbp Team</Authors>

2
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();
}

2
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)

6
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<IClock>();
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)
{

Loading…
Cancel
Save