package admin import ( camp_handler "dd_fiber_api/internal/camp/handler" admin_auth_middleware "dd_fiber_api/internal/admin_auth/middleware" "github.com/gofiber/fiber/v2" ) // SetupCampRoutes Camp管理路由 func SetupCampRoutes(router fiber.Router, campCategoryHandler *camp_handler.CategoryHandler, campHandler *camp_handler.CampHandler, sectionHandler *camp_handler.SectionHandler, taskHandler *camp_handler.TaskHandler, progressHandler *camp_handler.ProgressHandler, userCampHandler *camp_handler.UserCampHandler) { // 如果所有handler都为空,则不设置路由 if campCategoryHandler == nil && campHandler == nil && sectionHandler == nil && taskHandler == nil && progressHandler == nil && userCampHandler == nil { return } camp := router.Group("/camp") // 分类管理 if campCategoryHandler != nil { categories := camp.Group("/categories") categories.Post("/create", admin_auth_middleware.PermissionMiddleware("camp:category:create"), campCategoryHandler.CreateCategory).Name("创建分类") categories.Get("/detail", admin_auth_middleware.PermissionMiddleware("camp:category:read"), campCategoryHandler.GetCategory).Name("获取分类") categories.Post("/update", admin_auth_middleware.PermissionMiddleware("camp:category:update"), campCategoryHandler.UpdateCategory).Name("更新分类") categories.Post("/delete", admin_auth_middleware.PermissionMiddleware("camp:category:delete"), campCategoryHandler.DeleteCategory).Name("删除分类") categories.Get("", admin_auth_middleware.PermissionMiddleware("camp:category:read"), campCategoryHandler.ListCategories).Name("列出分类") } // 打卡营管理 if campHandler != nil { camps := camp.Group("/camps") camps.Post("/create", admin_auth_middleware.PermissionMiddleware("camp:camp:create"), campHandler.CreateCamp).Name("创建打卡营") camps.Get("/detail", admin_auth_middleware.PermissionMiddleware("camp:camp:read"), campHandler.GetCamp).Name("获取打卡营") camps.Post("/update", admin_auth_middleware.PermissionMiddleware("camp:camp:update"), campHandler.UpdateCamp).Name("更新打卡营") camps.Post("/delete", admin_auth_middleware.PermissionMiddleware("camp:camp:delete"), campHandler.DeleteCamp).Name("删除打卡营") camps.Get("", admin_auth_middleware.PermissionMiddleware("camp:camp:read"), campHandler.ListCamps).Name("列出打卡营") } // 小节管理 if sectionHandler != nil { sections := camp.Group("/sections") sections.Post("/create", admin_auth_middleware.PermissionMiddleware("camp:section:create"), sectionHandler.CreateSection).Name("创建小节") sections.Get("/detail", admin_auth_middleware.PermissionMiddleware("camp:section:read"), sectionHandler.GetSection).Name("获取小节") sections.Post("/update", admin_auth_middleware.PermissionMiddleware("camp:section:update"), sectionHandler.UpdateSection).Name("更新小节") sections.Post("/delete", admin_auth_middleware.PermissionMiddleware("camp:section:delete"), sectionHandler.DeleteSection).Name("删除小节") sections.Get("", admin_auth_middleware.PermissionMiddleware("camp:section:read"), sectionHandler.ListSections).Name("列出小节") } // 任务管理 if taskHandler != nil { tasks := camp.Group("/tasks") tasks.Post("/create", admin_auth_middleware.PermissionMiddleware("camp:task:create"), taskHandler.CreateTask).Name("创建任务") tasks.Get("/detail", admin_auth_middleware.PermissionMiddleware("camp:task:read"), taskHandler.GetTask).Name("获取任务") tasks.Post("/update", admin_auth_middleware.PermissionMiddleware("camp:task:update"), taskHandler.UpdateTask).Name("更新任务") tasks.Post("/delete", admin_auth_middleware.PermissionMiddleware("camp:task:delete"), taskHandler.DeleteTask).Name("删除任务") tasks.Get("", admin_auth_middleware.PermissionMiddleware("camp:task:read"), taskHandler.ListTasks).Name("列出任务") } // 用户进度管理 if progressHandler != nil { progress := camp.Group("/progress") progress.Put("", admin_auth_middleware.PermissionMiddleware("camp:progress:update"), progressHandler.UpdateUserProgress).Name("更新用户进度") progress.Get("", admin_auth_middleware.PermissionMiddleware("camp:progress:read"), progressHandler.GetUserProgress).Name("获取用户进度") progress.Get("/list", admin_auth_middleware.PermissionMiddleware("camp:progress:read"), progressHandler.ListUserProgress).Name("列出用户进度") progress.Get("/pending-count", admin_auth_middleware.PermissionMiddleware("camp:progress:read"), progressHandler.GetPendingReviewCount).Name("待审核任务数量") progress.Post("/reset", admin_auth_middleware.PermissionMiddleware("camp:progress:reset"), progressHandler.ResetTaskProgress).Name("重置任务进度") } // 用户打卡营管理 if userCampHandler != nil { userCamp := camp.Group("/user-camp") userCamp.Post("/join", admin_auth_middleware.PermissionMiddleware("camp:user-camp:join"), userCampHandler.JoinCamp).Name("加入打卡营") userCamp.Get("/status", admin_auth_middleware.PermissionMiddleware("camp:user-camp:read"), userCampHandler.CheckUserCampStatus).Name("检查用户打卡营状态") userCamp.Get("/list", admin_auth_middleware.PermissionMiddleware("camp:user-camp:read"), userCampHandler.ListUserCamps).Name("获取用户打卡营列表") userCamp.Post("/reset-progress", admin_auth_middleware.PermissionMiddleware("camp:user-camp:reset"), userCampHandler.ResetCampProgress).Name("重置打卡营进度") } }