Files
Mycontent/soul-api/internal/handler/miniprogram_super_stats.go
2026-04-13 14:32:32 +08:00

43 lines
1.1 KiB
Go

package handler
import (
"net/http"
"strings"
"soul-api/internal/database"
"soul-api/internal/model"
"github.com/gin-gonic/gin"
)
// MiniprogramMySuperStats GET /api/miniprogram/my/super-stats?userId=
// 返回当前 VIP 用户的超级个体获客数和头像点击数(小程序「我的」页展示用)。
func MiniprogramMySuperStats(c *gin.Context) {
userID := strings.TrimSpace(c.Query("userId"))
if userID == "" {
c.JSON(http.StatusOK, gin.H{"success": true, "data": nil})
return
}
db := database.DB()
clicks := batchSuperIndividualClicks(db, []string{userID})
leads := batchSuperIndividualLeads(db, []string{userID})
var person model.Person
hasPerson := db.Where("user_id = ?", userID).First(&person).Error == nil
isVip, _ := isVipEffective(db, userID)
isSuperIndividual := isVip && hasPerson
c.JSON(http.StatusOK, gin.H{
"success": true,
"data": gin.H{
"clickCount": clicks[userID],
"leadCount": leads[userID],
"hasPerson": hasPerson,
"isSuperIndividual": isSuperIndividual,
"isPinned": hasPerson && person.IsPinned,
"personName": person.Name,
},
})
}