广告平台(总站长使用)
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.
 
 
 
 
 
 

125 line
4.1 KiB

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