@@ -0,0 +1,192 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"91porn-server/web/middleware/limitHandler"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"runtime/debug"
|
||||
|
||||
"91porn-server/common"
|
||||
"91porn-server/common/constant"
|
||||
"91porn-server/common/tg"
|
||||
"91porn-server/middleware/cors"
|
||||
"91porn-server/middleware/ginzap"
|
||||
"91porn-server/middleware/ip"
|
||||
"91porn-server/web/middleware/authweb"
|
||||
"91porn-server/web/middleware/checkPermission"
|
||||
"91porn-server/web/service/certificateser"
|
||||
"91porn-server/web/webg"
|
||||
|
||||
"github.com/gin-contrib/pprof"
|
||||
"github.com/gin-gonic/gin"
|
||||
swaggerFiles "github.com/swaggo/files"
|
||||
ginSwagger "github.com/swaggo/gin-swagger"
|
||||
)
|
||||
|
||||
// SetupGin 初始化gin router
|
||||
func SetupGin() *gin.Engine {
|
||||
gin.SetMode(gin.DebugMode)
|
||||
if webg.Conf.Base.Env == constant.ProdEnv {
|
||||
gin.SetMode(gin.ReleaseMode)
|
||||
}
|
||||
router := gin.New()
|
||||
router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
||||
if webg.Conf.Base.PProf {
|
||||
pprof.Register(router) // 性能分析工具
|
||||
}
|
||||
router.ForwardedByClientIP = true
|
||||
router.Use(ip.RealIP)
|
||||
router.Use(
|
||||
ginzap.Logger([]string{constant.CtxAdminAct, constant.CtxIP}),
|
||||
ginzap.Recovery(true, func(err interface{}) {
|
||||
stack := string(debug.Stack())
|
||||
common.Go(func() {
|
||||
_ = webg.Bot.Send(tg.Msg{ChatId: tg.ChatIdServerTeam, Text: fmt.Sprintf("[Web-Server] panic:%+v stack:%s", err, stack)})
|
||||
})
|
||||
}))
|
||||
router.Use(cors.Cors(&cors.Options{
|
||||
Origin: nil, // "*"
|
||||
Methods: []string{http.MethodGet, http.MethodPost, http.MethodPut, http.MethodHead, http.MethodDelete},
|
||||
AllowedHeaders: []string{"Content-Length", "Content-Type", "Authorization"},
|
||||
ExposedHeaders: []string{"Content-Disposition", "Refresh-Authorization"},
|
||||
OptionsSuccessStatus: http.StatusOK,
|
||||
}))
|
||||
router.HandleMethodNotAllowed = true
|
||||
router.NoMethod(func(c *gin.Context) {
|
||||
c.JSON(http.StatusMethodNotAllowed, gin.H{"result": false, "error": "Method Not Allowed"})
|
||||
})
|
||||
router.NoRoute(func(c *gin.Context) {
|
||||
c.JSON(http.StatusNotFound, gin.H{"result": false, "error": "Endpoint Not Found"})
|
||||
})
|
||||
registerRouter(router)
|
||||
return router
|
||||
}
|
||||
|
||||
func registerRouter(router *gin.Engine) {
|
||||
//root Router 根组
|
||||
rootRouter := router.Group("/api/web",
|
||||
authweb.Auth,
|
||||
checkPermission.CheckPermission,
|
||||
limitHandler.LoginLimit,
|
||||
)
|
||||
{
|
||||
//web后台管理
|
||||
admin := rootRouter.Group("/admin")
|
||||
{
|
||||
newActivityRoute(admin)
|
||||
productRouter(admin)
|
||||
paymentGuideRouter(admin)
|
||||
sceneBannerRouter(admin)
|
||||
vipCardExperimentRouter(admin)
|
||||
productBenefitRouter(admin)
|
||||
tagRouter(admin)
|
||||
updownloadRouter(admin)
|
||||
locationRoute(admin)
|
||||
toneRoute(admin)
|
||||
vidRouter(admin)
|
||||
imageTopRouter(admin)
|
||||
adsRouter(admin)
|
||||
logRouter(admin)
|
||||
annouRouter(admin)
|
||||
userRouter(admin)
|
||||
versionRouter(admin)
|
||||
adminRouter(admin)
|
||||
authorRouter(admin)
|
||||
exportRouter(admin)
|
||||
activityRouter(admin)
|
||||
withdrawRouter(admin)
|
||||
rechargeRouter(admin)
|
||||
sourceRouter(admin)
|
||||
proxyRouter(admin)
|
||||
promoteUrlRouter(admin)
|
||||
syncCdnRouter(admin)
|
||||
filterRouter(admin)
|
||||
ipblockRouter(admin)
|
||||
ipwhiteRouter(admin)
|
||||
infmtRoute(admin)
|
||||
exchangeCodeRouter(admin)
|
||||
chatRobotRouter(admin)
|
||||
daichongRouter(admin)
|
||||
goldCfgRouter(admin)
|
||||
extendRouter(admin)
|
||||
freeVidCfgRouter(admin)
|
||||
ldyRouter(admin)
|
||||
fictionRouter(admin)
|
||||
taskRouter(admin)
|
||||
currencyRouter(admin)
|
||||
moduleConfRouter(admin)
|
||||
operationLogRouter(admin)
|
||||
videoActivityRouter(admin)
|
||||
activeRouter(admin)
|
||||
rejectTemp(admin)
|
||||
aiUndressRouter(admin)
|
||||
integralConfigRouter(admin)
|
||||
officialRouter(admin)
|
||||
commentRouter(admin)
|
||||
statRouter(admin)
|
||||
aiChangeFaceRouter(admin)
|
||||
videoGoldCoinRouter(admin)
|
||||
advanceOrderRouter(admin)
|
||||
advanceConfigRouter(admin)
|
||||
userBackpackRouter(admin)
|
||||
integralExchangeRouter(admin)
|
||||
quickSearchRouter(admin)
|
||||
aiMateRouter(admin)
|
||||
aiMateV2Router(admin)
|
||||
sysConfRouter(admin)
|
||||
bannerJumpRouter(admin)
|
||||
mediaRouter(admin)
|
||||
mediaContentRouter(admin)
|
||||
mediaTagRouter(admin)
|
||||
mediaTagDimensionRouter(admin)
|
||||
jingangRouter(admin)
|
||||
imGroupRouter(admin)
|
||||
imGroupMemberRouter(admin)
|
||||
imMessageRouter(admin)
|
||||
nakedChatRouter(admin)
|
||||
nakedChatOrderRouter(admin)
|
||||
aiTextToImageRouter(admin)
|
||||
aiImageToVideoRouter(admin)
|
||||
aiTemplateModuleRouter(admin)
|
||||
aiPlazaRouter(admin)
|
||||
aiModRouter(admin)
|
||||
aiTextToNovelRouter(admin)
|
||||
laosijiRouter(admin)
|
||||
adGroupRouter(admin)
|
||||
checkinRouter(admin)
|
||||
sensitiveWordRouter(admin)
|
||||
newOfficialWebsiteRoute(admin)
|
||||
contentReviewRouter(admin)
|
||||
imRouter(admin)
|
||||
}
|
||||
}
|
||||
// openclaw still 接口
|
||||
openclawRouter := router.Group("/customer")
|
||||
{
|
||||
commentAgentRouter(openclawRouter)
|
||||
}
|
||||
|
||||
ext := router.Group("/ext") //对H5接口的
|
||||
{
|
||||
certificate := ext.Group("certificate")
|
||||
{
|
||||
certificate.POST("/qr", certificateser.QrCode)
|
||||
}
|
||||
}
|
||||
thirdRouter := router.Group("/3rd")
|
||||
{
|
||||
defrayRouter(thirdRouter)
|
||||
daichongCallBackRouter(thirdRouter)
|
||||
addWelfareBackRouter(thirdRouter)
|
||||
}
|
||||
//代充接口 测试时环境 如此配置 ,生产环境 移动到group下
|
||||
daichongRouter := router.Group("/")
|
||||
{
|
||||
daichongCallBackRouter(daichongRouter)
|
||||
}
|
||||
//数据同步,内部数据中心
|
||||
syncDataRouter := router.Group("/services")
|
||||
{
|
||||
syncRouter(syncDataRouter)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user