diff --git a/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application.Contracts/EasyAbp/EShop/Plugins/FlashSales/FlashSaleResults/Dtos/FlashSaleResultDto.cs b/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application.Contracts/EasyAbp/EShop/Plugins/FlashSales/FlashSaleResults/Dtos/FlashSaleResultDto.cs index db177a87..1df7365f 100644 --- a/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application.Contracts/EasyAbp/EShop/Plugins/FlashSales/FlashSaleResults/Dtos/FlashSaleResultDto.cs +++ b/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 +public class FlashSaleResultDto : ExtensibleFullAuditedEntityDto, IMultiStore { public virtual Guid StoreId { get; set; } diff --git a/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application.Contracts/EasyAbp/EShop/Plugins/FlashSales/Permissions/FlashSalesPermissionDefinitionProvider.cs b/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application.Contracts/EasyAbp/EShop/Plugins/FlashSales/Permissions/FlashSalesPermissionDefinitionProvider.cs index fa604608..4a2a7d28 100644 --- a/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application.Contracts/EasyAbp/EShop/Plugins/FlashSales/Permissions/FlashSalesPermissionDefinitionProvider.cs +++ b/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) diff --git a/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application.Contracts/EasyAbp/EShop/Plugins/FlashSales/Permissions/FlashSalesPermissions.cs b/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application.Contracts/EasyAbp/EShop/Plugins/FlashSales/Permissions/FlashSalesPermissions.cs index 4259a5f3..b03f5b90 100644 --- a/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application.Contracts/EasyAbp/EShop/Plugins/FlashSales/Permissions/FlashSalesPermissions.cs +++ b/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"; } } 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 8d92fa8e..ee092aaf 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 @@ -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> GetListAsync(FlashSalePlanGetListInput input) + { + await CheckMultiStorePolicyAsync(input.StoreId, GetListPolicyName); + + return await base.GetListAsync(input); + } + public override async Task CreateAsync(FlashSalePlanCreateDto input) { await CheckMultiStorePolicyAsync(input.StoreId, CreatePolicyName); diff --git a/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSaleResults/FlashSaleResultAppService.cs b/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSaleResults/FlashSaleResultAppService.cs index a710c0f4..ea6e6470 100644 --- a/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSaleResults/FlashSaleResultAppService.cs +++ b/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, + MultiStoreCrudAppService, 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 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> GetListAsync(FlashSaleResultGetListInput input) + { + await CheckMultiStorePolicyAsync(input.StoreId, GetListPolicyName); + + return await base.GetListAsync(input); } protected override async Task> 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)) diff --git a/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Domain/EasyAbp/EShop/Plugins/FlashSales/FlashSaleResults/FlashSaleResult.cs b/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Domain/EasyAbp/EShop/Plugins/FlashSales/FlashSaleResults/FlashSaleResult.cs index 48f2cdfe..3d90d8ff 100644 --- a/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Domain/EasyAbp/EShop/Plugins/FlashSales/FlashSaleResults/FlashSaleResult.cs +++ b/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, IMultiTenant +public class FlashSaleResult : FullAuditedAggregateRoot, IMultiTenant, IMultiStore { public virtual Guid? TenantId { get; protected set; }