修改页面
CI / Server (Go) (push) Has been cancelled
CI / Web (Next.js) (push) Has been cancelled
CI / Mobile (React Native) (push) Has been cancelled
CI / Admin (React) (push) Has been cancelled
CI / Docker Build (push) Has been cancelled

This commit is contained in:
zeronline
2026-06-25 16:33:32 +08:00
parent c5cccd346b
commit 545329ac40
63 changed files with 2560 additions and 161 deletions
+51 -18
View File
@@ -1,12 +1,13 @@
package handlers
import (
"net/http"
"github.com/gin-gonic/gin"
"github.com/inchstep/server/internal/middleware"
"github.com/inchstep/server/internal/services"
)
package handlers
import (
"net/http"
"strconv"
"github.com/gin-gonic/gin"
"github.com/inchstep/server/internal/middleware"
"github.com/inchstep/server/internal/services"
)
type UserHandler struct {
userSvc *services.UserService
@@ -104,12 +105,44 @@
middleware.Success(c, nil)
}
func (h *UserHandler) GetPoints(c *gin.Context) {
userID := middleware.GetUserID(c)
user, err := h.userSvc.GetByID(userID)
if err != nil {
middleware.Error(c, http.StatusNotFound, 404, "用户不存在")
return
}
middleware.Success(c, gin.H{"points": user.Points})
}
func (h *UserHandler) GetPoints(c *gin.Context) {
userID := middleware.GetUserID(c)
user, err := h.userSvc.GetByID(userID)
if err != nil {
middleware.Error(c, http.StatusNotFound, 404, "用户不存在")
return
}
middleware.Success(c, gin.H{"points": user.Points})
}
// ========== 排行榜 ==========
func (h *UserHandler) GetLeaderboard(c *gin.Context) {
limitStr := c.DefaultQuery("limit", "20")
limit, err := strconv.Atoi(limitStr)
if err != nil || limit > 100 {
limit = 20
}
entries, err := h.userSvc.GetLeaderboardByPoints(limit)
if err != nil {
middleware.Error(c, http.StatusInternalServerError, 500, err.Error())
return
}
middleware.Success(c, entries)
}
// ========== 搜索用户 ==========
func (h *UserHandler) SearchUsers(c *gin.Context) {
q := c.Query("q")
if q == "" {
middleware.Success(c, []interface{}{})
return
}
users, err := h.userSvc.SearchUsers(q, 20)
if err != nil {
middleware.Error(c, http.StatusInternalServerError, 500, err.Error())
return
}
middleware.Success(c, users)
}