2025-10-04 20:48:50 +08:00
|
|
|
|
package router
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/config"
|
2025-10-06 01:32:16 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/internal/article/handler/article"
|
2025-10-26 21:34:32 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/internal/baseoverview/handler/baseOverview"
|
2025-10-31 13:25:45 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/internal/course/handler/course"
|
2025-11-01 23:51:51 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/internal/course_activity/handler/course_activity"
|
2025-11-01 23:01:31 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/internal/course_content/handler/course_content"
|
2025-11-01 23:21:34 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/internal/course_file/handler/course_file"
|
2025-11-02 11:10:17 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/internal/course_resource/handler/course_resource"
|
|
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/internal/course_teacher/handler/course_teacher"
|
2025-10-27 11:01:49 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/internal/devproject/handler/devproject"
|
2025-10-31 16:46:12 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/internal/file/handler/fileupload"
|
2025-10-28 15:57:22 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/internal/meeting/handler/meeting"
|
2025-10-28 22:57:37 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/internal/meetingspeaker/handler/meeting_speaker"
|
2025-10-27 12:48:37 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/internal/pageimgs/handler/pageImage"
|
2025-10-05 18:28:59 +08:00
|
|
|
|
ping "github.com/JACKYMYPERSON/hldrCenter/internal/ping/handler/ping"
|
2025-10-30 14:24:20 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/internal/social_service/handler/socialService"
|
|
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/internal/social_service_governmentprogram/handler/socialServiceGovernmentProgram"
|
|
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/internal/social_service_internship/handler/socialServiceInternship"
|
2025-10-31 14:45:47 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/internal/teaching_case/handler/teaching_case"
|
2025-10-05 18:28:59 +08:00
|
|
|
|
uploadimg "github.com/JACKYMYPERSON/hldrCenter/internal/upload/handler/upload"
|
2025-10-31 14:45:47 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/internal/video_case/handler/video_case"
|
2025-10-04 21:18:35 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/middleware"
|
2025-10-04 20:48:50 +08:00
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
// SetupRouter 初始化路由
|
|
|
|
|
|
func SetupRouter(cfg *config.Config) *gin.Engine {
|
|
|
|
|
|
r := gin.Default()
|
|
|
|
|
|
|
2025-10-04 21:18:35 +08:00
|
|
|
|
// 关键:跨域中间件必须在所有路由定义之前应用
|
|
|
|
|
|
r.Use(middleware.CorsMiddleware(&cfg.Server))
|
|
|
|
|
|
|
|
|
|
|
|
// 定义路由组(必须在中间件之后)
|
2025-10-04 20:48:50 +08:00
|
|
|
|
api := r.Group("/api")
|
|
|
|
|
|
{
|
2025-10-05 01:46:48 +08:00
|
|
|
|
api.POST("/upload/image", uploadimg.UploadImageHandler(cfg))
|
|
|
|
|
|
api.POST("/upload/cover", uploadimg.UploadImageHandler(cfg))
|
2025-10-31 16:46:12 +08:00
|
|
|
|
api.POST("/upload/file", fileupload.UploadFileHandler(cfg))
|
2025-10-05 18:28:59 +08:00
|
|
|
|
api.GET("/ping", gin.WrapF(ping.PingHandler()))
|
|
|
|
|
|
|
2025-10-06 01:32:16 +08:00
|
|
|
|
articles := api.Group("/articles")
|
|
|
|
|
|
{
|
|
|
|
|
|
// 1. 创建文章(POST /api/articles)
|
|
|
|
|
|
articles.POST("", gin.WrapH(article.CreateArticleHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 2. 文章列表(GET /api/articles)
|
|
|
|
|
|
articles.POST("/getarticle", gin.WrapH(article.ListArticleHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 3. 文章详情(GET /api/articles/:id)
|
|
|
|
|
|
articles.GET("/:id", gin.WrapH(article.DetailArticleHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 4. 更新文章(PUT /api/articles/:id)
|
|
|
|
|
|
articles.PUT("/:id", gin.WrapH(article.UpdateArticleHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 5. 删除文章(DELETE /api/articles/:id)
|
|
|
|
|
|
articles.DELETE("/:id", gin.WrapH(article.DeleteArticleHandler(cfg)))
|
|
|
|
|
|
}
|
2025-10-26 21:34:32 +08:00
|
|
|
|
|
|
|
|
|
|
baseOverviewapi := api.Group("/base-overview") // 用资源路径区分,避免与根路径冲突
|
|
|
|
|
|
{
|
|
|
|
|
|
// 获取基地概况(对应 service 中的 GET /)
|
|
|
|
|
|
baseOverviewapi.GET("", gin.WrapH(baseOverview.GetBaseOverviewHandler(cfg)))
|
|
|
|
|
|
// 部分更新基地概况(对应 service 中的 PATCH /)
|
|
|
|
|
|
baseOverviewapi.PATCH("", gin.WrapH(baseOverview.UpdateBaseOverviewPartialHandler(cfg)))
|
|
|
|
|
|
}
|
2025-10-27 11:01:49 +08:00
|
|
|
|
|
|
|
|
|
|
devprojects := api.Group("/devproject")
|
|
|
|
|
|
{
|
|
|
|
|
|
// 新增或修改项目(POST /api/devproject/save)
|
|
|
|
|
|
devprojects.POST("/save", gin.WrapH(devproject.SaveDevProjectHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 查询项目详情(GET /api/devproject/get)
|
|
|
|
|
|
devprojects.GET("/get", gin.WrapH(devproject.GetDevProjectHandler(cfg)))
|
|
|
|
|
|
}
|
2025-10-27 12:48:37 +08:00
|
|
|
|
pageImages := api.Group("/page-image")
|
|
|
|
|
|
{
|
|
|
|
|
|
// 查询指定页面图片(GET /api/page-image/get?page=home)
|
|
|
|
|
|
pageImages.POST("/get", gin.WrapH(pageImage.GetPageImagesHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 新增/更新页面图片(POST /api/page-image/save)
|
|
|
|
|
|
pageImages.POST("/save", gin.WrapH(pageImage.SavePageImageHandler(cfg)))
|
|
|
|
|
|
}
|
2025-10-28 15:57:22 +08:00
|
|
|
|
meetings := api.Group("/meetings")
|
|
|
|
|
|
{
|
|
|
|
|
|
// 1. 创建会议(POST /api/meetings)
|
|
|
|
|
|
meetings.POST("", gin.WrapH(meeting.CreateMeetingHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 2. 查询单条会议(GET /api/meetings/:id)
|
|
|
|
|
|
meetings.GET("/:id", gin.WrapH(meeting.GetMeetingHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 3. 查询会议列表(GET /api/meetings,带分页参数)
|
|
|
|
|
|
meetings.POST("/list", gin.WrapH(meeting.ListMeetingHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 4. 更新会议(PUT /api/meetings,部分/全量更新)
|
|
|
|
|
|
meetings.PUT("", gin.WrapH(meeting.UpdateMeetingHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 5. 删除会议(DELETE /api/meetings/:id)
|
|
|
|
|
|
meetings.DELETE("/:id", gin.WrapH(meeting.DeleteMeetingHandler(cfg)))
|
2025-10-28 22:57:37 +08:00
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
speakers := api.Group("/speakers")
|
|
|
|
|
|
{
|
2025-10-29 11:07:26 +08:00
|
|
|
|
speakers.POST("/meetingspeakers", gin.WrapH(meeting_speaker.ListSpeakersByMeetingHandler(cfg)))
|
2025-10-28 22:57:37 +08:00
|
|
|
|
// 1. 创建嘉宾(POST /api/speakers)
|
|
|
|
|
|
speakers.POST("", gin.WrapH(meeting_speaker.CreateSpeakerHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 2. 查询单个嘉宾(GET /api/speakers/:id)
|
|
|
|
|
|
speakers.GET("/:id", gin.WrapH(meeting_speaker.GetSpeakerHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 3. 更新嘉宾信息(PUT /api/speakers)
|
|
|
|
|
|
speakers.PUT("", gin.WrapH(meeting_speaker.UpdateSpeakerHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 4. 软删除嘉宾(DELETE /api/speakers/:id)
|
|
|
|
|
|
speakers.DELETE("/:id", gin.WrapH(meeting_speaker.DeleteSpeakerHandler(cfg)))
|
2025-10-28 15:57:22 +08:00
|
|
|
|
}
|
2025-10-30 14:24:20 +08:00
|
|
|
|
|
|
|
|
|
|
// ------------ 社会服务基础模块 ------------
|
|
|
|
|
|
socialServiceapi := api.Group("/social-service")
|
|
|
|
|
|
{
|
|
|
|
|
|
// 创建社会服务(POST /api/social-service)
|
|
|
|
|
|
socialServiceapi.POST("", gin.WrapH(socialService.CreateSocialServiceHandler(cfg)))
|
|
|
|
|
|
// 获取社会服务列表(GET /api/social-service/list)
|
|
|
|
|
|
socialServiceapi.POST("/list", gin.WrapH(socialService.ListSocialServiceHandler(cfg)))
|
|
|
|
|
|
// 获取社会服务详情(GET /api/social-service/:id)
|
|
|
|
|
|
socialServiceapi.GET("/:id", gin.WrapH(socialService.GetSocialServiceHandler(cfg)))
|
|
|
|
|
|
// 更新社会服务(PUT /api/social-service)
|
|
|
|
|
|
socialServiceapi.PUT("", gin.WrapH(socialService.UpdateSocialServiceHandler(cfg)))
|
|
|
|
|
|
// 删除社会服务(DELETE /api/social-service/:id)
|
|
|
|
|
|
socialServiceapi.DELETE("/:id", gin.WrapH(socialService.DeleteSocialServiceHandler(cfg)))
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// ------------ 社会服务实习模块 ------------
|
|
|
|
|
|
socialServiceInternshipapi := api.Group("/social-service/internship")
|
|
|
|
|
|
{
|
|
|
|
|
|
// 创建社会服务实习(POST /api/social-service/internship)
|
|
|
|
|
|
socialServiceInternshipapi.POST("", gin.WrapH(socialServiceInternship.CreateSocialServiceInternshipHandler(cfg)))
|
|
|
|
|
|
// 获取社会服务实习列表(GET /api/social-service/internship/list)
|
|
|
|
|
|
socialServiceInternshipapi.POST("/list", gin.WrapH(socialServiceInternship.ListSocialServiceInternshipHandler(cfg)))
|
|
|
|
|
|
// 获取社会服务实习详情(GET /api/social-service/internship/:id)
|
|
|
|
|
|
socialServiceInternshipapi.GET("/:id", gin.WrapH(socialServiceInternship.GetSocialServiceInternshipHandler(cfg)))
|
|
|
|
|
|
// 更新社会服务实习(PUT /api/social-service/internship)
|
|
|
|
|
|
socialServiceInternshipapi.PUT("", gin.WrapH(socialServiceInternship.UpdateSocialServiceInternshipHandler(cfg)))
|
|
|
|
|
|
// 删除社会服务实习(DELETE /api/social-service/internship/:id)
|
|
|
|
|
|
socialServiceInternshipapi.DELETE("/:id", gin.WrapH(socialServiceInternship.DeleteSocialServiceInternshipHandler(cfg)))
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// ------------ 社会服务政府项目模块 ------------
|
|
|
|
|
|
socialServiceGovProgramapi := api.Group("/social-service/government-program")
|
|
|
|
|
|
{
|
|
|
|
|
|
// 创建社会服务政府项目(POST /api/social-service/government-program)
|
|
|
|
|
|
socialServiceGovProgramapi.POST("", gin.WrapH(socialServiceGovernmentProgram.CreateSocialServiceGovernmentProgramHandler(cfg)))
|
|
|
|
|
|
// 获取社会服务政府项目列表(GET /api/social-service/government-program/list)
|
|
|
|
|
|
socialServiceGovProgramapi.POST("/list", gin.WrapH(socialServiceGovernmentProgram.ListSocialServiceGovernmentProgramHandler(cfg)))
|
|
|
|
|
|
// 获取社会服务政府项目详情(GET /api/social-service/government-program/:id)
|
|
|
|
|
|
socialServiceGovProgramapi.GET("/:id", gin.WrapH(socialServiceGovernmentProgram.GetSocialServiceGovernmentProgramHandler(cfg)))
|
|
|
|
|
|
// 更新社会服务政府项目(PUT /api/social-service/government-program)
|
|
|
|
|
|
socialServiceGovProgramapi.PUT("", gin.WrapH(socialServiceGovernmentProgram.UpdateSocialServiceGovernmentProgramHandler(cfg)))
|
|
|
|
|
|
// 删除社会服务政府项目(DELETE /api/social-service/government-program/:id)
|
|
|
|
|
|
socialServiceGovProgramapi.DELETE("/:id", gin.WrapH(socialServiceGovernmentProgram.DeleteSocialServiceGovernmentProgramHandler(cfg)))
|
|
|
|
|
|
}
|
2025-10-31 13:25:45 +08:00
|
|
|
|
|
|
|
|
|
|
courses := api.Group("/courses")
|
|
|
|
|
|
{
|
|
|
|
|
|
// 1. 创建课程(POST /api/courses)- 对应 service CreateCourseHandler
|
|
|
|
|
|
courses.POST("", gin.WrapH(course.CreateCourseHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 2. 课程列表(GET /api/courses)- 对应 service ListCourseHandler(分页/筛选参数通过Query传递)
|
|
|
|
|
|
courses.POST("/list", gin.WrapH(course.ListCourseHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 3. 课程详情(GET /api/courses/:id)- 对应 service GetCourseHandler(路径参数id)
|
|
|
|
|
|
courses.GET("/:id", gin.WrapH(course.GetCourseHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 4. 更新课程(PUT /api/courses)- 对应 service UpdateCourseHandler(路径参数id+请求体)
|
|
|
|
|
|
courses.PUT("", gin.WrapH(course.UpdateCourseHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 5. 删除课程(DELETE /api/courses/:id)- 对应 service DeleteCourseHandler(路径参数id)
|
|
|
|
|
|
courses.DELETE("/:id", gin.WrapH(course.DeleteCourseHandler(cfg)))
|
|
|
|
|
|
}
|
2025-10-31 14:45:47 +08:00
|
|
|
|
|
|
|
|
|
|
// ------------ 教学案例模块 ------------
|
|
|
|
|
|
teachingCases := api.Group("/teaching-cases")
|
|
|
|
|
|
{
|
|
|
|
|
|
// 创建教学案例(POST /api/teaching-cases)
|
|
|
|
|
|
teachingCases.POST("", gin.WrapH(teaching_case.CreateTeachingCaseHandler(cfg)))
|
|
|
|
|
|
// 教学案例列表(POST /api/teaching-cases/list)- 统一列表接口风格
|
|
|
|
|
|
teachingCases.POST("/list", gin.WrapH(teaching_case.ListTeachingCaseHandler(cfg)))
|
|
|
|
|
|
// 获取单个教学案例(GET /api/teaching-cases/:id)
|
|
|
|
|
|
teachingCases.GET("/:id", gin.WrapH(teaching_case.GetTeachingCaseHandler(cfg)))
|
|
|
|
|
|
// 更新教学案例(PUT /api/teaching-cases)
|
|
|
|
|
|
teachingCases.PUT("", gin.WrapH(teaching_case.UpdateTeachingCaseHandler(cfg)))
|
|
|
|
|
|
// 删除教学案例(DELETE /api/teaching-cases/:id)
|
|
|
|
|
|
teachingCases.DELETE("/:id", gin.WrapH(teaching_case.DeleteTeachingCaseHandler(cfg)))
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// ------------ 视频案例模块 ------------
|
|
|
|
|
|
videoCases := api.Group("/video-cases")
|
|
|
|
|
|
{
|
|
|
|
|
|
// 创建视频案例(POST /api/video-cases)
|
|
|
|
|
|
videoCases.POST("", gin.WrapH(video_case.CreateVideoCaseHandler(cfg)))
|
|
|
|
|
|
// 视频案例列表(POST /api/video-cases/list)- 统一列表接口风格
|
|
|
|
|
|
videoCases.POST("/list", gin.WrapH(video_case.ListVideoCaseHandler(cfg)))
|
|
|
|
|
|
// 获取单个视频案例(GET /api/video-cases/:id)
|
|
|
|
|
|
videoCases.GET("/:id", gin.WrapH(video_case.GetVideoCaseHandler(cfg)))
|
|
|
|
|
|
// 更新视频案例(PUT /api/video-cases)
|
|
|
|
|
|
videoCases.PUT("", gin.WrapH(video_case.UpdateVideoCaseHandler(cfg)))
|
|
|
|
|
|
// 删除视频案例(DELETE /api/video-cases/:id)
|
|
|
|
|
|
videoCases.DELETE("/:id", gin.WrapH(video_case.DeleteVideoCaseHandler(cfg)))
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-11-01 23:01:31 +08:00
|
|
|
|
// ------------ 课程内容模块 ------------
|
|
|
|
|
|
courseContents := api.Group("/course-content")
|
|
|
|
|
|
{
|
|
|
|
|
|
// 新增课程内容(POST /api/course-content)
|
|
|
|
|
|
courseContents.POST("", gin.WrapH(course_content.AddContentHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 课程内容列表(POST /api/course-content/list)- 与视频案例列表接口风格统一(用POST传参便于分页/筛选)
|
|
|
|
|
|
courseContents.POST("/list", gin.WrapH(course_content.GetContentListHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 获取单个课程内容详情(GET /api/course-content/:id)
|
|
|
|
|
|
courseContents.GET("/:id", gin.WrapH(course_content.GetContentHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 更新课程内容(PUT /api/course-content)
|
|
|
|
|
|
courseContents.PUT("", gin.WrapH(course_content.UpdateContentHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 删除课程内容(DELETE /api/course-content/:id)
|
|
|
|
|
|
courseContents.DELETE("/:id", gin.WrapH(course_content.DeleteContentHandler(cfg)))
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-11-01 23:21:34 +08:00
|
|
|
|
// ------------ 课程文件模块(补充,与课程内容模块风格统一) ------------
|
|
|
|
|
|
courseFiles := api.Group("/course-file")
|
|
|
|
|
|
{
|
|
|
|
|
|
// 创建课程文件(POST /api/course-file)
|
|
|
|
|
|
courseFiles.POST("", gin.WrapH(course_file.CreateCourseFileHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 查询单个课程文件(GET /api/course-file/:id)
|
|
|
|
|
|
courseFiles.GET("/:id", gin.WrapH(course_file.GetCourseFileHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 更新课程文件(PUT /api/course-file)
|
|
|
|
|
|
courseFiles.PUT("", gin.WrapH(course_file.UpdateCourseFileHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 删除课程文件(DELETE /api/course-file/:id)
|
|
|
|
|
|
courseFiles.DELETE("/:id", gin.WrapH(course_file.DeleteCourseFileHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 可选:补充课程文件列表接口(与课程内容列表风格一致,支持分页筛选)
|
|
|
|
|
|
// courseFiles.POST("/list", gin.WrapH(course_file.GetCourseFileListHandler(cfg)))
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-11-01 23:51:51 +08:00
|
|
|
|
courseActivities := api.Group("/course-activity")
|
|
|
|
|
|
{
|
|
|
|
|
|
// 创建课程活动(POST /api/course-activity)
|
|
|
|
|
|
courseActivities.POST("", gin.WrapH(course_activity.CreateCourseActivityHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 查询单个课程活动(GET /api/course-activity/:id)
|
|
|
|
|
|
courseActivities.GET("/:id", gin.WrapH(course_activity.GetCourseActivityHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 课程活动列表查询(POST /api/course-activity/list)
|
|
|
|
|
|
courseActivities.POST("/list", gin.WrapH(course_activity.ListCourseActivityHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 更新课程活动(PUT /api/course-activity)
|
|
|
|
|
|
courseActivities.PUT("", gin.WrapH(course_activity.UpdateCourseActivityHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 删除课程活动(DELETE /api/course-activity/:id)
|
|
|
|
|
|
courseActivities.DELETE("/:id", gin.WrapH(course_activity.DeleteCourseActivityHandler(cfg)))
|
|
|
|
|
|
}
|
2025-11-02 11:10:17 +08:00
|
|
|
|
courseResources := api.Group("/course-resource")
|
|
|
|
|
|
{
|
|
|
|
|
|
// 1. 创建课程资源(POST /api/course-resource)
|
|
|
|
|
|
// 对应 service 中的 CreateCourseResourceHandler,接收 CreateCourseResourceReq
|
|
|
|
|
|
courseResources.POST("", gin.WrapH(course_resource.CreateCourseResourceHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 2. 查询单个课程资源(GET /api/course-resource/:id)
|
|
|
|
|
|
// 对应 service 中的 GetCourseResourceHandler,从路径参数获取 id(GetCourseResourceReq 需包含 id 字段)
|
|
|
|
|
|
courseResources.GET("/:id", gin.WrapH(course_resource.GetCourseResourceHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 3. 课程资源列表查询(POST /api/course-resource/list)
|
|
|
|
|
|
// 对应 service 中的 ListCourseResourceHandler,接收 ListCourseResourceReq(筛选+分页参数)
|
|
|
|
|
|
courseResources.POST("/list", gin.WrapH(course_resource.ListCourseResourceHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 4. 更新课程资源(PUT /api/course-resource)
|
|
|
|
|
|
// 对应 service 中的 UpdateCourseResourceHandler,接收 UpdateCourseResourceReq(含 id 和更新字段)
|
|
|
|
|
|
courseResources.PUT("", gin.WrapH(course_resource.UpdateCourseResourceHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 5. 删除课程资源(DELETE /api/course-resource/:id)
|
|
|
|
|
|
// 对应 service 中的 DeleteCourseResourceHandler,从路径参数获取 id(DeleteCourseResourceReq 需包含 id 字段)
|
|
|
|
|
|
courseResources.DELETE("/:id", gin.WrapH(course_resource.DeleteCourseResourceHandler(cfg)))
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
courseTeachers := api.Group("/course-teacher")
|
|
|
|
|
|
{
|
|
|
|
|
|
// 1. 创建教学团队关联(POST /api/course-teacher)
|
|
|
|
|
|
// 对应 CreateCourseTeacherHandler,接收 CreateCourseTeacherReq 请求体
|
|
|
|
|
|
courseTeachers.POST("", gin.WrapH(course_teacher.CreateCourseTeacherHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 2. 查询单个教学团队关联(GET /api/course-teacher/:id)
|
|
|
|
|
|
// 对应 GetCourseTeacherHandler,从路径参数获取 id(需确保 GetCourseTeacherReq 含 id 字段)
|
|
|
|
|
|
courseTeachers.GET("/:id", gin.WrapH(course_teacher.GetCourseTeacherHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 3. 教学团队关联列表查询(POST /api/course-teacher/list)
|
|
|
|
|
|
// 对应 ListCourseTeacherHandler,接收 ListCourseTeacherReq(筛选+分页参数)
|
|
|
|
|
|
courseTeachers.POST("/list", gin.WrapH(course_teacher.ListCourseTeacherHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 4. 更新教学团队关联(PUT /api/course-teacher)
|
|
|
|
|
|
// 对应 UpdateCourseTeacherHandler,接收 UpdateCourseTeacherReq(含 id 和更新字段)
|
|
|
|
|
|
courseTeachers.PUT("", gin.WrapH(course_teacher.UpdateCourseTeacherHandler(cfg)))
|
|
|
|
|
|
|
|
|
|
|
|
// 5. 删除教学团队关联(DELETE /api/course-teacher/:id)
|
|
|
|
|
|
// 对应 DeleteCourseTeacherHandler,从路径参数获取 id(需确保 DeleteCourseTeacherReq 含 id 字段)
|
|
|
|
|
|
courseTeachers.DELETE("/:id", gin.WrapH(course_teacher.DeleteCourseTeacherHandler(cfg)))
|
|
|
|
|
|
}
|
2025-11-01 23:51:51 +08:00
|
|
|
|
|
2025-10-04 20:48:50 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return r
|
|
|
|
|
|
}
|