广告平台(总站长使用)
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

router.go 3.7 KiB

4ヶ月前
4ヶ月前
4ヶ月前
2ヶ月前
4ヶ月前
4ヶ月前
2ヶ月前
4ヶ月前
4ヶ月前
4ヶ月前
4ヶ月前
4ヶ月前
4ヶ月前
4ヶ月前
4ヶ月前
4ヶ月前
4ヶ月前
4ヶ月前
4ヶ月前
2ヶ月前
4ヶ月前
2ヶ月前
2ヶ月前
2ヶ月前
4ヶ月前
2ヶ月前
4ヶ月前
2ヶ月前
4ヶ月前
3ヶ月前
2ヶ月前
3ヶ月前
2ヶ月前
3ヶ月前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package router
  2. import (
  3. "applet/app/cfg"
  4. "applet/app/hdl"
  5. "applet/app/mw"
  6. _ "applet/docs"
  7. "github.com/gin-gonic/gin"
  8. swaggerFiles "github.com/swaggo/files"
  9. ginSwagger "github.com/swaggo/gin-swagger"
  10. )
  11. // 初始化路由
  12. func Init() *gin.Engine {
  13. // debug, release, test 项目阶段
  14. mode := "release"
  15. if cfg.Debug {
  16. mode = "debug"
  17. }
  18. gin.SetMode(mode)
  19. // 创建一个新的启动器
  20. r := gin.New()
  21. r.GET("/api/swagger/*any", func(c *gin.Context) {
  22. // r.Use(mw.SwagAuth())
  23. ginSwagger.DisablingWrapHandler(swaggerFiles.Handler, "SWAGGER")(c)
  24. })
  25. r.Use(mw.ChangeHeader)
  26. // 是否打印访问日志, 在非正式环境都打印
  27. if mode != "release" {
  28. r.Use(gin.Logger())
  29. }
  30. r.Use(gin.Recovery())
  31. // r.Use(mw.Limiter)
  32. r.Delims("<<<", ">>>").LoadHTMLGlob("static/html/*")
  33. r.GET("/favicon.ico", func(c *gin.Context) {
  34. c.Status(204)
  35. })
  36. r.NoRoute(func(c *gin.Context) {
  37. c.JSON(404, gin.H{"code": 404, "msg": "page not found", "data": []struct{}{}})
  38. })
  39. r.NoMethod(func(c *gin.Context) {
  40. c.JSON(405, gin.H{"code": 405, "msg": "method not allowed", "data": []struct{}{}})
  41. })
  42. r.Use(mw.Cors)
  43. route(r.Group("/api"))
  44. return r
  45. }
  46. func route(r *gin.RouterGroup) {
  47. r.Static("/static", "./static")
  48. r.GET("/test", hdl.Demo)
  49. wxOpenNotify := r.Group("/wxOpen")
  50. {
  51. wxOpenNotify.Any("/:APPID/wechatMsgRecieve", hdl.WechatMsgRecieve)
  52. wxOpenNotify.Any("/setTicket", hdl.SetTicket)
  53. wxOpenNotify.GET("/getPreAuthCode", hdl.GetPreAuthCode)
  54. wxOpenNotify.GET("/getAuthUrlCallBack", hdl.GetAuthUrlCallBack)
  55. }
  56. r.Use(mw.DB) // 以下接口需要用到数据库
  57. {
  58. r.POST("/login", hdl.Login)
  59. }
  60. r.Use(mw.CheckBody) // body参数转换
  61. r.Use(mw.CheckSign) // 签名校验
  62. r.Use(mw.Auth) // 以下接口需要JWT验证
  63. r.GET("/loginInfo", hdl.LoginInfo)
  64. rComm(r.Group("/comm"))
  65. r.Use(mw.CheckPermission) // 检测权限
  66. rRole(r.Group("/role")) // 权限管理
  67. rDataCenter(r.Group("/dataCenter")) // 数据中心
  68. rSmsCenter(r.Group("/smsCenter")) // 短信中心
  69. }
  70. func rComm(r *gin.RouterGroup) {
  71. r.POST("/getMenuList", hdl.MenuList) // 获取菜单栏列表
  72. }
  73. func rRole(r *gin.RouterGroup) {
  74. r.GET("/roleList", hdl.RoleList) // 角色列表
  75. r.POST("/addRole", hdl.AddRole) // 角色添加
  76. r.POST("/roleBindPermissionGroup", hdl.RoleBindPermissionGroup) // 角色绑定权限组
  77. r.POST("/updateRoleState", hdl.UpdateRoleState) // 修改角色状态
  78. r.POST("/updateRole", hdl.UpdateRole) // 修改角色状态
  79. r.DELETE("/deleteRole/:id", hdl.DeleteRole) // 删除角色
  80. r.GET("/permissionGroupList", hdl.PermissionGroupList) // 权限组列表
  81. r.POST("/adminList", hdl.AdminList) // 管理员列表
  82. r.POST("/updateAdminState", hdl.UpdateAdminState) // 修改管理员状态
  83. r.POST("/updateAdmin", hdl.UpdateAdmin) // 修改管理员信息
  84. r.POST("/addAdmin", hdl.AddAdmin) // 新增管理员
  85. r.DELETE("/deleteAdmin/:adm_id", hdl.DeleteAdmin) // 删除管理员
  86. r.GET("/adminInfo", hdl.AdminInfo) // 获取管理员信息
  87. r.POST("/bindAdminRole", hdl.BindAdminRole) // 绑定角色
  88. }
  89. func rDataCenter(r *gin.RouterGroup) {
  90. r.POST("/original/data/list", hdl.OriginalDataList) // 数据中心-原始数据
  91. r.POST("/generate/data/list", hdl.GenerateDataList) // 数据中心-分成数据
  92. r.POST("/generate/data/detail", hdl.GenerateDataDetail) // 数据中心-分成数据-详情
  93. }
  94. func rSmsCenter(r *gin.RouterGroup) {
  95. r.POST("/list", hdl.SmsList)
  96. r.POST("/detail", hdl.SmsDetail)
  97. r.POST("/update", hdl.SmsUpdate)
  98. }