From 935f5aa5297d0ba6db0d602029310188119d92dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A9=99=E5=AD=90?= <454313500@qq.com> Date: Fri, 22 Dec 2023 23:32:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E7=BD=AE=E9=A1=B6?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/DiscussService.cs | 42 +++++++++++++++---- .../Entities/DiscussTopEntity.cs | 3 -- 2 files changed, 34 insertions(+), 11 deletions(-) diff --git a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/DiscussService.cs b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/DiscussService.cs index f4107307..0aa7d6d9 100644 --- a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/DiscussService.cs +++ b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/DiscussService.cs @@ -105,15 +105,16 @@ namespace Yi.Framework.Bbs.Application.Services .OrderByIF(input.Type == QueryDiscussTypeEnum.Host, discuss => discuss.SeeNum, OrderByType.Desc) .OrderByIF(input.Type == QueryDiscussTypeEnum.Suggest, discuss => discuss.AgreeNum, OrderByType.Desc) - .Select((discuss, user,info) => new DiscussGetListOutputDto + .Select((discuss, user, info) => new DiscussGetListOutputDto { Id = discuss.Id, IsAgree = SqlFunc.Subqueryable().WhereIF(CurrentUser.Id != null, x => x.CreatorId == CurrentUser.Id && x.DiscussId == discuss.Id).Any(), - User = new BbsUserGetListOutputDto() { - Id = user.Id, - UserName = user.UserName, - Nick = user.Nick, + User = new BbsUserGetListOutputDto() + { + Id = user.Id, + UserName = user.UserName, + Nick = user.Nick, Icon = user.Icon, Level = info.Level, UserLimit = info.UserLimit @@ -133,9 +134,34 @@ namespace Yi.Framework.Bbs.Application.Services /// public async Task> GetListTopAsync() { - var entities = await _discussTopEntityRepository._DbQueryable.Includes(x => x.Discuss).OrderByDescending(x => x.OrderNum).ToListAsync(); - - var output = await MapToGetListOutputDtosAsync(entities.Select(x => x.Discuss).ToList()); + var output = await _discussTopEntityRepository._DbQueryable.LeftJoin((top, discuss) => top.DiscussId == discuss.Id) + .LeftJoin((top, discuss, user) => discuss.CreatorId == user.Id) + .LeftJoin((top, discuss, user, info) => user.Id == info.UserId) + .OrderByDescending(top => top.OrderNum) + .Select((top, discuss, user, info) => new DiscussGetListOutputDto + { + Id = discuss.Id, + User = new BbsUserGetListOutputDto + { + Id = user.Id, + Name=user.Name, + Sex = user.Sex, + State = user.State, + Address = user.Address, + Age = user.Age, + CreationTime = user.CreationTime, + + Level=info.Level, + Introduction = user.Introduction, + Icon= user.Icon, + Nick= user.Nick, + UserName=user.UserName, + Remark= user.Remark, + UserLimit=info.UserLimit + + } + }, true) + .ToListAsync(); return output; } diff --git a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Domain/Entities/DiscussTopEntity.cs b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Domain/Entities/DiscussTopEntity.cs index cefcf71d..57f22819 100644 --- a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Domain/Entities/DiscussTopEntity.cs +++ b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Domain/Entities/DiscussTopEntity.cs @@ -22,9 +22,6 @@ namespace Yi.Framework.Bbs.Domain.Entities public Guid DiscussId { get; set; } - [Navigate(NavigateType.OneToOne, nameof(DiscussId))] - public DiscussEntity Discuss { get; set; } - public DateTime? LastModificationTime { get; set; } } }