Files
ppgo_job/boot/router.go
T
2026-07-10 11:28:16 +08:00

127 lines
4.5 KiB
Go

package boot
import (
"ppgo_job/controller"
"ppgo_job/middleware"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/net/ghttp"
)
func init() {
s := g.Server()
s.AddStaticPath("/app", "frontend/dist")
s.BindMiddlewareDefault(ghttp.MiddlewareCORS)
// ===== 公开路由 =====
s.Group("/", func(g *ghttp.RouterGroup) {
g.GET("/", func(r *ghttp.Request) { r.Response.RedirectTo("/app/") })
g.GET("/login_in", controller.LoginIn)
g.POST("/login_in", controller.LoginIn)
g.GET("/login_out", controller.LoginOut)
g.POST("/api/login_in", controller.LoginIn)
})
// ===== API 路由(JWT 认证,新前端使用)=====
s.Group("/api", func(g *ghttp.RouterGroup) {
g.Middleware(middleware.Auth)
// 用户信息
g.GET("/user_info", controller.ApiUserInfo)
g.GET("/menus", controller.ApiMenus)
// 仪表盘
g.GET("/dashboard", controller.ApiDashboard)
// === 任务管理 ===
g.GET("/task/table", controller.TaskTable)
g.GET("/task/add_data", controller.ApiTaskAddData)
g.GET("/task/edit_data", controller.ApiTaskEditData)
g.GET("/task/detail_data", controller.ApiTaskDetailData)
g.POST("/task/save", controller.TaskAjaxSave)
g.POST("/task/del", controller.TaskAjaxDel)
g.POST("/task/start", controller.TaskAjaxStart)
g.POST("/task/pause", controller.TaskAjaxPause)
g.POST("/task/run", controller.TaskAjaxRun)
g.POST("/task/audit", controller.TaskAjaxAudit)
g.POST("/task/nopass", controller.TaskAjaxNopass)
g.POST("/task/batch_audit", controller.TaskAjaxBatchAudit)
g.POST("/task/batch_no_pass", controller.TaskAjaxBatchNoPass)
// === 服务器管理 ===
g.GET("/server/table", controller.ServerTable)
g.GET("/server/add_data", controller.ApiServerAddData)
g.GET("/server/edit_data", controller.ApiServerEditData)
g.GET("/server/by_group", controller.ServerGetByGroupId)
g.POST("/server/save", controller.ServerAjaxSave)
g.POST("/server/del", controller.ServerAjaxDel)
g.POST("/server/test", controller.ServerAjaxTest)
// === 任务分组 ===
g.GET("/group/table", controller.GroupTable)
g.GET("/group/add_data", controller.ApiGroupAddData)
g.GET("/group/edit_data", controller.ApiGroupEditData)
g.POST("/group/save", controller.GroupAjaxSave)
g.POST("/group/del", controller.GroupAjaxDel)
// === 资源分组 ===
g.GET("/server_group/table", controller.ServerGroupTable)
g.POST("/server_group/save", controller.ServerGroupAjaxSave)
g.POST("/server_group/del", controller.ServerGroupAjaxDel)
// === 执行日志 ===
g.GET("/task_log/table", controller.TaskLogTable)
g.GET("/task_log/detail_data", controller.ApiTaskLogDetailData)
g.POST("/task_log/del", controller.TaskLogAjaxDel)
// === 禁用命令 ===
g.GET("/ban/table", controller.BanTable)
g.POST("/ban/save", controller.BanAjaxSave)
g.POST("/ban/del", controller.BanAjaxDel)
// === 通知模板 ===
g.GET("/notify_tpl/table", controller.NotifyTplTable)
g.GET("/notify_tpl/add_data", controller.ApiNotifyTplAddData)
g.GET("/notify_tpl/edit_data", controller.ApiNotifyTplEditData)
g.POST("/notify_tpl/save", controller.NotifyTplAjaxSave)
g.POST("/notify_tpl/del", controller.NotifyTplAjaxDel)
g.GET("/notify_tpl/by_type", controller.NotifyTplAjaxByType)
// === 权限管理 ===
g.GET("/auth/nodes", controller.ApiAuthGetNodes)
g.GET("/auth/node", controller.AuthGetNode)
g.POST("/auth/save", controller.AuthAjaxSave)
g.POST("/auth/del", controller.AuthAjaxDel)
// === 角色管理 ===
g.GET("/role/table", controller.RoleTable)
g.GET("/role/add_data", controller.ApiRoleAddData)
g.GET("/role/edit_data", controller.ApiRoleEditData)
g.POST("/role/save", controller.RoleAjaxSave)
g.POST("/role/del", controller.RoleAjaxDel)
// === 管理员管理 ===
g.GET("/admin/table", controller.AdminTable)
g.GET("/admin/add_data", controller.ApiAdminAddData)
g.GET("/admin/edit_data", controller.ApiAdminEditData)
g.POST("/admin/save", controller.AdminAjaxSave)
g.POST("/admin/del", controller.AdminAjaxDel)
// === 用户资料 ===
g.GET("/user/edit_data", controller.ApiUserEditData)
g.POST("/user/save", controller.UserAjaxSave)
})
// ===== Agent API(无需认证,通过 IP 白名单或 token 调用)=====
s.Group("/server", func(g *ghttp.RouterGroup) {
g.POST("/api_save", controller.ServerApiSave)
g.POST("/api_status", controller.ServerApiStatus)
g.GET("/api_get", controller.ServerApiGet)
})
s.Group("/task", func(g *ghttp.RouterGroup) {
g.POST("/api_task", controller.TaskApiTask)
g.POST("/api_start", controller.TaskApiStart)
g.POST("/api_pause", controller.TaskApiPause)
})
}