227 lines
7.4 KiB
Go
227 lines
7.4 KiB
Go
package router
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"management/internal/middleware/manage/audit"
|
|
"management/internal/middleware/manage/auth"
|
|
"management/internal/middleware/manage/nosurf"
|
|
|
|
budgethandler "management/internal/router/manage/budget"
|
|
cachehandler "management/internal/router/manage/cache"
|
|
categoryhandler "management/internal/router/manage/category"
|
|
commonhandler "management/internal/router/manage/common"
|
|
customerhandler "management/internal/router/manage/customer"
|
|
expensehandler "management/internal/router/manage/expense"
|
|
incomehandler "management/internal/router/manage/income"
|
|
oauthhandler "management/internal/router/manage/oauth"
|
|
projecthandler "management/internal/router/manage/project"
|
|
systemhandler "management/internal/router/manage/system"
|
|
|
|
"github.com/go-chi/chi/v5"
|
|
"github.com/go-chi/chi/v5/middleware"
|
|
)
|
|
|
|
func NewRouter() *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(nosurf.NoSurf) // CSRF
|
|
// r.Use(session.LoadSession) // Session
|
|
|
|
r.Get("/captcha", commonhandler.Captcha)
|
|
|
|
r.Get("/", oauthhandler.Login)
|
|
r.Post("/login", oauthhandler.PostLogin)
|
|
r.Get("/logout", oauthhandler.Logout)
|
|
|
|
r.With(auth.Authorize, audit.Audit).Post("/upload/img", commonhandler.UploadImg)
|
|
r.With(auth.Authorize, audit.Audit).Post("/upload/file", commonhandler.UploadFile)
|
|
r.With(auth.Authorize, audit.Audit).Post("/upload/mutilfile", commonhandler.UploadMutilFiles)
|
|
|
|
r.With(auth.Authorize, audit.Audit).Get("/home.html", Home)
|
|
|
|
configHandler := systemhandler.NewSysConfigHandler()
|
|
r.With(auth.Authorize).Get("/pear.json", configHandler.Pear)
|
|
|
|
r.Route("/system", func(r chi.Router) {
|
|
r.Use(auth.Authorize)
|
|
|
|
r.Route("/config", func(r chi.Router) {
|
|
r.Use(audit.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(audit.Audit)
|
|
departHandler := systemhandler.NewSysDepartmentHandler()
|
|
r.Get("/list", departHandler.List)
|
|
r.Post("/list", departHandler.PostList)
|
|
r.Get("/add", departHandler.Add)
|
|
r.Get("/add_children", departHandler.AddChildren)
|
|
r.Get("/edit", departHandler.Edit)
|
|
r.Post("/save", departHandler.Save)
|
|
r.Post("/dtree", departHandler.DTree)
|
|
r.Post("/refresh", departHandler.Refresh)
|
|
r.Post("/rebuild_parent_path", departHandler.RebuildParentPath)
|
|
})
|
|
|
|
r.Route("/user", func(r chi.Router) {
|
|
r.Use(audit.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(audit.Audit)
|
|
userLoginLogHandler := systemhandler.NewSysUserLoginLogHandler()
|
|
r.Get("/list", userLoginLogHandler.List)
|
|
r.Post("/list", userLoginLogHandler.PostList)
|
|
})
|
|
|
|
r.Route("/audit_log", func(r chi.Router) {
|
|
// r.Use(audit.Audit)
|
|
userAuditLogHandler := systemhandler.NewSysAuditLogHandler()
|
|
r.Get("/list", userAuditLogHandler.List)
|
|
r.Post("/list", userAuditLogHandler.PostList)
|
|
})
|
|
|
|
r.Route("/role", func(r chi.Router) {
|
|
r.Use(audit.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)
|
|
})
|
|
|
|
menuHandler := systemhandler.NewSysMenuHandler()
|
|
r.Get("/menus", menuHandler.UserMenus)
|
|
r.Route("/menu", func(r chi.Router) {
|
|
r.Use(audit.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(audit.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)
|
|
})
|
|
})
|
|
|
|
// 客户
|
|
r.Route("/customer", func(r chi.Router) {
|
|
r.Use(auth.Authorize)
|
|
r.Get("/list", customerhandler.List)
|
|
r.Post("/list", customerhandler.PostList)
|
|
r.Get("/add", customerhandler.Add)
|
|
r.Get("/edit", customerhandler.Edit)
|
|
r.Post("/save", customerhandler.Save)
|
|
r.Post("/xmselect", customerhandler.XmSelect)
|
|
})
|
|
|
|
// 项目
|
|
r.Route("/project", func(r chi.Router) {
|
|
r.Use(auth.Authorize)
|
|
r.Get("/list", projecthandler.List)
|
|
r.Post("/list", projecthandler.PostList)
|
|
r.Get("/add", projecthandler.Add)
|
|
r.Get("/edit", projecthandler.Edit)
|
|
r.Post("/save", projecthandler.Save)
|
|
r.Post("/xmselect", projecthandler.XmSelect)
|
|
r.Get("/dashboard", projecthandler.Dashboard)
|
|
r.Post("/dashboard", projecthandler.PostDashboard)
|
|
})
|
|
|
|
// 项目预算
|
|
r.Route("/budget", func(r chi.Router) {
|
|
r.Use(auth.Authorize)
|
|
r.Get("/list", budgethandler.List)
|
|
r.Post("/list", budgethandler.PostList)
|
|
r.Get("/add", budgethandler.Add)
|
|
r.Get("/edit", budgethandler.Edit)
|
|
r.Post("/save", budgethandler.Save)
|
|
r.Post("/xmselect", budgethandler.XmSelect)
|
|
})
|
|
|
|
// 回款单
|
|
r.Route("/income", func(r chi.Router) {
|
|
r.Use(auth.Authorize)
|
|
r.Get("/list", incomehandler.List)
|
|
r.Post("/list", incomehandler.PostList)
|
|
r.Get("/add", incomehandler.Add)
|
|
r.Get("/edit", incomehandler.Edit)
|
|
r.Post("/save", incomehandler.Save)
|
|
})
|
|
|
|
// 费用报销单
|
|
r.Route("/expense", func(r chi.Router) {
|
|
r.Use(auth.Authorize)
|
|
r.Get("/list", expensehandler.List)
|
|
r.Post("/list", expensehandler.PostList)
|
|
r.Get("/add", expensehandler.Add)
|
|
r.Get("/edit", expensehandler.Edit)
|
|
r.Post("/save", expensehandler.Save)
|
|
})
|
|
|
|
// 缓存
|
|
r.Route("/cache", func(r chi.Router) {
|
|
r.Use(auth.Authorize)
|
|
r.Get("/list", cachehandler.List)
|
|
r.Post("/list", cachehandler.PostList)
|
|
r.Post("/refresh", cachehandler.Refresh)
|
|
})
|
|
})
|
|
|
|
return r
|
|
}
|