Files
hldrCenter/server/router/router.go
2025-11-01 23:01:31 +08:00

232 lines
12 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package router
import (
"github.com/JACKYMYPERSON/hldrCenter/config"
"github.com/JACKYMYPERSON/hldrCenter/internal/article/handler/article"
"github.com/JACKYMYPERSON/hldrCenter/internal/baseoverview/handler/baseOverview"
"github.com/JACKYMYPERSON/hldrCenter/internal/course/handler/course"
"github.com/JACKYMYPERSON/hldrCenter/internal/course_content/handler/course_content"
"github.com/JACKYMYPERSON/hldrCenter/internal/devproject/handler/devproject"
"github.com/JACKYMYPERSON/hldrCenter/internal/file/handler/fileupload"
"github.com/JACKYMYPERSON/hldrCenter/internal/meeting/handler/meeting"
"github.com/JACKYMYPERSON/hldrCenter/internal/meetingspeaker/handler/meeting_speaker"
"github.com/JACKYMYPERSON/hldrCenter/internal/pageimgs/handler/pageImage"
ping "github.com/JACKYMYPERSON/hldrCenter/internal/ping/handler/ping"
"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"
"github.com/JACKYMYPERSON/hldrCenter/internal/teaching_case/handler/teaching_case"
uploadimg "github.com/JACKYMYPERSON/hldrCenter/internal/upload/handler/upload"
"github.com/JACKYMYPERSON/hldrCenter/internal/video_case/handler/video_case"
"github.com/JACKYMYPERSON/hldrCenter/middleware"
"github.com/gin-gonic/gin"
)
// SetupRouter 初始化路由
func SetupRouter(cfg *config.Config) *gin.Engine {
r := gin.Default()
// 关键:跨域中间件必须在所有路由定义之前应用
r.Use(middleware.CorsMiddleware(&cfg.Server))
// 定义路由组(必须在中间件之后)
api := r.Group("/api")
{
api.POST("/upload/image", uploadimg.UploadImageHandler(cfg))
api.POST("/upload/cover", uploadimg.UploadImageHandler(cfg))
api.POST("/upload/file", fileupload.UploadFileHandler(cfg))
api.GET("/ping", gin.WrapF(ping.PingHandler()))
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)))
}
baseOverviewapi := api.Group("/base-overview") // 用资源路径区分,避免与根路径冲突
{
// 获取基地概况(对应 service 中的 GET /
baseOverviewapi.GET("", gin.WrapH(baseOverview.GetBaseOverviewHandler(cfg)))
// 部分更新基地概况(对应 service 中的 PATCH /
baseOverviewapi.PATCH("", gin.WrapH(baseOverview.UpdateBaseOverviewPartialHandler(cfg)))
}
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)))
}
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)))
}
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)))
}
speakers := api.Group("/speakers")
{
speakers.POST("/meetingspeakers", gin.WrapH(meeting_speaker.ListSpeakersByMeetingHandler(cfg)))
// 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)))
}
// ------------ 社会服务基础模块 ------------
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)))
}
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)))
}
// ------------ 教学案例模块 ------------
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)))
}
// ------------ 课程内容模块 ------------
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)))
}
}
return r
}