diff --git a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Analyses/BbsDisucssAnalyseService.cs b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Analyses/BbsDisucssAnalyseService.cs
new file mode 100644
index 00000000..b6ee519d
--- /dev/null
+++ b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Analyses/BbsDisucssAnalyseService.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Mapster;
+using Microsoft.AspNetCore.Mvc;
+using SqlSugar;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Application.Services;
+using Yi.Framework.Bbs.Application.Contracts.Dtos.BbsUser;
+using Yi.Framework.Bbs.Domain.Managers;
+using Yi.Framework.Rbac.Domain.Shared.Consts;
+
+namespace Yi.Framework.Bbs.Application.Services.Analyses
+{
+ public class BbsUserAnalyseService : ApplicationService, IApplicationService
+ {
+ private BbsUserManager _bbsUserManager;
+ public BbsUserAnalyseService(BbsUserManager bbsUserManager)
+ {
+ _bbsUserManager = bbsUserManager;
+ }
+
+ ///
+ /// 推荐好友,随机返回好友列表
+ ///
+ ///
+ [HttpGet("analyse/bbs-user/random")]
+ public async Task> GetRandomUserAsync([FromQuery] PagedResultRequestDto input)
+ {
+ var randUserIds = await _bbsUserManager._userRepository._DbQueryable
+ .Where(x => x.UserName != UserConst.Admin)
+ .OrderBy(x => SqlFunc.GetRandom())
+ .Select(x => x.Id).
+ ToPageListAsync(input.SkipCount, input.MaxResultCount);
+ var output = await _bbsUserManager.GetBbsUserInfoAsync(randUserIds);
+ return output.Adapt>();
+ }
+
+
+ }
+}
diff --git a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Analyses/BbsUserAnalyseService.cs b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Analyses/BbsUserAnalyseService.cs
new file mode 100644
index 00000000..4e823e81
--- /dev/null
+++ b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Analyses/BbsUserAnalyseService.cs
@@ -0,0 +1,59 @@
+using Microsoft.AspNetCore.Mvc;
+using SqlSugar;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Application.Services;
+using Yi.Framework.Bbs.Application.Contracts.Dtos.BbsUser;
+using Yi.Framework.Bbs.Application.Contracts.Dtos.Discuss;
+using Yi.Framework.Bbs.Domain.Entities;
+using Yi.Framework.Bbs.Domain.Managers;
+using Yi.Framework.Bbs.Domain.Shared.Enums;
+using Yi.Framework.Rbac.Domain.Entities;
+using Yi.Framework.Rbac.Domain.Shared.Consts;
+using Yi.Framework.SqlSugarCore.Abstractions;
+
+namespace Yi.Framework.Bbs.Application.Services.Analyses
+{
+ public class BbsForumAnalyseService : ApplicationService, IApplicationService
+ {
+ private ForumManager _forumManager;
+ public BbsForumAnalyseService(ForumManager forumManager)
+ {
+ _forumManager = forumManager;
+ }
+
+ ///
+ /// 推荐好友,随机返回好友列表
+ ///
+ ///
+ [HttpGet("analyse/bbs-discuss/random")]
+ public async Task> GetRandomDiscussAsync([FromQuery] PagedResultRequestDto input)
+ {
+ var output = await _forumManager._discussRepository._DbQueryable
+ .Where(discuss=>discuss.PermissionType== DiscussPermissionTypeEnum.Public)
+ .LeftJoin((discuss, user) => discuss.CreatorId == user.Id)
+ .LeftJoin((discuss, user, info) => user.Id == info.UserId)
+
+ .OrderBy(x => SqlFunc.GetRandom())
+ .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,
+ Icon = user.Icon,
+ Level = info.Level,
+ UserLimit = info.UserLimit
+ }
+
+ }, true)
+ .ToPageListAsync(input.SkipCount, input.MaxResultCount);
+ return output;
+ }
+
+
+ }
+}