From 0ba0bda7f805b0c92e565998c4078b9383d54ab4 Mon Sep 17 00:00:00 2001 From: GoCo Date: Sat, 26 Jul 2025 11:40:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=A2=9E=E5=8A=A0=E5=88=86=E7=B1=BBid?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/api/api/lesson/v1/lesson.go | 4 +++- .../api/lesson/lesson_v1_lesson_list.go | 16 ++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/server/api/api/lesson/v1/lesson.go b/server/api/api/lesson/v1/lesson.go index f76843e..31fa269 100644 --- a/server/api/api/lesson/v1/lesson.go +++ b/server/api/api/lesson/v1/lesson.go @@ -8,7 +8,9 @@ import ( // 获取课程列表请求 type LessonListReq struct { - g.Meta `path:"/lesson/list" method:"get" tags:"课程" summary:"获取课程列表"` + g.Meta `path:"/lesson/list" method:"get" tags:"课程" summary:"获取课程列表"` + CategoryId int64 `json:"categoryId" dc:"分类ID"` + Tag string `json:"tag" dc:"标签"` } // 获取课程列表响应 diff --git a/server/internal/controller/api/lesson/lesson_v1_lesson_list.go b/server/internal/controller/api/lesson/lesson_v1_lesson_list.go index ebec340..5ee79b4 100644 --- a/server/internal/controller/api/lesson/lesson_v1_lesson_list.go +++ b/server/internal/controller/api/lesson/lesson_v1_lesson_list.go @@ -12,17 +12,29 @@ import ( ) func (c *ControllerV1) LessonList(ctx context.Context, req *v1.LessonListReq) (res *v1.LessonListRes, err error) { + // 构建查询条件 + query := dao.Lesson.Ctx(ctx) + + // 按分类ID过滤 + if req.CategoryId > 0 { + query = query.Where("category_id = ?", req.CategoryId) + } + + // TODO 按标签过滤 + // 查询课程列表 var list []*entity.Lesson - err = dao.Lesson.Ctx(ctx).Scan(&list) + err = query.Scan(&list) if err != nil { return nil, gerror.NewCode(gcode.CodeDbOperationError, "数据库错误") } + // 统计总数 - total, err := dao.Lesson.Ctx(ctx).Count() + total, err := query.Count() if err != nil { return nil, gerror.NewCode(gcode.CodeDbOperationError, "统计总数失败") } + res = &v1.LessonListRes{ List: list, Total: total,