You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
193 lines
4.3 KiB
193 lines
4.3 KiB
/* |
|
* @desc:路由绑定 |
|
* |
|
* |
|
* @Date: 2022/2/18 16:23 |
|
*/ |
|
|
|
package router |
|
|
|
import ( |
|
"github.com/gogf/gf/v2/errors/gcode" |
|
"github.com/gogf/gf/v2/errors/gerror" |
|
"github.com/gogf/gf/v2/net/ghttp" |
|
"net/http" |
|
|
|
"tyj_admin/internal/controller" |
|
"tyj_admin/internal/service" |
|
) |
|
|
|
func BindController(group *ghttp.RouterGroup) { |
|
group.Group("/api/v1", func(group *ghttp.RouterGroup) { |
|
group.Middleware(ghttp.MiddlewareHandlerResponse) |
|
// 绑定后台路由 |
|
SystemBindController(group) |
|
// 绑定测试路由 |
|
DemoBindController(group) |
|
// 绑定公共路由 |
|
CommonBindController(group) |
|
|
|
GameBindController(group) |
|
}) |
|
|
|
} |
|
|
|
func BindAnotherController(group *ghttp.RouterGroup) { |
|
group.Group("/frontApi", func(group *ghttp.RouterGroup) { |
|
group.Middleware(MiddlewareHandlerResponse) |
|
GameBindFrontController(group) |
|
|
|
}) |
|
} |
|
|
|
func MiddlewareHandlerResponse(r *ghttp.Request) { |
|
r.Middleware.Next() |
|
|
|
// There's custom buffer content, it then exits current handler. |
|
if r.Response.BufferLength() > 0 { |
|
return |
|
} |
|
|
|
var ( |
|
msg string |
|
err = r.GetError() |
|
res = r.GetHandlerResponse() |
|
code = gerror.Code(err) |
|
) |
|
if err != nil { |
|
if code == gcode.CodeNil { |
|
code = gcode.CodeInternalError |
|
} |
|
msg = err.Error() |
|
} else { |
|
if r.Response.Status > 0 && r.Response.Status != http.StatusOK { |
|
msg = http.StatusText(r.Response.Status) |
|
switch r.Response.Status { |
|
case http.StatusNotFound: |
|
code = gcode.CodeNotFound |
|
case http.StatusForbidden: |
|
code = gcode.CodeNotAuthorized |
|
default: |
|
code = gcode.CodeUnknown |
|
} |
|
// It creates error as it can be retrieved by other middlewares. |
|
err = gerror.NewCode(code, msg) |
|
r.SetError(err) |
|
} else { |
|
code = gcode.CodeOK |
|
} |
|
} |
|
if msg != "" { |
|
res = msg |
|
} |
|
|
|
if res == nil { |
|
res = "" |
|
} |
|
//fmt.Println("WriteJson ", err, msg, gjson.MustEncodeString(res)) |
|
r.Response.WriteJson(res) |
|
} |
|
|
|
func CommonBindController(group *ghttp.RouterGroup) { |
|
group.Group("/pub", func(group *ghttp.RouterGroup) { |
|
group.Middleware(service.Middleware().MiddlewareCORS) |
|
group.Group("/captcha", func(group *ghttp.RouterGroup) { |
|
group.Bind( |
|
controller.Captcha, |
|
) |
|
}) |
|
|
|
// 文件上传 |
|
group.Group("/upload", func(group *ghttp.RouterGroup) { |
|
group.Bind( |
|
controller.Upload, |
|
) |
|
}) |
|
}) |
|
} |
|
|
|
func DemoBindController(group *ghttp.RouterGroup) { |
|
group.Group("/demo", func(group *ghttp.RouterGroup) { |
|
group.Middleware(service.Middleware().MiddlewareCORS) |
|
group.Bind( |
|
controller.Demo, |
|
) |
|
}) |
|
} |
|
|
|
func SystemBindController(group *ghttp.RouterGroup) { |
|
group.Group("/system", func(group *ghttp.RouterGroup) { |
|
group.Middleware(service.Middleware().MiddlewareCORS, service.Middleware().OperLog) |
|
// 系统初始化 |
|
group.Bind( |
|
controller.DbInit, |
|
) |
|
group.Bind( |
|
//登录 |
|
controller.Login, |
|
) |
|
//登录验证拦截 |
|
service.SysGfToken().Middleware(group) |
|
//context拦截器 |
|
group.Middleware(service.Middleware().Ctx, service.Middleware().Auth) |
|
group.Bind( |
|
controller.User, |
|
controller.Menu, |
|
controller.Role, |
|
controller.Dept, |
|
controller.Post, |
|
controller.DictType, |
|
controller.DictData, |
|
controller.Config, |
|
controller.Monitor, |
|
controller.LoginLog, |
|
) |
|
}) |
|
} |
|
|
|
func GameBindController(group *ghttp.RouterGroup) { |
|
group.Group("/game", func(group *ghttp.RouterGroup) { |
|
//group.Bind(controller.GamePub) |
|
group.Middleware(service.Middleware().MiddlewareCORS) |
|
service.SysGfToken().Middleware(group) |
|
//context拦截器 |
|
group.Middleware(service.Middleware().Ctx, service.Middleware().Auth, service.Middleware().OperLog) |
|
group.Bind( |
|
controller.GameRole, |
|
controller.GameMail, |
|
controller.GameOrder, |
|
controller.GameManage, |
|
controller.GameNotice, |
|
controller.GameCorn, |
|
controller.GameCustom, |
|
controller.GameBazaar, |
|
controller.GameMonthlyLottery, |
|
controller.GamePropExchange, |
|
controller.GameModel, |
|
controller.GameCCD, |
|
controller.GameVersion, |
|
controller.GameRank, |
|
controller.GameWhiteList, |
|
controller.Config, |
|
controller.GameLoginUrl, |
|
controller.GameCdKey, |
|
controller.GameSet, |
|
controller.Advertisement, |
|
controller.GameBug, |
|
controller.GameChannel, |
|
controller.GameBattlePass, |
|
) |
|
}) |
|
} |
|
|
|
func GameBindFrontController(group *ghttp.RouterGroup) { |
|
group.Group("/game", func(group *ghttp.RouterGroup) { |
|
group.Bind( |
|
controller.GamePub, |
|
controller.OutCCD, |
|
controller.OutId, |
|
controller.GameRebate, |
|
controller.GameServer, |
|
) |
|
}) |
|
}
|
|
|