ferry/router/sys_router.go
YuleiLan cca0845f24 new
2020-07-13 20:33:20 +08:00

199 lines
5.9 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)
}
}