127 lines
4.5 KiB
Go
127 lines
4.5 KiB
Go
package handler
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"management/internal/erpserver/handler/common"
|
|
"management/internal/erpserver/handler/system"
|
|
|
|
"github.com/go-chi/chi/v5"
|
|
"github.com/go-chi/chi/v5/middleware"
|
|
)
|
|
|
|
func (ctx *AppContext) Router() *chi.Mux {
|
|
r := chi.NewRouter()
|
|
|
|
r.Use(middleware.RequestID)
|
|
r.Use(middleware.RealIP)
|
|
// r.Use(middleware.Logger)
|
|
r.Use(middleware.Recoverer)
|
|
|
|
staticServer := http.FileServer(http.Dir("./web/statics/"))
|
|
r.Handle("/statics/*", http.StripPrefix("/statics", staticServer))
|
|
|
|
uploadServer := http.FileServer(http.Dir("./upload/"))
|
|
r.Handle("/upload/*", http.StripPrefix("/upload", uploadServer))
|
|
|
|
r.Group(func(r chi.Router) {
|
|
r.Use(ctx.Middleware.NoSurf) // CSRF
|
|
r.Use(ctx.Middleware.LoadSession) // Session
|
|
|
|
captchaHandler := common.NewCaptchaHandler(&ctx.Config.Captcha, ctx.Render, ctx.CaptchaService)
|
|
r.Get("/captcha", captchaHandler.Captcha)
|
|
|
|
uploadHandler := common.NewUploadHandler(ctx.Render)
|
|
r.With(ctx.Middleware.Authorize, ctx.Middleware.Audit).Post("/upload/img", uploadHandler.Img)
|
|
r.With(ctx.Middleware.Authorize, ctx.Middleware.Audit).Post("/upload/file", uploadHandler.File)
|
|
r.With(ctx.Middleware.Authorize, ctx.Middleware.Audit).Post("/upload/mutilfile", uploadHandler.MutilFiles)
|
|
|
|
userHandler := system.NewUserHandler(ctx.Render, ctx.Middleware, ctx.CaptchaService, ctx.UserService, ctx.RoleService, ctx.DepartmentService)
|
|
r.Get("/", userHandler.Login)
|
|
r.Post("/login", userHandler.Login)
|
|
r.Get("/logout", userHandler.Logout)
|
|
|
|
homeHandler := system.NewHomeHandler(ctx.Render, ctx.Middleware, ctx.UserService, ctx.LoginLogService)
|
|
r.With(ctx.Middleware.Authorize).Get("/home.html", homeHandler.Home)
|
|
r.With(ctx.Middleware.Authorize).Get("/dashboard", homeHandler.Dashboard)
|
|
|
|
configHandler := system.NewConfigHandler(ctx.Render, ctx.Redis, ctx.ConfigService)
|
|
r.With(ctx.Middleware.Authorize).Get("/pear.json", configHandler.Pear)
|
|
|
|
r.Route("/system", func(r chi.Router) {
|
|
r.Use(ctx.Middleware.Authorize)
|
|
|
|
menuHandler := system.NewMenuHandler(ctx.Render, ctx.Middleware, ctx.MenuService)
|
|
r.Get("/menus", menuHandler.Menus)
|
|
r.Route("/menu", func(r chi.Router) {
|
|
r.Use(ctx.Middleware.Audit)
|
|
r.Get("/list", menuHandler.List)
|
|
r.Post("/list", menuHandler.List)
|
|
r.Get("/add", menuHandler.Add)
|
|
r.Get("/add_children", menuHandler.AddChildren)
|
|
r.Get("/edit", menuHandler.Edit)
|
|
r.Post("/save", menuHandler.Save)
|
|
r.Post("/data", menuHandler.Data)
|
|
r.Post("/refresh_cache", menuHandler.RefreshCache)
|
|
})
|
|
|
|
r.Route("/department", func(r chi.Router) {
|
|
r.Use(ctx.Middleware.Audit)
|
|
|
|
departHandler := system.NewDepartmentHandler(ctx.Render, ctx.DepartmentService)
|
|
r.Get("/list", departHandler.List)
|
|
r.Post("/list", departHandler.List)
|
|
r.Get("/add", departHandler.Add)
|
|
r.Get("/add_children", departHandler.AddChildren)
|
|
r.Get("/edit", departHandler.Edit)
|
|
r.Post("/save", departHandler.Save)
|
|
r.Post("/data", departHandler.Data)
|
|
r.Post("/refresh_cache", departHandler.RefreshCache)
|
|
r.Post("/rebuild_parent_path", departHandler.RebuildParentPath)
|
|
})
|
|
|
|
r.Route("/role", func(r chi.Router) {
|
|
r.Use(ctx.Middleware.Audit)
|
|
|
|
roleHandler := system.NewRoleHandler(ctx.Render, ctx.RoleService, ctx.MenuService)
|
|
r.Get("/list", roleHandler.List)
|
|
r.Post("/list", roleHandler.List)
|
|
r.Get("/add", roleHandler.Add)
|
|
r.Get("/add_children", roleHandler.AddChildren)
|
|
r.Get("/edit", roleHandler.Edit)
|
|
r.Post("/save", roleHandler.Save)
|
|
r.Post("/data", roleHandler.Data)
|
|
r.Post("/refresh_cache", roleHandler.RefreshCache)
|
|
r.Post("/rebuild_parent_path", roleHandler.RebuildParentPath)
|
|
r.Post("/refresh_role_menus", roleHandler.RefreshRoleMenus)
|
|
r.Get("/set_menu", roleHandler.SetMenu)
|
|
r.Post("/set_menu", roleHandler.SetMenu)
|
|
})
|
|
|
|
r.Route("/user", func(r chi.Router) {
|
|
r.Get("/list", userHandler.List)
|
|
r.Post("/list", userHandler.List)
|
|
r.Get("/add", userHandler.Add)
|
|
r.Get("/edit", userHandler.Edit)
|
|
r.Post("/save", userHandler.Save)
|
|
r.Get("/profile", userHandler.Profile)
|
|
r.Post("/data", userHandler.Data)
|
|
})
|
|
|
|
loginLogHandler := system.NewLoginLogHandler(ctx.Render, ctx.LoginLogService)
|
|
r.Route("/login_log", func(r chi.Router) {
|
|
r.Get("/list", loginLogHandler.List)
|
|
r.Post("/list", loginLogHandler.List)
|
|
})
|
|
|
|
auditHandler := system.NewAuditHandler(ctx.Render, ctx.AuditLogService)
|
|
r.Route("/audit_log", func(r chi.Router) {
|
|
r.Get("/list", auditHandler.List)
|
|
r.Post("/list", auditHandler.List)
|
|
})
|
|
})
|
|
})
|
|
|
|
return r
|
|
}
|