Browse Source

Return `CreateOrderDto`

pull/184/head
Jadyn 4 years ago
parent
commit
4b30e6c093
  1. 11
      plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application.Contracts/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/Dtos/CreateOrderDto.cs
  2. 2
      plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application.Contracts/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/IFlashSalePlanAppService.cs
  3. 6
      plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/FlashSalePlanAppService.cs
  4. 2
      plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.HttpApi/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/FlashSalePlanController.cs
  5. 7
      plugins/FlashSales/test/EasyAbp.EShop.Plugins.FlashSales.Application.Tests/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/FlashSalePlanAppServiceTests.cs

11
plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application.Contracts/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/Dtos/CreateOrderDto.cs

@ -0,0 +1,11 @@
using System;
using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Plugins.FlashSales.FlashSalePlans.Dtos;
public class CreateOrderDto : ExtensibleEntityDto
{
public bool IsSuccess { get; set; }
public Guid? FlashSaleResultId { get; set; }
}

2
plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application.Contracts/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/IFlashSalePlanAppService.cs

@ -15,5 +15,5 @@ public interface IFlashSalePlanAppService :
{
Task<FlashSalePlanPreOrderDto> PreOrderAsync(Guid id);
Task<bool> OrderAsync(Guid id, CreateOrderInput input);
Task<CreateOrderDto> OrderAsync(Guid id, CreateOrderInput input);
}

6
plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/FlashSalePlanAppService.cs

@ -216,7 +216,7 @@ public class FlashSalePlanAppService :
return new FlashSalePlanPreOrderDto { ExpiresTime = Clock.Normalize(expiresTime.LocalDateTime), ExpiresInSeconds = Options.PreOrderExpires.TotalSeconds };
}
public virtual async Task<bool> OrderAsync(Guid id, CreateOrderInput input)
public virtual async Task<CreateOrderDto> OrderAsync(Guid id, CreateOrderInput input)
{
var preOrderCache = await GetPreOrderCacheAsync(id);
if (preOrderCache == null)
@ -259,7 +259,7 @@ public class FlashSalePlanAppService :
plan.TenantId, preOrderCache.InventoryProviderName,
plan.StoreId, plan.ProductId, plan.ProductSkuId, 1, true))
{
return false;
return new CreateOrderDto() { IsSuccess = false };
}
var result = await CreatePendingFlashSaleResultAsync(plan, userId, async (existsResultId) =>
@ -278,7 +278,7 @@ public class FlashSalePlanAppService :
await DistributedEventBus.PublishAsync(createFlashSaleOrderEto);
return true;
return new CreateOrderDto() { IsSuccess = true, FlashSaleResultId = result.Id };
}
#region PreOrderCache

2
plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.HttpApi/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/FlashSalePlanController.cs

@ -58,7 +58,7 @@ public class FlashSalePlanController :
}
[HttpPost("{id}/order")]
public virtual Task<bool> OrderAsync(Guid id, CreateOrderInput input)
public virtual Task<CreateOrderDto> OrderAsync(Guid id, CreateOrderInput input)
{
return Service.OrderAsync(id, input);
}

7
plugins/FlashSales/test/EasyAbp.EShop.Plugins.FlashSales.Application.Tests/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/FlashSalePlanAppServiceTests.cs

@ -364,7 +364,8 @@ public class FlashSalePlanAppServiceTests : FlashSalesApplicationTestBase
var isSucess = await AppService.OrderAsync(plan.Id, createOrderInput);
isSucess.ShouldBe(true);
isSucess.IsSuccess.ShouldBe(true);
isSucess.FlashSaleResultId.ShouldNotBeNull();
await DistributedEventBus.Received().PublishAsync(Arg.Is<CreateFlashSaleOrderEto>(eto =>
eto.TenantId == plan.TenantId &&
eto.StoreId == plan.StoreId &&
@ -463,7 +464,9 @@ public class FlashSalePlanAppServiceTests : FlashSalesApplicationTestBase
FakeFlashSaleInventoryManager.ShouldReduceSuccess = false;
(await AppService.OrderAsync(plan.Id, createOrderInput)).ShouldBe(false);
var createOrderDto = await AppService.OrderAsync(plan.Id, createOrderInput);
createOrderDto.IsSuccess.ShouldBe(false);
createOrderDto.FlashSaleResultId.ShouldBeNull();
}
[Fact]

Loading…
Cancel
Save