feat: 优化首页帖子列表并新增右侧栏最新注册组件

首页列表精简 meta 与统计展示,板块色标前移并淡化;有回复时显示最后回复人。右侧栏新增最新注册(4 列头像网格),友链改为标签块并排换行。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-27 18:50:09 +08:00
parent 2208af7070
commit 7cc574f9a1
17 changed files with 594 additions and 113 deletions

View File

@@ -123,6 +123,44 @@ func (s *UserService) SearchUsersBrief(keyword string, limit int) ([]model.User,
return users, nil
}
// RecentUserItem 右栏「最新注册」条目
type RecentUserItem struct {
ID uint `json:"id"`
Nickname string `json:"nickname"`
Avatar string `json:"avatar"`
CreatedAt string `json:"created_at"`
}
// ListRecentRegistered 前台最新注册用户(排除封禁)
func (s *UserService) ListRecentRegistered(limit int) ([]RecentUserItem, error) {
if limit < 1 {
limit = 8
}
var users []model.User
err := model.DB.Select("id", "username", "nickname", "avatar", "created_at").
Where("banned = ?", false).
Order("created_at DESC, id DESC").
Limit(limit).
Find(&users).Error
if err != nil {
return nil, err
}
out := make([]RecentUserItem, 0, len(users))
for _, u := range users {
nick := strings.TrimSpace(u.Nickname)
if nick == "" {
nick = u.Username
}
out = append(out, RecentUserItem{
ID: u.ID,
Nickname: nick,
Avatar: u.Avatar,
CreatedAt: u.CreatedAt.UTC().Format(time.RFC3339),
})
}
return out, nil
}
// UpdateNickname 修改昵称
func (s *UserService) UpdateNickname(userID uint, nickname string) error {
nickname = strings.TrimSpace(nickname)