diff --git a/pkg/internal/server/api/posts_api.go b/pkg/internal/server/api/posts_api.go index 05246c0..8261b2b 100644 --- a/pkg/internal/server/api/posts_api.go +++ b/pkg/internal/server/api/posts_api.go @@ -49,7 +49,7 @@ func getPost(c *fiber.Ctx) error { ReplyCount: services.CountPostReply(item.ID), ReactionCount: services.CountPostReactions(item.ID), } - item.Metric.ReactionList, err = services.ListResourceReactions(database.C.Where("post_id = ?", item.ID)) + item.Metric.ReactionList, err = services.ListPostReactions(database.C.Where("post_id = ?", item.ID)) if err != nil { return fiber.NewError(fiber.StatusInternalServerError, err.Error()) } diff --git a/pkg/internal/services/posts.go b/pkg/internal/services/posts.go index 0e9708a..8c9f1c4 100644 --- a/pkg/internal/services/posts.go +++ b/pkg/internal/services/posts.go @@ -194,7 +194,7 @@ func ListPost(tx *gorm.DB, take int, offset int, order any, noReact ...bool) ([] // Load reactions if len(noReact) <= 0 || !noReact[0] { - if mapping, err := BatchListResourceReactions(database.C.Where("post_id IN ?", idx), "post_id"); err != nil { + if mapping, err := BatchListPostReactions(database.C.Where("post_id IN ?", idx), "post_id"); err != nil { return items, err } else { itemMap := lo.SliceToMap(items, func(item *models.Post) (uint, *models.Post) { diff --git a/pkg/internal/services/reactions.go b/pkg/internal/services/reactions.go index e159fe3..b37166d 100644 --- a/pkg/internal/services/reactions.go +++ b/pkg/internal/services/reactions.go @@ -8,7 +8,7 @@ import ( "gorm.io/gorm" ) -func ListResourceReactions(tx *gorm.DB) (map[string]int64, error) { +func ListPostReactions(tx *gorm.DB) (map[string]int64, error) { var reactions []struct { Symbol string Count int64 @@ -30,7 +30,7 @@ func ListResourceReactions(tx *gorm.DB) (map[string]int64, error) { }), nil } -func BatchListResourceReactions(tx *gorm.DB, indexField string) (map[uint]map[string]int64, error) { +func BatchListPostReactions(tx *gorm.DB, indexField string) (map[uint]map[string]int64, error) { var reactions []struct { ID uint Symbol string @@ -39,7 +39,7 @@ func BatchListResourceReactions(tx *gorm.DB, indexField string) (map[uint]map[st reactInfo := map[uint]map[string]int64{} if err := tx.Model(&models.Reaction{}). - Select(fmt.Sprintf("%s as id, symbol, COUNT(id) as count", indexField)). + Select(fmt.Sprintf("%s as id, symbol, COUNT(*) as count", indexField)). Group("id, symbol"). Scan(&reactions).Error; err != nil { return reactInfo, err