package router import ( "net/http" "strconv" "chatapp3-golang/internal/service/invite" "github.com/gin-gonic/gin" ) // registerInviteRoutes 注册邀请活动相关路由。 func registerInviteRoutes(engine *gin.Engine, javaClient authGateway, inviteService *invite.InviteService) { if inviteService == nil { return } engine.GET("/public/h5/invite-campaign/landing", func(c *gin.Context) { resp, err := inviteService.GetLanding(c.Request.Context(), c.Query("code")) if err != nil { writeError(c, err) return } writeOK(c, resp) }) internalGroup := engine.Group("/internal/invite-campaign") internalGroup.POST("/recharge-success", func(c *gin.Context) { var req invite.RechargeSuccessRequest if err := c.ShouldBindJSON(&req); err != nil { writeError(c, invite.NewAppError(http.StatusBadRequest, "bad_request", err.Error())) return } resp, err := inviteService.HandleRechargeSuccess(c.Request.Context(), req) if err != nil { writeError(c, err) return } writeOK(c, resp) }) appGroup := engine.Group("/app/h5/invite-campaign") appGroup.Use(authMiddleware(javaClient)) appGroup.GET("/home", func(c *gin.Context) { resp, err := inviteService.GetHome(c.Request.Context(), mustAuthUser(c)) if err != nil { writeError(c, err) return } writeOK(c, resp) }) appGroup.GET("/rank", func(c *gin.Context) { limit, _ := strconv.Atoi(c.Query("limit")) resp, err := inviteService.GetRank(c.Request.Context(), mustAuthUser(c), limit) if err != nil { writeError(c, err) return } writeOK(c, resp) }) appGroup.POST("/bind-code", func(c *gin.Context) { var req invite.BindCodeRequest if err := c.ShouldBindJSON(&req); err != nil { writeError(c, invite.NewAppError(http.StatusBadRequest, "bad_request", err.Error())) return } resp, err := inviteService.BindCode(c.Request.Context(), mustAuthUser(c), resolveClientIP(c), req) if err != nil { writeError(c, err) return } writeOK(c, resp) }) appGroup.POST("/tasks/claim", func(c *gin.Context) { var req invite.TaskClaimRequest if err := c.ShouldBindJSON(&req); err != nil { writeError(c, invite.NewAppError(http.StatusBadRequest, "bad_request", err.Error())) return } resp, err := inviteService.ClaimTask(c.Request.Context(), mustAuthUser(c), req) if err != nil { writeError(c, err) return } writeOK(c, resp) }) }