diff --git a/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/FlashSalePlanAppService.cs b/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/FlashSalePlanAppService.cs index 9b3655e3..ba76dc98 100644 --- a/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/FlashSalePlanAppService.cs +++ b/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/FlashSalePlanAppService.cs @@ -278,10 +278,10 @@ public class FlashSalePlanAppService : ); }); - await SetUserFlashSaleResultCacheAsync(plan.Id, result.Id); - var createFlashSaleOrderEto = await PrepareCreateFlashSaleOrderEtoAsync(plan, result.Id, input, userId, now, preOrderCache.HashToken); + await SetUserFlashSaleResultCacheAsync(plan.Id, result.Id); + await DistributedEventBus.PublishAsync(createFlashSaleOrderEto); return new FlashSaleOrderResultDto() { IsSuccess = true, FlashSaleResultId = result.Id }; @@ -348,7 +348,10 @@ public class FlashSalePlanAppService : protected virtual async Task SetUserFlashSaleResultCacheAsync(Guid planId, Guid resultId) { var userFlashSaleResultCacheKey = await GetUserFlashSaleResultCacheKeyAsync(planId); - await DistributedCache.SetStringAsync(userFlashSaleResultCacheKey, resultId.ToString()); + await DistributedCache.SetStringAsync(userFlashSaleResultCacheKey, resultId.ToString(), new DistributedCacheEntryOptions() + { + AbsoluteExpiration = DateTimeOffset.Now.Add(Options.UserFlashSaleResultCacheExpires) + }); } #endregion @@ -423,9 +426,12 @@ public class FlashSalePlanAppService : HashToken = hashToken }; - foreach (var item in input.ExtraProperties) + if (input.ExtraProperties != null) { - eto.ExtraProperties.Add(item.Key, item.Value); + foreach (var item in input.ExtraProperties) + { + eto.ExtraProperties.Add(item.Key, item.Value); + } } return Task.FromResult(eto); diff --git a/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/FlashSalesOptions.cs b/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/FlashSalesOptions.cs index 45d94a88..e4071710 100644 --- a/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/FlashSalesOptions.cs +++ b/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/FlashSalesOptions.cs @@ -8,4 +8,9 @@ public class FlashSalesOptions /// Default: 3 minutes /// public TimeSpan PreOrderExpires { get; set; } = TimeSpan.FromMinutes(3); + + /// + /// Default: 5 minutes + /// + public TimeSpan UserFlashSaleResultCacheExpires { get; set; } = TimeSpan.FromMinutes(5); }