package admin import ( question_handler "dd_fiber_api/internal/question/handler" admin_auth_middleware "dd_fiber_api/internal/admin_auth/middleware" "github.com/gofiber/fiber/v2" ) // SetupQuestionRoutes 设置题目相关路由(管理端) func SetupQuestionRoutes(router fiber.Router, questionHandler *question_handler.QuestionHandler, paperHandler *question_handler.PaperHandler, answerRecordHandler *question_handler.AnswerRecordHandler, materialHandler *question_handler.MaterialHandler, knowledgeTreeHandler *question_handler.KnowledgeTreeHandler) { // 题目相关路由 if questionHandler != nil { questions := router.Group("/questions") questions.Post("", admin_auth_middleware.PermissionMiddleware("question:create"), questionHandler.CreateQuestion).Name("创建题目") questions.Get("/detail", admin_auth_middleware.PermissionMiddleware("question:read"), questionHandler.GetQuestion).Name("获取题目详情") questions.Get("/search", admin_auth_middleware.PermissionMiddleware("question:read"), questionHandler.SearchQuestions).Name("搜索题目") questions.Post("/update", admin_auth_middleware.PermissionMiddleware("question:update"), questionHandler.UpdateQuestion).Name("更新题目") questions.Post("/delete", admin_auth_middleware.PermissionMiddleware("question:delete"), questionHandler.DeleteQuestion).Name("删除题目") questions.Post("/batch_delete", admin_auth_middleware.PermissionMiddleware("question:batch_delete"), questionHandler.BatchDeleteQuestions).Name("批量删除题目") } // 试卷相关路由 if paperHandler != nil { papers := router.Group("/papers") papers.Post("/create", admin_auth_middleware.PermissionMiddleware("paper:create"), paperHandler.CreatePaper).Name("创建试卷") papers.Get("/detail", admin_auth_middleware.PermissionMiddleware("paper:read"), paperHandler.GetPaper).Name("获取试卷详情") papers.Get("/search", admin_auth_middleware.PermissionMiddleware("paper:read"), paperHandler.SearchPapers).Name("搜索试卷") papers.Post("/update", admin_auth_middleware.PermissionMiddleware("paper:update"), paperHandler.UpdatePaper).Name("更新试卷") papers.Post("/delete", admin_auth_middleware.PermissionMiddleware("paper:delete"), paperHandler.DeletePaper).Name("删除试卷") papers.Post("/batch_delete", admin_auth_middleware.PermissionMiddleware("paper:batch_delete"), paperHandler.BatchDeletePapers).Name("批量删除试卷") papers.Post("/add_question", admin_auth_middleware.PermissionMiddleware("paper:add_question"), paperHandler.AddQuestionToPaper).Name("添加题目到试卷") papers.Post("/remove_question", admin_auth_middleware.PermissionMiddleware("paper:remove_question"), paperHandler.RemoveQuestionFromPaper).Name("从试卷移除题目") } // 答题记录相关路由 if answerRecordHandler != nil { answerRecords := router.Group("/answer-records") answerRecords.Post("/create", admin_auth_middleware.PermissionMiddleware("answer_record:create"), answerRecordHandler.CreateAnswerRecords).Name("批量创建答题记录") answerRecords.Get("/detail", admin_auth_middleware.PermissionMiddleware("answer_record:read"), answerRecordHandler.GetAnswerRecord).Name("获取答题记录") answerRecords.Get("/user", admin_auth_middleware.PermissionMiddleware("answer_record:read"), answerRecordHandler.GetUserAnswerRecord).Name("获取用户答题记录") answerRecords.Get("/statistics", admin_auth_middleware.PermissionMiddleware("answer_record:statistics"), answerRecordHandler.GetPaperAnswerStatistics).Name("获取试卷答题统计") answerRecords.Post("/delete", admin_auth_middleware.PermissionMiddleware("answer_record:delete"), answerRecordHandler.DeleteAnswerRecord).Name("删除答题记录") } // 材料相关路由 if materialHandler != nil { materials := router.Group("/materials") materials.Post("", admin_auth_middleware.PermissionMiddleware("material:create"), materialHandler.CreateMaterial).Name("创建材料") materials.Get("/detail", admin_auth_middleware.PermissionMiddleware("material:read"), materialHandler.GetMaterial).Name("获取材料详情") materials.Get("/search", admin_auth_middleware.PermissionMiddleware("material:read"), materialHandler.SearchMaterials).Name("搜索材料") materials.Put("/:id", admin_auth_middleware.PermissionMiddleware("material:update"), materialHandler.UpdateMaterial).Name("更新材料") materials.Delete("/:id", admin_auth_middleware.PermissionMiddleware("material:delete"), materialHandler.DeleteMaterial).Name("删除材料") } // 知识树相关路由 if knowledgeTreeHandler != nil { knowledgeTrees := router.Group("/knowledge-trees") knowledgeTrees.Post("", admin_auth_middleware.PermissionMiddleware("knowledge_tree:create"), knowledgeTreeHandler.CreateKnowledgeTreeNode).Name("创建知识树节点") knowledgeTrees.Get("/detail", admin_auth_middleware.PermissionMiddleware("knowledge_tree:read"), knowledgeTreeHandler.GetKnowledgeTreeNode).Name("获取知识树节点详情") knowledgeTrees.Get("/list", admin_auth_middleware.PermissionMiddleware("knowledge_tree:read"), knowledgeTreeHandler.GetAllKnowledgeTreeNodes).Name("获取所有知识树节点") knowledgeTrees.Get("/children", admin_auth_middleware.PermissionMiddleware("knowledge_tree:read"), knowledgeTreeHandler.GetKnowledgeTreeByParentID).Name("根据父节点获取子节点") knowledgeTrees.Get("/tree", admin_auth_middleware.PermissionMiddleware("knowledge_tree:read"), knowledgeTreeHandler.GetKnowledgeTree).Name("获取完整知识树") knowledgeTrees.Post("/update", admin_auth_middleware.PermissionMiddleware("knowledge_tree:update"), knowledgeTreeHandler.UpdateKnowledgeTreeNode).Name("更新知识树节点") knowledgeTrees.Delete("/:id", admin_auth_middleware.PermissionMiddleware("knowledge_tree:delete"), knowledgeTreeHandler.DeleteKnowledgeTreeNode).Name("删除知识树节点") } }