From 2378425df0cd26fbca49011ba03dc115445b505a Mon Sep 17 00:00:00 2001 From: gdlcf88 Date: Mon, 10 Apr 2023 22:05:28 +0800 Subject: [PATCH] Fix the bug of `GetInventoryDataAsync` returns null --- common.props | 2 +- .../DefaultProductInventoryProvider.cs | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/common.props b/common.props index 3f14f88c..ba9bf4b3 100644 --- a/common.props +++ b/common.props @@ -1,7 +1,7 @@ latest - 3.6.0 + 3.6.1 $(NoWarn);CS1591 true EasyAbp Team diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/DefaultProductInventoryProvider.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/DefaultProductInventoryProvider.cs index 82b9c1a6..dac9063f 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/DefaultProductInventoryProvider.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/DefaultProductInventoryProvider.cs @@ -56,7 +56,8 @@ namespace EasyAbp.EShop.Products.Products [UnitOfWork] public virtual async Task GetInventoryDataAsync(InventoryQueryModel model) { - return await _productInventoryRepository.GetInventoryDataAsync(model.ProductSkuId); + return await _productInventoryRepository.GetInventoryDataAsync(model.ProductSkuId) ?? + new InventoryDataModel(); } [UnitOfWork] @@ -78,11 +79,13 @@ namespace EasyAbp.EShop.Products.Products public virtual async Task TryIncreaseInventoryAsync(InventoryQueryModel model, int quantity, bool decreaseSold, bool isFlashSale = false) { - await using var handle = await _distributedLock.TryAcquireAsync(await GetLockKeyAsync(model), TimeSpan.FromSeconds(30)); + await using var handle = + await _distributedLock.TryAcquireAsync(await GetLockKeyAsync(model), TimeSpan.FromSeconds(30)); if (handle == null) { - _logger.LogWarning("TryIncreaseInventory failed to acquire lock for product inventory: {TenantId},{ProductId},{ProductSkuId}", + _logger.LogWarning( + "TryIncreaseInventory failed to acquire lock for product inventory: {TenantId},{ProductId},{ProductSkuId}", model.TenantId, model.ProductId, model.ProductSkuId); return false; } @@ -96,11 +99,13 @@ namespace EasyAbp.EShop.Products.Products public virtual async Task TryReduceInventoryAsync(InventoryQueryModel model, int quantity, bool increaseSold, bool isFlashSale = false) { - await using var handle = await _distributedLock.TryAcquireAsync(await GetLockKeyAsync(model), TimeSpan.FromSeconds(30)); + await using var handle = + await _distributedLock.TryAcquireAsync(await GetLockKeyAsync(model), TimeSpan.FromSeconds(30)); if (handle == null) { - _logger.LogWarning("TryReduceInventory failed to acquire lock for product inventory: {TenantId},{ProductId},{ProductSkuId}", + _logger.LogWarning( + "TryReduceInventory failed to acquire lock for product inventory: {TenantId},{ProductId},{ProductSkuId}", model.TenantId, model.ProductId, model.ProductSkuId); return false; } @@ -195,7 +200,8 @@ namespace EasyAbp.EShop.Products.Products protected virtual Task GetLockKeyAsync(InventoryQueryModel model) { - return Task.FromResult(string.Format(DefaultProductInventoryLockKeyFormat, model.TenantId, model.ProductId, model.ProductSkuId)); + return Task.FromResult(string.Format(DefaultProductInventoryLockKeyFormat, model.TenantId, model.ProductId, + model.ProductSkuId)); } } } \ No newline at end of file