132 lines
2.6 KiB
Go
132 lines
2.6 KiB
Go
package router
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/gin-gonic/gin"
|
|
"hospital-admin-api/api/controller"
|
|
"hospital-admin-api/api/exception"
|
|
"hospital-admin-api/api/middlewares"
|
|
"hospital-admin-api/consts"
|
|
"net/http"
|
|
)
|
|
|
|
// Init 初始化路由
|
|
func Init() *gin.Engine {
|
|
r := gin.New()
|
|
|
|
r.Use(middlewares.Logrus())
|
|
r.Use(gin.Recovery())
|
|
|
|
// 404处理
|
|
r.NoRoute(func(c *gin.Context) {
|
|
path := c.Request.URL.Path
|
|
method := c.Request.Method
|
|
c.JSON(http.StatusNotFound, gin.H{
|
|
"msg": fmt.Sprintf("%s %s not found", method, path),
|
|
"code": consts.CLIENT_HTTP_NOT_FOUND,
|
|
"data": "",
|
|
})
|
|
})
|
|
|
|
// 异常处理
|
|
r.Use(exception.Recover())
|
|
|
|
// 跨域处理
|
|
r.Use(middlewares.Cors())
|
|
|
|
// 加载基础路由
|
|
api := controller.Api{}
|
|
|
|
// 公开路由-不验证权限
|
|
publicRouter(r, api)
|
|
|
|
// 验证jwt
|
|
r.Use(middlewares.Jwt())
|
|
|
|
// 验证权限
|
|
r.Use(middlewares.Auth())
|
|
|
|
// 注册私有路由
|
|
privateRouter(r, api)
|
|
|
|
return r
|
|
}
|
|
|
|
// publicRouter 公开路由-不验证权限
|
|
func publicRouter(r *gin.Engine, api controller.Api) {
|
|
adminGroup := r.Group("/admin")
|
|
basicGroup := adminGroup.Group("/basic")
|
|
{
|
|
// 验证码
|
|
basicGroup.GET("captcha", api.Basic.GetCaptcha)
|
|
|
|
// 登陆
|
|
basicGroup.POST("login", api.Basic.Login)
|
|
}
|
|
}
|
|
|
|
// privateRouter 私有路由
|
|
func privateRouter(r *gin.Engine, api controller.Api) {
|
|
adminGroup := r.Group("/admin")
|
|
|
|
// 角色
|
|
roleGroup := adminGroup.Group("/role")
|
|
{
|
|
// 获取登陆角色菜单列表
|
|
roleGroup.GET("menu", api.Role.GetRoleMenuList)
|
|
|
|
// 获取角色列表-分页
|
|
roleGroup.GET("", api.Role.GetRolePage)
|
|
|
|
// 角色禁用/启用
|
|
roleGroup.PUT("status/:id", api.Role.PutRoleStatus)
|
|
|
|
// 角色新增
|
|
roleGroup.POST("", api.Role.AddRole)
|
|
|
|
// 角色详情
|
|
roleGroup.GET("/:role_id", api.Role.GetRole)
|
|
|
|
// 角色修改
|
|
roleGroup.PUT("/:role_id", api.Role.PutRole)
|
|
|
|
// 删除角色-批量
|
|
roleGroup.DELETE("", api.Role.DeleteRole)
|
|
}
|
|
|
|
// 菜单
|
|
menuGroup := adminGroup.Group("/menu")
|
|
{
|
|
// 获取全部菜单列表
|
|
menuGroup.GET("", api.Menu.GetMenuList)
|
|
|
|
// 新增菜单
|
|
menuGroup.POST("", api.Menu.AddMenu)
|
|
|
|
// 修改菜单
|
|
menuGroup.PUT("/:menu_id", api.Menu.PutMenu)
|
|
|
|
// 删除菜单-批量
|
|
menuGroup.DELETE("", api.Menu.DeleteMenu)
|
|
|
|
// 菜单详情
|
|
menuGroup.GET("/:menu_id", api.Menu.GetMenu)
|
|
}
|
|
|
|
// 用户
|
|
userGroup := adminGroup.Group("/user")
|
|
{
|
|
// 获取用户列表-分页
|
|
userGroup.GET("", api.User.GetUserPage)
|
|
|
|
// 新增用户
|
|
userGroup.POST("", api.User.AddUser)
|
|
|
|
// 用户详情
|
|
userGroup.GET("/:user_id", api.User.GetUser)
|
|
|
|
// 删除用户-批量
|
|
userGroup.DELETE("", api.User.DeleteUser)
|
|
}
|
|
}
|