package handler import ( "affiliate_dash/internal/middleware" "affiliate_dash/internal/pkg/response" "affiliate_dash/internal/service" "github.com/gin-gonic/gin" ) type AuthHandler struct { svc *service.AuthService } func NewAuthHandler(svc *service.AuthService) *AuthHandler { return &AuthHandler{svc: svc} } type loginReq struct { Username string `json:"username" binding:"required"` Password string `json:"password" binding:"required"` } func (h *AuthHandler) Login(c *gin.Context) { var req loginReq if err := c.ShouldBindJSON(&req); err != nil { response.BadRequest(c, "请输入用户名和密码") return } result, err := h.svc.Login(req.Username, req.Password) if err != nil { response.BadRequest(c, err.Error()) return } response.OK(c, result) } type registerReq struct { Username string `json:"username" binding:"required,min=3,max=32"` Password string `json:"password" binding:"required,min=6,max=64"` Nickname string `json:"nickname"` } func (h *AuthHandler) Register(c *gin.Context) { var req registerReq if err := c.ShouldBindJSON(&req); err != nil { response.BadRequest(c, "参数错误:用户名至少3位,密码至少6位") return } user, err := h.svc.Register(req.Username, req.Password, req.Nickname) if err != nil { response.BadRequest(c, err.Error()) return } response.OK(c, user) } func (h *AuthHandler) Profile(c *gin.Context) { user, err := h.svc.GetProfile(middleware.GetUserID(c)) if err != nil { response.NotFound(c, "用户不存在") return } response.OK(c, user) }