diff --git a/internal/controller/follow_controller.go b/internal/controller/follow_controller.go index 708a659..1b016e3 100644 --- a/internal/controller/follow_controller.go +++ b/internal/controller/follow_controller.go @@ -140,7 +140,7 @@ func (fpc *FollowPageController) FollowersPage(c *gin.Context) { uid, _, _ := common.GetGinUser(c) result, err := fpc.followSvc.ListFollowers(uint(targetUID), uid, page, 20) if err != nil { - result = &service.FollowListResult{Items: []model.UserFollow{}, Total: 0} + result = &service.FollowListResult{Items: []model.UserFollow{}, Total: 0, Accessible: true} } c.HTML(http.StatusOK, "follow/followers.html", common.BuildPageData(c, gin.H{ @@ -170,7 +170,7 @@ func (fpc *FollowPageController) FollowingPage(c *gin.Context) { uid, _, _ := common.GetGinUser(c) result, err := fpc.followSvc.ListFollowing(uint(targetUID), uid, page, 20) if err != nil { - result = &service.FollowListResult{Items: []model.UserFollow{}, Total: 0} + result = &service.FollowListResult{Items: []model.UserFollow{}, Total: 0, Accessible: true} } c.HTML(http.StatusOK, "follow/following.html", common.BuildPageData(c, gin.H{ diff --git a/internal/repository/follow_repo.go b/internal/repository/follow_repo.go index d879087..91d3c8b 100644 --- a/internal/repository/follow_repo.go +++ b/internal/repository/follow_repo.go @@ -106,7 +106,10 @@ func (r *FollowRepo) IncrFollowingCount(userID uint, delta int) error { // GetFollowListPublic 查询用户关注列表公开性 func (r *FollowRepo) GetFollowListPublic(userID uint) (bool, error) { - var user model.User - err := r.db.Select("follow_list_public").First(&user, userID).Error - return user.FollowListPublic, err + var listPublic bool + err := r.db.Model(&model.User{}). + Select("follow_list_public"). + Where("uid = ?", userID). + Scan(&listPublic).Error + return listPublic, err } diff --git a/internal/service/follow_service.go b/internal/service/follow_service.go index 29325b3..e029916 100644 --- a/internal/service/follow_service.go +++ b/internal/service/follow_service.go @@ -2,6 +2,7 @@ package service import ( "fmt" + "log" "metazone.cc/metalab/internal/common" "metazone.cc/metalab/internal/model" @@ -132,7 +133,8 @@ func (s *FollowService) GetStatus(currentUserID, targetUserID uint) (*FollowStat func (s *FollowService) ListFollowers(userID, currentUserID uint, page, pageSize int) (*FollowListResult, error) { listPublic, err := s.repo.GetFollowListPublic(userID) if err != nil { - return nil, fmt.Errorf("查询公开设置: %w", err) + log.Printf("[FollowService] ListFollowers GetFollowListPublic error uid=%d: %v, fallback to public", userID, err) + listPublic = true } p := common.Pagination{Page: page, PageSize: pageSize} @@ -174,7 +176,8 @@ func (s *FollowService) ListFollowers(userID, currentUserID uint, page, pageSize func (s *FollowService) ListFollowing(userID, currentUserID uint, page, pageSize int) (*FollowListResult, error) { listPublic, err := s.repo.GetFollowListPublic(userID) if err != nil { - return nil, fmt.Errorf("查询公开设置: %w", err) + log.Printf("[FollowService] ListFollowing GetFollowListPublic error uid=%d: %v, fallback to public", userID, err) + listPublic = true } p := common.Pagination{Page: page, PageSize: pageSize}