102 lines
2.8 KiB
Go
102 lines
2.8 KiB
Go
package router
|
|
|
|
import (
|
|
"net/http"
|
|
"strings"
|
|
|
|
"chatapp3-golang/internal/service/firstrechargereward"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// registerFirstRechargeRewardRoutes registers app and admin first recharge reward APIs.
|
|
func registerFirstRechargeRewardRoutes(engine *gin.Engine, javaClient authGateway, service *firstrechargereward.Service) {
|
|
if service == nil {
|
|
return
|
|
}
|
|
|
|
registerFirstRechargeRewardAppGroup(engine.Group("/app/first-recharge-reward"), javaClient, service)
|
|
registerFirstRechargeRewardAppGroup(engine.Group("/app/h5/first-recharge-reward"), javaClient, service)
|
|
|
|
group := engine.Group("/resident-activity/first-recharge-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 firstrechargereward.SaveConfigRequest
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
writeError(c, firstrechargereward.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("/grant-record/page", func(c *gin.Context) {
|
|
resp, err := service.PageGrantRecords(
|
|
c.Request.Context(),
|
|
c.Query("sysOrigin"),
|
|
c.Query("status"),
|
|
firstrechargereward.ParseInt64(c.Query("userId")),
|
|
int(firstrechargereward.ParseInt64(c.Query("cursor"))),
|
|
int(firstrechargereward.ParseInt64(c.Query("limit"))),
|
|
)
|
|
if err != nil {
|
|
writeError(c, err)
|
|
return
|
|
}
|
|
writeOK(c, resp)
|
|
})
|
|
}
|
|
|
|
func registerFirstRechargeRewardAppGroup(group *gin.RouterGroup, javaClient authGateway, service *firstrechargereward.Service) {
|
|
group.Use(authMiddleware(javaClient))
|
|
group.GET("/home", func(c *gin.Context) {
|
|
resp, err := service.GetHome(c.Request.Context(), mustAuthUser(c), firstRechargeRewardRequestVersion(c))
|
|
if err != nil {
|
|
writeError(c, err)
|
|
return
|
|
}
|
|
writeOK(c, resp)
|
|
})
|
|
}
|
|
|
|
func firstRechargeRewardRequestVersion(c *gin.Context) string {
|
|
return firstNonEmptyString(
|
|
c.Query("appVersion"),
|
|
c.Query("version"),
|
|
c.GetHeader("req-version"),
|
|
c.GetHeader("Req-Version"),
|
|
versionFromReqAppIntel(c.GetHeader("req-app-intel")),
|
|
versionFromReqAppIntel(c.GetHeader("Req-App-Intel")),
|
|
)
|
|
}
|
|
|
|
func versionFromReqAppIntel(value string) string {
|
|
for _, item := range strings.Split(value, ";") {
|
|
parts := strings.SplitN(item, "=", 2)
|
|
if len(parts) == 2 && strings.EqualFold(strings.TrimSpace(parts[0]), "version") {
|
|
return strings.TrimSpace(parts[1])
|
|
}
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func firstNonEmptyString(values ...string) string {
|
|
for _, value := range values {
|
|
if text := strings.TrimSpace(value); text != "" {
|
|
return text
|
|
}
|
|
}
|
|
return ""
|
|
}
|