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, }, }) }