Files
hldrCenter/server/router/router.go

212 lines
10 KiB
Go
Raw Normal View History

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-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-10-04 20:48:50 +08:00
}
return r
}