136 lines
3.7 KiB
Go
136 lines
3.7 KiB
Go
package router
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"chatapp3-golang/internal/config"
|
|
"chatapp3-golang/internal/service/taskcenter"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// registerTaskCenterRoutes 注册任务中心 App、后台和内部事件路由。
|
|
func registerTaskCenterRoutes(engine *gin.Engine, cfg config.Config, javaClient authGateway, service *taskcenter.Service) {
|
|
if service == nil {
|
|
return
|
|
}
|
|
|
|
appGroup := engine.Group("/app/task-center")
|
|
appGroup.Use(authMiddleware(javaClient))
|
|
appGroup.GET("/list", func(c *gin.Context) {
|
|
resp, err := service.ListTasks(c.Request.Context(), mustAuthUser(c))
|
|
if err != nil {
|
|
writeError(c, err)
|
|
return
|
|
}
|
|
writeOK(c, resp)
|
|
})
|
|
appGroup.GET("/claimable-count", func(c *gin.Context) {
|
|
resp, err := service.ClaimableCount(c.Request.Context(), mustAuthUser(c))
|
|
if err != nil {
|
|
writeError(c, err)
|
|
return
|
|
}
|
|
writeOK(c, resp)
|
|
})
|
|
appGroup.POST("/claim", func(c *gin.Context) {
|
|
var req taskcenter.ClaimRequest
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
writeError(c, taskcenter.NewAppError(http.StatusBadRequest, "bad_request", err.Error()))
|
|
return
|
|
}
|
|
resp, err := service.Claim(c.Request.Context(), mustAuthUser(c), req.TaskID.Int64())
|
|
if err != nil {
|
|
writeError(c, err)
|
|
return
|
|
}
|
|
writeOK(c, resp)
|
|
})
|
|
|
|
v2Group := engine.Group("/app/v2/task")
|
|
v2Group.Use(authMiddleware(javaClient))
|
|
v2Group.GET("/list", func(c *gin.Context) {
|
|
resp, err := service.ListTasks(c.Request.Context(), mustAuthUser(c))
|
|
if err != nil {
|
|
writeError(c, err)
|
|
return
|
|
}
|
|
writeOK(c, resp)
|
|
})
|
|
v2Group.GET("/claimable-count", func(c *gin.Context) {
|
|
resp, err := service.ClaimableCount(c.Request.Context(), mustAuthUser(c))
|
|
if err != nil {
|
|
writeError(c, err)
|
|
return
|
|
}
|
|
writeOK(c, resp)
|
|
})
|
|
v2Group.GET("/reward", func(c *gin.Context) {
|
|
resp, err := service.Claim(c.Request.Context(), mustAuthUser(c), taskcenter.ParseInt64(c.Query("taskId")))
|
|
if err != nil {
|
|
writeError(c, err)
|
|
return
|
|
}
|
|
writeOK(c, resp)
|
|
})
|
|
|
|
internalGroup := engine.Group("/internal/task-center")
|
|
internalGroup.Use(internalSecretMiddleware(cfg.HTTP.InternalCallbackSecret))
|
|
internalGroup.POST("/event", func(c *gin.Context) {
|
|
var req taskcenter.EventRequest
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
writeError(c, taskcenter.NewAppError(http.StatusBadRequest, "bad_request", err.Error()))
|
|
return
|
|
}
|
|
resp, err := service.ReceiveEvent(c.Request.Context(), req)
|
|
if err != nil {
|
|
writeError(c, err)
|
|
return
|
|
}
|
|
writeOK(c, resp)
|
|
})
|
|
|
|
adminGroup := engine.Group("/resident-activity/task-center")
|
|
adminGroup.Use(consoleAuthMiddleware(javaClient))
|
|
adminGroup.GET("/config", func(c *gin.Context) {
|
|
resp, err := service.GetConfig(c.Request.Context(), c.Query("sysOrigin"), c.Query("taskCategory"))
|
|
if err != nil {
|
|
writeError(c, err)
|
|
return
|
|
}
|
|
writeOK(c, resp)
|
|
})
|
|
adminGroup.POST("/config/save", func(c *gin.Context) {
|
|
var req taskcenter.SaveConfigRequest
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
writeError(c, taskcenter.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)
|
|
})
|
|
adminGroup.GET("/claim-record/page", func(c *gin.Context) {
|
|
resp, err := service.PageClaimRecords(
|
|
c.Request.Context(),
|
|
c.Query("sysOrigin"),
|
|
c.Query("taskCategory"),
|
|
taskcenter.ParseInt64(c.Query("userId")),
|
|
c.Query("taskCode"),
|
|
c.Query("status"),
|
|
c.Query("startTime"),
|
|
c.Query("endTime"),
|
|
int(taskcenter.ParseInt64(c.Query("cursor"))),
|
|
int(taskcenter.ParseInt64(c.Query("limit"))),
|
|
)
|
|
if err != nil {
|
|
writeError(c, err)
|
|
return
|
|
}
|
|
writeOK(c, resp)
|
|
})
|
|
}
|