package router import ( log2 "ferry/apis/log" "ferry/apis/monitor" "ferry/apis/system" . "ferry/apis/tools" _ "ferry/docs" "ferry/handler" "ferry/middleware" "ferry/pkg/jwtauth" jwt "ferry/pkg/jwtauth" "github.com/gin-gonic/gin" ginSwagger "github.com/swaggo/gin-swagger" "github.com/swaggo/gin-swagger/swaggerFiles" ) func InitSysRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) *gin.RouterGroup { g := r.Group("") sysBaseRouter(g) // 静态文件 sysStaticFileRouter(g) // swagger;注意:生产环境可以注释掉 sysSwaggerRouter(g) // 无需认证 sysNoCheckRoleRouter(g) // 需要认证 sysCheckRoleRouterInit(g, authMiddleware) return g } func sysBaseRouter(r *gin.RouterGroup) { r.GET("/", system.HelloWorld) r.GET("/info", handler.Ping) } func sysStaticFileRouter(r *gin.RouterGroup) { r.Static("/static", "./static") } func sysSwaggerRouter(r *gin.RouterGroup) { r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) } func sysNoCheckRoleRouter(r *gin.RouterGroup) { v1 := r.Group("/api/v1") v1.GET("/monitor/server", monitor.ServerInfo) v1.GET("/getCaptcha", system.GenerateCaptchaHandler) v1.GET("/gen/preview/:tableId", Preview) v1.GET("/menuTreeselect", system.GetMenuTreeelect) registerDBRouter(v1) registerSysTableRouter(v1) } func registerDBRouter(api *gin.RouterGroup) { db := api.Group("/db") { db.GET("/tables/page", GetDBTableList) db.GET("/columns/page", GetDBColumnList) } } func registerSysTableRouter(v1 *gin.RouterGroup) { systables := v1.Group("/sys/tables") { systables.GET("/page", GetSysTableList) tablesinfo := systables.Group("/info") { tablesinfo.POST("", InsertSysTable) tablesinfo.PUT("", UpdateSysTable) tablesinfo.DELETE("/:tableId", DeleteSysTables) tablesinfo.GET("/:tableId", GetSysTables) } } } func sysCheckRoleRouterInit(r *gin.RouterGroup, authMiddleware *jwtauth.GinJWTMiddleware) { r.POST("/login", authMiddleware.LoginHandler) // Refresh time can be longer than token timeout r.GET("/refresh_token", authMiddleware.RefreshHandler) v1 := r.Group("/api/v1") registerPageRouter(v1, authMiddleware) registerBaseRouter(v1, authMiddleware) registerDeptRouter(v1, authMiddleware) registerSysUserRouter(v1, authMiddleware) registerRoleRouter(v1, authMiddleware) registerUserCenterRouter(v1, authMiddleware) registerPostRouter(v1, authMiddleware) registerMenuRouter(v1, authMiddleware) registerLoginLogRouter(v1, authMiddleware) } func registerBaseRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { v1auth := v1.Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { v1auth.GET("/getinfo", system.GetInfo) v1auth.GET("/menurole", system.GetMenuRole) v1auth.PUT("/roledatascope", system.UpdateRoleDataScope) v1auth.GET("/roleMenuTreeselect/:roleId", system.GetMenuTreeRoleselect) v1auth.GET("/roleDeptTreeselect/:roleId", system.GetDeptTreeRoleselect) v1auth.POST("/logout", handler.LogOut) v1auth.GET("/menuids", system.GetMenuIDS) } } func registerPageRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { v1auth := v1.Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { v1auth.GET("/deptList", system.GetDeptList) v1auth.GET("/deptTree", system.GetDeptTree) v1auth.GET("/sysUserList", system.GetSysUserList) v1auth.GET("/rolelist", system.GetRoleList) v1auth.GET("/postlist", system.GetPostList) v1auth.GET("/menulist", system.GetMenuList) v1auth.GET("/loginloglist", log2.GetLoginLogList) } } func registerUserCenterRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { user := v1.Group("/user").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { user.GET("/profile", system.GetSysUserProfile) user.POST("/avatar", system.InsetSysUserAvatar) user.PUT("/pwd", system.SysUserUpdatePwd) } } func registerLoginLogRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { loginlog := v1.Group("/loginlog").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { loginlog.GET("/:infoId", log2.GetLoginLog) loginlog.POST("", log2.InsertLoginLog) loginlog.PUT("", log2.UpdateLoginLog) loginlog.DELETE("/:infoId", log2.DeleteLoginLog) } } func registerPostRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { post := v1.Group("/post").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { post.GET("/:postId", system.GetPost) post.POST("", system.InsertPost) post.PUT("", system.UpdatePost) post.DELETE("/:postId", system.DeletePost) } } func registerMenuRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { menu := v1.Group("/menu").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { menu.GET("/:id", system.GetMenu) menu.POST("", system.InsertMenu) menu.PUT("", system.UpdateMenu) menu.DELETE("/:id", system.DeleteMenu) } } func registerRoleRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { role := v1.Group("/role").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { role.GET("/:roleId", system.GetRole) role.POST("", system.InsertRole) role.PUT("", system.UpdateRole) role.DELETE("/:roleId", system.DeleteRole) } } func registerSysUserRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { sysuser := v1.Group("/sysUser").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { sysuser.GET("/:userId", system.GetSysUser) sysuser.GET("/", system.GetSysUserInit) sysuser.POST("", system.InsertSysUser) sysuser.PUT("", system.UpdateSysUser) sysuser.DELETE("/:userId", system.DeleteSysUser) } } func registerDeptRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { dept := v1.Group("/dept").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { dept.GET("/:deptId", system.GetDept) dept.POST("", system.InsertDept) dept.PUT("", system.UpdateDept) dept.DELETE("/:id", system.DeleteDept) } }