mirror of
https://github.com/go-admin-team/go-admin.git
synced 2026-09-21 18:20:50 +00:00
修改文件目录
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"go-admin/app/admin/middleware"
|
||||
"go-admin/app/admin/middleware/handler"
|
||||
"go-admin/common/global"
|
||||
_ "go-admin/pkg/jwtauth"
|
||||
"go-admin/tools"
|
||||
config2 "go-admin/tools/config"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func InitRouter() *gin.Engine {
|
||||
var r *gin.Engine
|
||||
if global.GinEngine == nil {
|
||||
r = gin.New()
|
||||
} else {
|
||||
r = global.GinEngine
|
||||
}
|
||||
if config2.SslConfig.Enable {
|
||||
r.Use(handler.TlsHandler())
|
||||
}
|
||||
r.Use(middleware.WithContextDb(map[string]*gorm.DB{"*": global.Eloquent}))
|
||||
middleware.InitMiddleware(r)
|
||||
// the jwt middleware
|
||||
authMiddleware, err := middleware.AuthInit()
|
||||
tools.HasError(err, "JWT Init Error", 500)
|
||||
|
||||
// 注册系统路由
|
||||
InitSysRouter(r, authMiddleware)
|
||||
|
||||
// 注册业务路由
|
||||
// TODO: 这里可存放业务路由,里边并无实际路由只有演示代码
|
||||
InitExamplesRouter(r, authMiddleware)
|
||||
|
||||
return r
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
_ "github.com/gin-gonic/gin"
|
||||
"go-admin/pkg/jwtauth"
|
||||
jwt "go-admin/pkg/jwtauth"
|
||||
)
|
||||
|
||||
var (
|
||||
routerNoCheckRole = make([]func(*gin.RouterGroup), 0)
|
||||
routerCheckRole = make([]func(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware), 0)
|
||||
)
|
||||
|
||||
// 路由示例
|
||||
func InitExamplesRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) *gin.Engine {
|
||||
|
||||
// 无需认证的路由
|
||||
examplesNoCheckRoleRouter(r)
|
||||
// 需要认证的路由
|
||||
examplesCheckRoleRouter(r, authMiddleware)
|
||||
|
||||
return r
|
||||
}
|
||||
|
||||
// 无需认证的路由示例
|
||||
func examplesNoCheckRoleRouter(r *gin.Engine) {
|
||||
// 可根据业务需求来设置接口版本
|
||||
v1 := r.Group("/api/v1")
|
||||
// 空接口防止v1定义无使用报错
|
||||
v1.GET("/nilcheckrole", nil)
|
||||
|
||||
for _, f := range routerNoCheckRole {
|
||||
f(v1)
|
||||
}
|
||||
|
||||
// {{无需认证路由自动补充在此处请勿删除}}
|
||||
registerSysFileInfoRouter(v1)
|
||||
registerSysFileDirRouter(v1)
|
||||
}
|
||||
|
||||
// 需要认证的路由示例
|
||||
func examplesCheckRoleRouter(r *gin.Engine, authMiddleware *jwtauth.GinJWTMiddleware) {
|
||||
// 可根据业务需求来设置接口版本
|
||||
v1 := r.Group("/api/v1")
|
||||
// 空接口防止v1定义无使用报错
|
||||
v1.GET("/checkrole", nil)
|
||||
|
||||
for _, f := range routerCheckRole {
|
||||
f(v1, authMiddleware)
|
||||
}
|
||||
|
||||
// {{认证路由自动补充在此处请勿删除}}
|
||||
registerSysContentRouter(v1, authMiddleware)
|
||||
registerSysCategoryRouter(v1, authMiddleware)
|
||||
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"go-admin/app/admin/apis/syscategory"
|
||||
"go-admin/app/admin/middleware"
|
||||
jwt "go-admin/pkg/jwtauth"
|
||||
)
|
||||
|
||||
// 需认证的路由代码
|
||||
func registerSysCategoryRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
|
||||
|
||||
r := v1.Group("/syscategory").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
|
||||
{
|
||||
r.GET("/:id", syscategory.GetSysCategory)
|
||||
r.POST("", syscategory.InsertSysCategory)
|
||||
r.PUT("", syscategory.UpdateSysCategory)
|
||||
r.DELETE("/:id", syscategory.DeleteSysCategory)
|
||||
}
|
||||
|
||||
l := v1.Group("").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
|
||||
{
|
||||
l.GET("/syscategoryList", syscategory.GetSysCategoryList)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"go-admin/app/admin/apis/syscontent"
|
||||
"go-admin/app/admin/middleware"
|
||||
jwt "go-admin/pkg/jwtauth"
|
||||
)
|
||||
|
||||
// 需认证的路由代码
|
||||
func registerSysContentRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
|
||||
|
||||
r := v1.Group("/syscontent").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
|
||||
{
|
||||
r.GET("/:id", syscontent.GetSysContent)
|
||||
r.POST("", syscontent.InsertSysContent)
|
||||
r.PUT("", syscontent.UpdateSysContent)
|
||||
r.DELETE("/:id", syscontent.DeleteSysContent)
|
||||
}
|
||||
|
||||
l := v1.Group("").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
|
||||
{
|
||||
l.GET("/syscontentList", syscontent.GetSysContentList)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"go-admin/app/admin/apis/sysfiledir"
|
||||
"go-admin/app/admin/apis/sysfileinfo"
|
||||
)
|
||||
|
||||
// 无需认证的路由代码
|
||||
func registerSysFileInfoRouter(v1 *gin.RouterGroup) {
|
||||
|
||||
v1.GET("/sysfileinfoList", sysfileinfo.GetSysFileInfoList)
|
||||
|
||||
r := v1.Group("/sysfileinfo")
|
||||
{
|
||||
r.GET("/:id", sysfileinfo.GetSysFileInfo)
|
||||
r.POST("", sysfileinfo.InsertSysFileInfo)
|
||||
r.PUT("", sysfileinfo.UpdateSysFileInfo)
|
||||
r.DELETE("/:id", sysfileinfo.DeleteSysFileInfo)
|
||||
}
|
||||
}
|
||||
|
||||
// 无需认证的路由代码
|
||||
func registerSysFileDirRouter(v1 *gin.RouterGroup) {
|
||||
|
||||
v1.GET("/sysfiledirList", sysfiledir.GetSysFileDirList)
|
||||
|
||||
r := v1.Group("/sysfiledir")
|
||||
{
|
||||
r.GET("/:id", sysfiledir.GetSysFileDir)
|
||||
r.POST("", sysfiledir.InsertSysFileDir)
|
||||
r.PUT("", sysfiledir.UpdateSysFileDir)
|
||||
r.DELETE("/:id", sysfiledir.DeleteSysFileDir)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,307 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"mime"
|
||||
|
||||
log2 "go-admin/app/admin/apis/log"
|
||||
"go-admin/app/admin/apis/monitor"
|
||||
"go-admin/app/admin/apis/public"
|
||||
"go-admin/app/admin/apis/sysjob"
|
||||
"go-admin/app/admin/apis/system"
|
||||
"go-admin/app/admin/apis/system/dict"
|
||||
. "go-admin/app/admin/apis/tools"
|
||||
"go-admin/app/admin/middleware"
|
||||
"go-admin/app/admin/middleware/handler"
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service/dto"
|
||||
"go-admin/common/actions"
|
||||
_ "go-admin/docs"
|
||||
jwt "go-admin/pkg/jwtauth"
|
||||
"go-admin/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)
|
||||
}
|
||||
|
||||
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", GenCode)
|
||||
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 registerSysJobRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
|
||||
|
||||
r := v1.Group("/sysjob").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
|
||||
{
|
||||
sysJob := &models.SysJob{}
|
||||
r.GET("", actions.PermissionAction(), actions.IndexAction(sysJob, new(dto.SysJobSearch), func() interface{} {
|
||||
list := make([]models.SysJob, 0)
|
||||
return &list
|
||||
}))
|
||||
r.GET("/:id", actions.PermissionAction(), actions.ViewAction(new(dto.SysJobById)))
|
||||
r.POST("", actions.CreateAction(new(dto.SysJobControl)))
|
||||
r.PUT("", actions.PermissionAction(), actions.UpdateAction(new(dto.SysJobControl)))
|
||||
r.DELETE("/:id", actions.PermissionAction(), actions.DeleteAction(new(dto.SysJobById)))
|
||||
}
|
||||
|
||||
v1.GET("/job/remove/:jobId", sysjob.RemoveJob)
|
||||
v1.GET("/job/start/:jobId", sysjob.StartJob)
|
||||
}
|
||||
|
||||
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)
|
||||
registerSysJobRouter(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)
|
||||
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)
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user