package erpserver import ( "net/http" "management/internal/erpserver/handler" mw "management/internal/pkg/middleware" "github.com/go-chi/chi/v5" "github.com/go-chi/chi/v5/middleware" ) func NewRouter(handler handler.IHandler, mw mw.IMiddleware) *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(mw.NoSurf) // CSRF r.Use(mw.LoadSession) // Session r.Get("/captcha", handler.CommonHandler().CaptchaHandler().Captcha) r.Get("/", handler.SystemHandler().UserHandler().Login) r.Post("/login", handler.SystemHandler().UserHandler().Login) r.Get("/logout", handler.SystemHandler().UserHandler().Logout) // r.With(auth.Authorize, mw.Audit).Post("/upload/img", commonhandler.UploadImg) // r.With(auth.Authorize, mw.Audit).Post("/upload/file", commonhandler.UploadFile) // r.With(auth.Authorize, mw.Audit).Post("/upload/mutilfile", commonhandler.UploadMutilFiles) r.With(mw.Authorize, mw.Audit).Get("/home.html", handler.Home) r.With(mw.Authorize).Get("/pear.json", handler.SystemHandler().ConfigHandler().Pear) r.Route("/system", func(r chi.Router) { r.Use(mw.Authorize) // r.Route("/config", func(r chi.Router) { // r.Use(mw.Audit) // r.Get("/list", configHandler.List) // r.Post("/list", configHandler.PostList) // r.Get("/add", configHandler.Add) // r.Get("/edit", configHandler.Edit) // r.Post("/save", configHandler.Save) // r.Post("/reset_pear", configHandler.ResetPear) // r.Post("/refresh", configHandler.Refresh) // }) r.Route("/department", func(r chi.Router) { r.Use(mw.Audit) r.Get("/list", handler.SystemHandler().DepartmentHandler().List) r.Post("/list", handler.SystemHandler().DepartmentHandler().List) r.Get("/add", handler.SystemHandler().DepartmentHandler().Add) r.Get("/add_children", handler.SystemHandler().DepartmentHandler().AddChildren) r.Get("/edit", handler.SystemHandler().DepartmentHandler().Edit) r.Post("/save", handler.SystemHandler().DepartmentHandler().Save) r.Post("/tree", handler.SystemHandler().DepartmentHandler().Tree) r.Post("/refresh", handler.SystemHandler().DepartmentHandler().Refresh) r.Post("/rebuild_parent_path", handler.SystemHandler().DepartmentHandler().RebuildParentPath) }) // r.Route("/user", func(r chi.Router) { // r.Use(mw.Audit) // userHandler := systemhandler.NewSysUserHandler() // r.Get("/list", userHandler.List) // r.Post("/list", userHandler.PostList) // r.Get("/add", userHandler.Add) // r.Get("/edit", userHandler.Edit) // r.Post("/save", userHandler.Save) // r.Get("/profile", userHandler.Profile) // r.Post("/xmselect", userHandler.XmSelect) // }) // r.Route("/login_log", func(r chi.Router) { // // r.Use(mw.Audit) // userLoginLogHandler := systemhandler.NewSysUserLoginLogHandler() // r.Get("/list", userLoginLogHandler.List) // r.Post("/list", userLoginLogHandler.PostList) // }) // r.Route("/audit_log", func(r chi.Router) { // // r.Use(mw.Audit) // userAuditLogHandler := systemhandler.NewSysAuditLogHandler() // r.Get("/list", userAuditLogHandler.List) // r.Post("/list", userAuditLogHandler.PostList) // }) // r.Route("/role", func(r chi.Router) { // r.Use(mw.Audit) // roleHandler := systemhandler.NewSysRoleHandler() // r.Get("/list", roleHandler.List) // r.Post("/list", roleHandler.PostList) // r.Get("/add", roleHandler.Add) // r.Get("/edit", roleHandler.Edit) // r.Post("/save", roleHandler.Save) // r.Post("/dtree", roleHandler.DTree) // r.Post("/refresh", roleHandler.Refresh) // r.Post("/rebuild_parent_path", roleHandler.RebuildParentPath) // r.Post("/refresh_role_menus", roleHandler.RefreshRoleMenus) // r.Post("/xm_select", roleHandler.XmSelect) // r.Get("/set_menu", roleHandler.SetMenu) // r.Post("/set_menu", roleHandler.PostSetMenu) // }) r.Get("/menus", handler.SystemHandler().MenuHandler().Menus) // r.Route("/menu", func(r chi.Router) { // r.Use(mw.Audit) // r.Get("/tree", menuHandler.Tree) // r.Get("/list", menuHandler.List) // r.Post("/list", menuHandler.PostList) // r.Get("/add", menuHandler.Add) // r.Get("/add_children", menuHandler.AddChildren) // r.Get("/edit", menuHandler.Edit) // r.Post("/save", menuHandler.Save) // r.Post("/xm_select_tree", menuHandler.XmSelectTree) // r.Post("/refresh_cache", menuHandler.Refresh) // }) // // 类别 // r.Route("/category", func(r chi.Router) { // r.Use(mw.Audit) // categoryHandler := categoryhandler.NewCategoryHandler() // r.Get("/list", categoryHandler.List) // r.Post("/list", categoryHandler.PostList) // r.Get("/add", categoryHandler.Add) // r.Get("/add_children", categoryHandler.AddChildren) // r.Get("/edit", categoryHandler.Edit) // r.Post("/save", categoryHandler.Save) // r.Post("/dtree", categoryHandler.DTree) // r.Post("/xmselect", categoryHandler.XmSelect) // r.Post("/refresh", categoryHandler.Refresh) // r.Post("/rebuild_parent_path", categoryHandler.RebuildParentPath) // }) }) }) return r }