Browse Source

FlashSaleResultAppService use `MultiStoreCrudAppService` replace `CrudAppService`

pull/184/head
Jadyn 4 years ago
parent
commit
e2b43f80a5
  1. 3
      plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application.Contracts/EasyAbp/EShop/Plugins/FlashSales/FlashSaleResults/Dtos/FlashSaleResultDto.cs
  2. 1
      plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application.Contracts/EasyAbp/EShop/Plugins/FlashSales/Permissions/FlashSalesPermissionDefinitionProvider.cs
  3. 1
      plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application.Contracts/EasyAbp/EShop/Plugins/FlashSales/Permissions/FlashSalesPermissions.cs
  4. 8
      plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/FlashSalePlanAppService.cs
  5. 25
      plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSaleResults/FlashSaleResultAppService.cs
  6. 3
      plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Domain/EasyAbp/EShop/Plugins/FlashSales/FlashSaleResults/FlashSaleResult.cs

3
plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application.Contracts/EasyAbp/EShop/Plugins/FlashSales/FlashSaleResults/Dtos/FlashSaleResultDto.cs

@ -1,9 +1,10 @@
using System;
using EasyAbp.EShop.Stores.Stores;
using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Plugins.FlashSales.FlashSaleResults.Dtos;
public class FlashSaleResultDto : ExtensibleFullAuditedEntityDto<Guid>
public class FlashSaleResultDto : ExtensibleFullAuditedEntityDto<Guid>, IMultiStore
{
public virtual Guid StoreId { get; set; }

1
plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application.Contracts/EasyAbp/EShop/Plugins/FlashSales/Permissions/FlashSalesPermissionDefinitionProvider.cs

@ -19,6 +19,7 @@ public class FlashSalesPermissionDefinitionProvider : PermissionDefinitionProvid
var flashSaleResultPermission = myGroup.AddPermission(FlashSalesPermissions.FlashSaleResult.Default, L("Permission:FlashSaleResult"));
flashSaleResultPermission.AddChild(FlashSalesPermissions.FlashSaleResult.Manage, L("Permission:Manage"));
flashSaleResultPermission.AddChild(FlashSalesPermissions.FlashSaleResult.CrossStore, L("Permission:CrossStore"));
}
private static LocalizableString L(string name)

1
plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application.Contracts/EasyAbp/EShop/Plugins/FlashSales/Permissions/FlashSalesPermissions.cs

@ -25,5 +25,6 @@ public class FlashSalesPermissions
{
public const string Default = GroupName + ".FlashSaleResult";
public const string Manage = Default + ".Manage";
public const string CrossStore = Default + ".CrossStore";
}
}

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

@ -11,6 +11,7 @@ using EasyAbp.EShop.Stores.Stores;
using Microsoft.AspNetCore.Authorization;
using Microsoft.Extensions.Caching.Distributed;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Caching;
using Volo.Abp.Data;
using Volo.Abp.DistributedLocking;
@ -84,6 +85,13 @@ public class FlashSalePlanAppService :
return await MapToGetOutputDtoAsync(flashSalePlan);
}
public override async Task<PagedResultDto<FlashSalePlanDto>> GetListAsync(FlashSalePlanGetListInput input)
{
await CheckMultiStorePolicyAsync(input.StoreId, GetListPolicyName);
return await base.GetListAsync(input);
}
public override async Task<FlashSalePlanDto> CreateAsync(FlashSalePlanCreateDto input)
{
await CheckMultiStorePolicyAsync(input.StoreId, CreatePolicyName);

25
plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSaleResults/FlashSaleResultAppService.cs

@ -4,14 +4,16 @@ using System.Threading.Tasks;
using EasyAbp.EShop.Plugins.FlashSales.FlashSaleResults;
using EasyAbp.EShop.Plugins.FlashSales.FlashSaleResults.Dtos;
using EasyAbp.EShop.Plugins.FlashSales.Permissions;
using Volo.Abp.Application.Services;
using EasyAbp.EShop.Stores.Stores;
using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Plugins.FlashSales.FlashSalesResults;
public class FlashSaleResultAppService :
ReadOnlyAppService<FlashSaleResult, FlashSaleResultDto, Guid, FlashSaleResultGetListInput>,
MultiStoreCrudAppService<FlashSaleResult, FlashSaleResultDto, Guid, FlashSaleResultGetListInput>,
IFlashSaleResultAppService
{
protected override string CrossStorePolicyName { get; set; } = FlashSalesPermissions.FlashSaleResult.CrossStore;
protected override string GetPolicyName { get; set; }
protected override string GetListPolicyName { get; set; }
@ -23,23 +25,30 @@ public class FlashSaleResultAppService :
public override async Task<FlashSaleResultDto> GetAsync(Guid id)
{
await CheckGetPolicyAsync();
var flashSalesResult = await GetEntityByIdAsync(id);
var flashSalesPlan = await GetEntityByIdAsync(id);
await CheckMultiStorePolicyAsync(flashSalesResult.StoreId, GetPolicyName);
if (flashSalesPlan.UserId != CurrentUser.Id)
if (flashSalesResult.UserId != CurrentUser.Id)
{
await CheckPolicyAsync(FlashSalesPermissions.FlashSaleResult.Manage);
await CheckMultiStorePolicyAsync(flashSalesResult.StoreId, FlashSalesPermissions.FlashSaleResult.Manage);
}
return await MapToGetOutputDtoAsync(flashSalesPlan);
return await MapToGetOutputDtoAsync(flashSalesResult);
}
public override async Task<PagedResultDto<FlashSaleResultDto>> GetListAsync(FlashSaleResultGetListInput input)
{
await CheckMultiStorePolicyAsync(input.StoreId, GetListPolicyName);
return await base.GetListAsync(input);
}
protected override async Task<IQueryable<FlashSaleResult>> CreateFilteredQueryAsync(FlashSaleResultGetListInput input)
{
if (input.UserId != CurrentUser.Id)
{
await CheckPolicyAsync(FlashSalesPermissions.FlashSaleResult.Manage);
await CheckMultiStorePolicyAsync(input.StoreId, FlashSalesPermissions.FlashSaleResult.Manage);
}
return (await base.CreateFilteredQueryAsync(input))

3
plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Domain/EasyAbp/EShop/Plugins/FlashSales/FlashSaleResults/FlashSaleResult.cs

@ -1,11 +1,12 @@
using System;
using EasyAbp.EShop.Stores.Stores;
using Volo.Abp;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;
namespace EasyAbp.EShop.Plugins.FlashSales.FlashSaleResults;
public class FlashSaleResult : FullAuditedAggregateRoot<Guid>, IMultiTenant
public class FlashSaleResult : FullAuditedAggregateRoot<Guid>, IMultiTenant, IMultiStore
{
public virtual Guid? TenantId { get; protected set; }

Loading…
Cancel
Save