| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 |
- package router
- import (
- "mime"
- log2 "device-manage/app/admin/apis/log"
- "device-manage/app/admin/apis/monitor"
- "device-manage/app/admin/apis/public"
- "device-manage/app/admin/apis/system"
- "device-manage/app/admin/apis/system/dict"
- . "device-manage/app/admin/apis/tools"
- "device-manage/app/admin/middleware"
- "device-manage/app/admin/middleware/handler"
- _ "device-manage/docs"
- jwt "device-manage/pkg/jwtauth"
- "device-manage/pkg/ws"
- "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) {
- go ws.WebsocketManager.Start()
- go ws.WebsocketManager.SendService()
- go ws.WebsocketManager.SendAllService()
- r.GET("/", system.HelloWorld)
- //r.GET("/info", handler.Ping)
- r.GET("/:channel", ws.WebsocketManager.WsClient)
- }
- func sysStaticFileRouter(r *gin.RouterGroup) {
- mime.AddExtensionType(".js", "application/javascript")
- r.Static("/static", "./static")
- r.Static("/form-generator", "./static/form-generator")
- }
- 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("/gen/toproject/:tableId", GenCodeV3)
- v1.GET("/gen/todb/:tableId", GenMenuAndApi)
- v1.GET("/gen/tabletree", GetSysTablesTree)
- v1.GET("/menuTreeselect", system.GetMenuTreeelect)
- v1.GET("/dict/databytype/:dictType", dict.GetDictDataByDictType)
- registerDBRouter(v1)
- registerSysTableRouter(v1)
- registerPublicRouter(v1)
- registerSysSettingRouter(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)
- tablesinfo.GET("", GetSysTablesInfo)
- }
- }
- }
- func sysCheckRoleRouterInit(r *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
- r.POST("/login", authMiddleware.LoginHandler)
- // Refresh time can be longer than token timeout
- r.GET("/refresh_token", authMiddleware.RefreshHandler)
- r.Group("").Use(authMiddleware.MiddlewareFunc()).GET("/ws/:id/:channel", ws.WebsocketManager.WsClient)
- r.Group("").Use(authMiddleware.MiddlewareFunc()).GET("/wslogout/:id/:channel", ws.WebsocketManager.UnWsClient)
- v1 := r.Group("/api/v1")
- registerPageRouter(v1, authMiddleware)
- registerBaseRouter(v1, authMiddleware)
- registerDeptRouter(v1, authMiddleware)
- registerDictRouter(v1, authMiddleware)
- registerSysUserRouter(v1, authMiddleware)
- registerRoleRouter(v1, authMiddleware)
- registerConfigRouter(v1, authMiddleware)
- registerUserCenterRouter(v1, authMiddleware)
- registerPostRouter(v1, authMiddleware)
- registerMenuRouter(v1, authMiddleware)
- registerLoginLogRouter(v1, authMiddleware)
- registerOperLogRouter(v1, authMiddleware)
- }
- func registerBaseRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
- v1auth := v1.Group("").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
- {
- v1auth.GET("/getinfo", system.GetInfo) //返回 当前角色的信息
- v1auth.GET("/menurole", system.GetMenuRole) //返回sys_menu_role 表中 menu_role_id和sys_menu表中menu_id相同的 menu列表.
- 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)
- v1auth.GET("/operloglist", log2.GetOperLogList)
- v1auth.GET("/configKey/:configKey", system.GetConfigByConfigKey)
- }
- }
- func registerPageRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
- v1auth := v1.Group("").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("/configList", system.GetConfigList)
- 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 registerOperLogRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
- operlog := v1.Group("/operlog").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
- {
- operlog.GET("/:operId", log2.GetOperLog)
- operlog.DELETE("/:operId", log2.DeleteOperLog)
- }
- }
- 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 registerConfigRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
- config := v1.Group("/config").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
- {
- config.GET("/:configId", system.GetConfig)
- config.POST("", system.InsertConfig)
- config.PUT("", system.UpdateConfig)
- config.DELETE("/:configId", system.DeleteConfig)
- }
- }
- 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) //会先删除 sys_role_menu 和 sys_casbin_rule 表中对应role_id, 和role.RoleKey 的内容,即使删除当前角色的所有内容, 然后 再更新.
- 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 registerDictRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
- dicts := v1.Group("/dict").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
- {
- dicts.GET("/datalist", dict.GetDictDataList)
- dicts.GET("/typelist", dict.GetDictTypeList)
- dicts.GET("/typeoptionselect", dict.GetDictTypeOptionSelect)
- dicts.GET("/data/:dictCode", dict.GetDictData)
- dicts.POST("/data", dict.InsertDictData)
- dicts.PUT("/data/", dict.UpdateDictData)
- dicts.DELETE("/data/:dictCode", dict.DeleteDictData)
- dicts.GET("/type/:dictId", dict.GetDictType)
- dicts.POST("/type", dict.InsertDictType)
- dicts.PUT("/type", dict.UpdateDictType)
- dicts.DELETE("/type/:dictId", dict.DeleteDictType)
- }
- }
- 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)
- }
- }
- func registerSysSettingRouter(v1 *gin.RouterGroup) {
- setting := v1.Group("/setting")
- {
- setting.GET("", system.GetSetting)
- setting.POST("", system.CreateSetting)
- setting.GET("/serverInfo", monitor.ServerInfo)
- }
- }
- func registerPublicRouter(v1 *gin.RouterGroup) {
- p := v1.Group("/public")
- {
- p.POST("/uploadFile", public.UploadFile)
- }
- }
|