diff --git a/internal/controller/space_controller.go b/internal/controller/space_controller.go index 03cec3e..342f94b 100644 --- a/internal/controller/space_controller.go +++ b/internal/controller/space_controller.go @@ -99,5 +99,6 @@ func (ctrl *SpaceController) ShowSpace(c *gin.Context) { "NextPage": nextPage, "IsOwnSpace": isOwnSpace, "ExtraCSS": "/static/css/space.css", + "ExtraCSS2": "/static/css/follow.css", })) } diff --git a/internal/repository/follow_repo.go b/internal/repository/follow_repo.go index 5532975..d879087 100644 --- a/internal/repository/follow_repo.go +++ b/internal/repository/follow_repo.go @@ -93,14 +93,14 @@ func (r *FollowRepo) ListFollowing(userID uint, offset, limit int) ([]model.User // IncrFollowersCount 原子增减粉丝数 func (r *FollowRepo) IncrFollowersCount(userID uint, delta int) error { return r.db.Model(&model.User{}). - Where("id = ?", userID). + Where("uid = ?", userID). UpdateColumn("followers_count", gorm.Expr("followers_count + ?", delta)).Error } // IncrFollowingCount 原子增减关注数 func (r *FollowRepo) IncrFollowingCount(userID uint, delta int) error { return r.db.Model(&model.User{}). - Where("id = ?", userID). + Where("uid = ?", userID). UpdateColumn("following_count", gorm.Expr("following_count + ?", delta)).Error } diff --git a/templates/MetaLab-2026/html/layout/header.html b/templates/MetaLab-2026/html/layout/header.html index 67c71e9..52caf11 100644 --- a/templates/MetaLab-2026/html/layout/header.html +++ b/templates/MetaLab-2026/html/layout/header.html @@ -17,5 +17,8 @@ {{if .ExtraCSS}} {{end}} +{{if .ExtraCSS2}} + +{{end}} diff --git a/templates/MetaLab-2026/html/space/index.html b/templates/MetaLab-2026/html/space/index.html index 43bcb45..10cdd4d 100644 --- a/templates/MetaLab-2026/html/space/index.html +++ b/templates/MetaLab-2026/html/space/index.html @@ -104,8 +104,6 @@ var followBtn = document.getElementById('followBtn'); if (!followBtn) return; var targetUid = followBtn.getAttribute('data-uid'); - var csrfMeta = document.querySelector('meta[name="csrf-token"]'); - var csrfToken = csrfMeta ? csrfMeta.getAttribute('content') : ''; // 四个按钮状态文案 var labels = { @@ -149,7 +147,6 @@ followBtn.classList.add('waiting'); var xhr = new XMLHttpRequest(); xhr.open('POST', '/api/users/' + targetUid + '/follow', true); - xhr.setRequestHeader('X-CSRF-Token', csrfToken); xhr.onreadystatechange = function() { if (xhr.readyState === 4) { followBtn.classList.remove('waiting');