diff --git a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Analyses/BbsForumAnalyseService.cs b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Analyses/BbsForumAnalyseService.cs
index 39727e8f..03d91c94 100644
--- a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Analyses/BbsForumAnalyseService.cs
+++ b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Analyses/BbsForumAnalyseService.cs
@@ -77,6 +77,56 @@ namespace Yi.Framework.Bbs.Application.Services.Analyses
return output;
}
+ ///
+ /// 作者主题,返回当前作者最新的主题
+ ///
+ ///
+ [HttpGet("analyse/bbs-discuss/author/{userId}")]
+ public async Task> GetAuthorDiscussAsync(
+ [FromRoute] Guid userId,
+ [FromQuery] PagedResultRequestDto input)
+ {
+ var output = await _forumManager._discussRepository._DbQueryable.Where(discuss=>discuss.CreatorId==userId)
+ .Where(discuss=>discuss.PermissionType== DiscussPermissionTypeEnum.Public)
+ .LeftJoin((discuss, user) => discuss.CreatorId == user.Id)
+ .LeftJoin((discuss, user, info) => user.Id == info.UserId)
+ .OrderByDescending(discuss => discuss.CreationTime)
+ .Select((discuss, user, info) => new DiscussGetListOutputDto
+ {
+ Id = discuss.Id,
+ 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);
+ var discussId = output.Select(x => x.Id);
+ //点赞字典,key为主题id,y为用户ids
+ var agreeDic =
+ (await _agreeRepository._DbQueryable.Where(x => discussId.Contains(x.DiscussId)).ToListAsync())
+ .GroupBy(x => x.DiscussId)
+ .ToDictionary(x => x.Key, y => y.Select(y => y.CreatorId).ToList());
+
+ //等级、是否点赞赋值
+ output?.ForEach(x =>
+ {
+ if (CurrentUser.Id is not null)
+ {
+ //默认fasle
+ if (agreeDic.TryGetValue(x.Id,out var userIds))
+ {
+ x.IsAgree = userIds.Contains(CurrentUser.Id);
+ }
+ }
+ });
+
+ return output;
+ }
}
}
diff --git a/Yi.Bbs.Vue3/src/apis/analyseApi.js b/Yi.Bbs.Vue3/src/apis/analyseApi.js
index 1db012d9..c282dede 100644
--- a/Yi.Bbs.Vue3/src/apis/analyseApi.js
+++ b/Yi.Bbs.Vue3/src/apis/analyseApi.js
@@ -1,5 +1,20 @@
import request from "@/config/axios/service";
+/**
+ * 获取作者主题
+ * @param userId
+ * @param {*} data
+ * @returns
+ */
+export function getAuthorTopic(userId,data) {
+ return request({
+ url: `/analyse/bbs-discuss/author/${userId}`,
+ method: "get",
+ data,
+ });
+}
+
+
/**
* 获取推荐主题
* @param {*} data
diff --git a/Yi.Bbs.Vue3/src/components/DisscussCard.vue b/Yi.Bbs.Vue3/src/components/DisscussCard.vue
index 7b30d5dd..cfb6d5ff 100644
--- a/Yi.Bbs.Vue3/src/components/DisscussCard.vue
+++ b/Yi.Bbs.Vue3/src/components/DisscussCard.vue
@@ -1,6 +1,7 @@
-
+
@@ -157,8 +158,8 @@ onMounted(() => {
font-size: 14px;
margin: 5px 0;
}
-
.box-card {
+
position: relative;
width: 100%;
/* right: calc(1px + var(--el-badge-size)/ 2) !important; */
diff --git a/Yi.Bbs.Vue3/src/components/InfoCard.vue b/Yi.Bbs.Vue3/src/components/InfoCard.vue
index bd4be6ce..ccb24c20 100644
--- a/Yi.Bbs.Vue3/src/components/InfoCard.vue
+++ b/Yi.Bbs.Vue3/src/components/InfoCard.vue
@@ -1,7 +1,7 @@
-
+