From 7b5bc0fe3e580a3a135e9867a39ed5f044c24d6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A9=99=E5=AD=90?= <454313500@qq.com> Date: Sun, 19 Jan 2025 13:14:08 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IServices/IDiscussService.cs | 1 - .../Services/Forum/ArticleService.cs | 2 +- .../Services/Forum/CommentService.cs | 2 +- .../Services/Forum/DiscussService.cs | 34 +------------------ .../Managers/ForumManager.cs | 34 +++++++++++++++++++ 5 files changed, 37 insertions(+), 36 deletions(-) diff --git a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application.Contracts/IServices/IDiscussService.cs b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application.Contracts/IServices/IDiscussService.cs index fec996fd..872de9b1 100644 --- a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application.Contracts/IServices/IDiscussService.cs +++ b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application.Contracts/IServices/IDiscussService.cs @@ -8,6 +8,5 @@ namespace Yi.Framework.Bbs.Application.Contracts.IServices /// public interface IDiscussService : IYiCrudAppService { - Task VerifyDiscussPermissionAsync(Guid discussId); } } diff --git a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Forum/ArticleService.cs b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Forum/ArticleService.cs index b4ab322f..fbb798fe 100644 --- a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Forum/ArticleService.cs +++ b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Forum/ArticleService.cs @@ -72,7 +72,7 @@ namespace Yi.Framework.Bbs.Application.Services.Forum [Route("article/all/discuss-id/{discussId}")] public async Task> GetAllAsync([FromRoute] Guid discussId) { - await _discussService.VerifyDiscussPermissionAsync(discussId); + await _forumManager.VerifyDiscussPermissionAsync(discussId,CurrentUser.Id); var entities = await _articleRepository.GetTreeAsync(x => x.DiscussId == discussId); diff --git a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Forum/CommentService.cs b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Forum/CommentService.cs index 681e9288..375ae25f 100644 --- a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Forum/CommentService.cs +++ b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Forum/CommentService.cs @@ -50,7 +50,7 @@ namespace Yi.Framework.Bbs.Application.Services.Forum /// public async Task> GetDiscussIdAsync([FromRoute] Guid discussId, [FromQuery] CommentGetListInputVo input) { - await _discussService.VerifyDiscussPermissionAsync(discussId); + await _forumManager.VerifyDiscussPermissionAsync(discussId,CurrentUser.Id); var entities = await _repository._DbQueryable.WhereIF(!string.IsNullOrEmpty(input.Content), x => x.Content.Contains(input.Content)) .Where(x => x.DiscussId == discussId) diff --git a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Forum/DiscussService.cs b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Forum/DiscussService.cs index ea76d282..e0c8917e 100644 --- a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Forum/DiscussService.cs +++ b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Forum/DiscussService.cs @@ -109,7 +109,7 @@ namespace Yi.Framework.Bbs.Application.Services.Forum item.IsAgree = agreeCreatorList.Contains(CurrentUser.Id); } - await VerifyDiscussPermissionAsync(item.Id); + await _forumManager.VerifyDiscussPermissionAsync(item.Id,CurrentUser.Id); await _localEventBus.PublishAsync(new SeeDiscussEventArgs { DiscussId = item.Id, OldSeeNum = item.SeeNum }); return item; @@ -260,37 +260,5 @@ namespace Yi.Framework.Bbs.Application.Services.Forum var entity = await _forumManager.CreateDiscussAsync(await MapToEntityAsync(input)); return await MapToGetOutputDtoAsync(entity); } - - /// - /// 校验主题查询权限 - /// - /// - /// - /// - public async Task VerifyDiscussPermissionAsync(Guid discussId) - { - var discuss = await _forumManager._discussRepository.GetFirstAsync(x => x.Id == discussId); - if (discuss is null) - { - throw new UserFriendlyException(DiscussConst.No_Exist); - } - - if (discuss.PermissionType == DiscussPermissionTypeEnum.Oneself) - { - if (discuss.CreatorId != CurrentUser.Id) - { - throw new UserFriendlyException(DiscussConst.Privacy); - } - } - - if (discuss.PermissionType == DiscussPermissionTypeEnum.User) - { - if (discuss.CreatorId != CurrentUser.Id && - !discuss.PermissionUserIds.Contains(CurrentUser.Id ?? Guid.Empty)) - { - throw new UserFriendlyException(DiscussConst.Privacy); - } - } - } } } \ No newline at end of file diff --git a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Domain/Managers/ForumManager.cs b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Domain/Managers/ForumManager.cs index 52cdef2a..e462a4ae 100644 --- a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Domain/Managers/ForumManager.cs +++ b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Domain/Managers/ForumManager.cs @@ -1,8 +1,10 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Volo.Abp.Domain.Services; +using Volo.Abp.Users; using Yi.Framework.Bbs.Domain.Entities.Forum; using Yi.Framework.Bbs.Domain.Managers.ArticleImport; +using Yi.Framework.Bbs.Domain.Shared.Consts; using Yi.Framework.Bbs.Domain.Shared.Enums; using Yi.Framework.Bbs.Domain.Shared.Model; using Yi.Framework.SqlSugarCore.Abstractions; @@ -44,6 +46,38 @@ namespace Yi.Framework.Bbs.Domain.Managers return await _commentRepository.InsertReturnEntityAsync(entity); } + /// + /// 校验主题查询权限 + /// + /// + /// + /// + public async Task VerifyDiscussPermissionAsync(Guid discussId,Guid? userId) + { + var discuss = await _discussRepository.GetFirstAsync(x => x.Id == discussId); + if (discuss is null) + { + throw new UserFriendlyException(DiscussConst.No_Exist); + } + + if (discuss.PermissionType == DiscussPermissionTypeEnum.Oneself) + { + if (discuss.CreatorId != userId) + { + throw new UserFriendlyException(DiscussConst.Privacy); + } + } + + if (discuss.PermissionType == DiscussPermissionTypeEnum.User) + { + if (discuss.CreatorId !=userId && + !discuss.PermissionUserIds.Contains(userId?? Guid.Empty)) + { + throw new UserFriendlyException(DiscussConst.Privacy); + } + } + } + /// /// 导入文章 ///