package router import ( "net/http" "strconv" "strings" "chatapp3-golang/internal/service/roomturnoverreward" "github.com/gin-gonic/gin" ) // registerRoomTurnoverRewardRoutes 注册房间流水奖励后台配置和发奖记录路由。 func registerRoomTurnoverRewardRoutes(engine *gin.Engine, javaClient authGateway, service *roomturnoverreward.Service) { if service == nil { return } engine.GET("/public/h5/room-turnover-reward/page", func(c *gin.Context) { resp, err := service.GetPublicPage(c.Request.Context(), c.Query("sysOrigin")) if err != nil { writeError(c, err) return } writeOK(c, resp) }) appGroup := engine.Group("/app/h5/room-turnover-reward") appGroup.Use(authMiddleware(javaClient)) appGroup.GET("/home", func(c *gin.Context) { resp, err := service.GetHome(c.Request.Context(), mustAuthUser(c)) if err != nil { writeError(c, err) return } writeOK(c, resp) }) group := engine.Group("/resident-activity/room-turnover-reward") group.Use(consoleAuthMiddleware(javaClient)) group.GET("/config", func(c *gin.Context) { resp, err := service.GetConfig(c.Request.Context(), c.Query("sysOrigin")) if err != nil { writeError(c, err) return } writeOK(c, resp) }) group.POST("/config/save", func(c *gin.Context) { var req roomturnoverreward.SaveRoomTurnoverRewardConfigRequest if err := c.ShouldBindJSON(&req); err != nil { writeError(c, roomturnoverreward.NewAppError(http.StatusBadRequest, "bad_request", err.Error())) return } resp, err := service.SaveConfig(c.Request.Context(), req) if err != nil { writeError(c, err) return } writeOK(c, resp) }) group.GET("/reward-record/page", func(c *gin.Context) { cursor, _ := strconv.Atoi(strings.TrimSpace(c.DefaultQuery("cursor", "1"))) limit, _ := strconv.Atoi(strings.TrimSpace(c.DefaultQuery("limit", "20"))) resp, err := service.PageRewardRecords( c.Request.Context(), c.Query("sysOrigin"), c.Query("cycleKey"), c.Query("status"), cursor, limit, ) if err != nil { writeError(c, err) return } writeOK(c, resp) }) group.GET("/current-rank", func(c *gin.Context) { limit, _ := strconv.Atoi(strings.TrimSpace(c.DefaultQuery("limit", "20"))) resp, err := service.CurrentRoomRanking(c.Request.Context(), c.Query("sysOrigin"), limit) if err != nil { writeError(c, err) return } writeOK(c, resp) }) }