fix: 首页默认排序改为最近活动时间线
reply 按发帖与最后评论的较晚时间混排,零回复新帖不再沉底;默认文案改为「最新」。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -357,18 +357,12 @@ func (s *PostService) List(q PostListQuery) ([]model.Post, int64, error) {
|
||||
}
|
||||
switch sortKey {
|
||||
case "reply":
|
||||
// 有回复的帖子优先,按最后回复时间倒序;无回复的帖子沉底(仅计已公开评论)
|
||||
db = db.Order(`(
|
||||
SELECT COUNT(*) FROM comments
|
||||
WHERE comments.post_id = posts.id AND comments.deleted_at IS NULL
|
||||
AND comments.status = 'published'
|
||||
) > 0 DESC`)
|
||||
db = db.Order(`(
|
||||
// 最近活动:按最后公开评论时间与发帖时间的较晚者倒序(零回复新帖也能靠前)
|
||||
db = db.Order(`COALESCE((
|
||||
SELECT MAX(created_at) FROM comments
|
||||
WHERE comments.post_id = posts.id AND comments.deleted_at IS NULL
|
||||
AND comments.status = 'published'
|
||||
) DESC`)
|
||||
db = db.Order("posts.created_at DESC")
|
||||
), posts.created_at) DESC`)
|
||||
case "hot":
|
||||
// 仅推荐帖:按互动再按 id
|
||||
db = db.Order("like_count desc, view_count desc")
|
||||
@@ -384,7 +378,7 @@ func normalizePostSort(sort string) string {
|
||||
case "latest", "hot":
|
||||
return sort
|
||||
default:
|
||||
// 含空串 / reply:默认新评论
|
||||
// 含空串 / reply:默认最近活动
|
||||
return "reply"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -206,7 +206,7 @@ var feedSortTabDefaultOrder = []string{
|
||||
}
|
||||
|
||||
var feedSortTabDefaultLabels = map[string]string{
|
||||
FeedSortReply: "新评论",
|
||||
FeedSortReply: "最新",
|
||||
FeedSortLatest: "新帖子",
|
||||
FeedSortHot: "推荐帖",
|
||||
}
|
||||
@@ -287,7 +287,7 @@ var forumSettingDefs = []settingDef{
|
||||
|
||||
var feedSettingDefaults = map[string]string{
|
||||
SettingFeedListStyle: "title",
|
||||
SettingFeedSortTabs: `[{"id":"reply","label":"新评论","enabled":true},{"id":"latest","label":"新帖子","enabled":true},{"id":"hot","label":"推荐帖","enabled":true}]`,
|
||||
SettingFeedSortTabs: `[{"id":"reply","label":"最新","enabled":true},{"id":"latest","label":"新帖子","enabled":true},{"id":"hot","label":"推荐帖","enabled":true}]`,
|
||||
}
|
||||
|
||||
var asideSettingDefaults = map[string]string{
|
||||
|
||||
Reference in New Issue
Block a user