添加课程的api和sql
This commit is contained in:
75
server/api/course.api
Normal file
75
server/api/course.api
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
// 课程请求结构体
|
||||||
|
type CreateCourseReq {
|
||||||
|
Title string `json:"title" validate:"required"` // 课程标题
|
||||||
|
Subtitle string `json:"subtitle"` // 课程副标题
|
||||||
|
CoverUrl string `json:"cover_url"` // 课程封面图URL
|
||||||
|
Intro string `json:"intro"` // 课程简介
|
||||||
|
Status int8 `json:"status" default:"1"` // 课程状态(0删除,1-已发布)
|
||||||
|
}
|
||||||
|
|
||||||
|
type UpdateCourseReq {
|
||||||
|
Id int64 `json:"id" validate:"required"` // 课程ID
|
||||||
|
Title string `json:"title"` // 课程标题
|
||||||
|
Subtitle string `json:"subtitle"` // 课程副标题
|
||||||
|
CoverUrl string `json:"cover_url"` // 课程封面图URL
|
||||||
|
Intro string `json:"intro"` // 课程简介
|
||||||
|
Status int8 `json:"status"` // 课程状态(0删除,1-已发布)
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetCourseReq {
|
||||||
|
Id int64 `json:"id" validate:"required"` // 课程ID
|
||||||
|
}
|
||||||
|
|
||||||
|
type DeleteCourseReq {
|
||||||
|
Id int64 `json:"id" validate:"required"` // 课程ID
|
||||||
|
}
|
||||||
|
|
||||||
|
type ListCourseReq {
|
||||||
|
Page int `json:"page" default:"1"` // 页码
|
||||||
|
Size int `json:"size" default:"10"` // 每页数量
|
||||||
|
Status int8 `json:"status"` // 课程状态筛选
|
||||||
|
Keyword string `json:"keyword"` // 搜索关键词(标题/副标题)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 课程响应结构体
|
||||||
|
type CourseResp {
|
||||||
|
Id int64 `json:"id"` // 课程ID
|
||||||
|
Title string `json:"title"` // 课程标题
|
||||||
|
Subtitle string `json:"subtitle"` // 课程副标题
|
||||||
|
CoverUrl string `json:"cover_url"` // 课程封面图URL
|
||||||
|
Intro string `json:"intro"` // 课程简介
|
||||||
|
Status int8 `json:"status"` // 课程状态
|
||||||
|
CreateTime string `json:"create_time"` // 创建时间
|
||||||
|
UpdateTime string `json:"update_time"` // 更新时间
|
||||||
|
}
|
||||||
|
|
||||||
|
type ListCourseResp {
|
||||||
|
Total int64 `json:"total"` // 总条数
|
||||||
|
List []CourseResp `json:"list"` // 课程列表
|
||||||
|
}
|
||||||
|
|
||||||
|
type BaseResp {
|
||||||
|
Code int `json:"code"` // 状态码(0成功,非0失败)
|
||||||
|
Msg string `json:"msg"` // 提示信息
|
||||||
|
}
|
||||||
|
|
||||||
|
@server (
|
||||||
|
group: course
|
||||||
|
)
|
||||||
|
service course-api {
|
||||||
|
@handler CreateCourseHandler
|
||||||
|
post /api/courses (CreateCourseReq) returns (BaseResp)
|
||||||
|
|
||||||
|
@handler UpdateCourseHandler
|
||||||
|
put /api/courses (UpdateCourseReq) returns (BaseResp)
|
||||||
|
|
||||||
|
@handler GetCourseHandler
|
||||||
|
get /api/courses/:id (GetCourseReq) returns (CourseResp)
|
||||||
|
|
||||||
|
@handler DeleteCourseHandler
|
||||||
|
delete /api/courses/:id (DeleteCourseReq) returns (BaseResp)
|
||||||
|
|
||||||
|
@handler ListCourseHandler
|
||||||
|
get /api/courses (ListCourseReq) returns (ListCourseResp)
|
||||||
|
}
|
||||||
|
|
||||||
11
server/sql/course.sql
Normal file
11
server/sql/course.sql
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
CREATE TABLE `course` (
|
||||||
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '课程ID(主键)',
|
||||||
|
`title` varchar(255) NOT NULL COMMENT '课程标题',
|
||||||
|
`subtitle` varchar(255) DEFAULT '' COMMENT '课程副标题',
|
||||||
|
`cover_url` varchar(512) DEFAULT '' COMMENT '课程封面图URL',
|
||||||
|
`intro` text COMMENT '课程简介(对应“课程简介”模块)',
|
||||||
|
`status` tinyint DEFAULT 1 COMMENT '课程状态(0删除,1-已发布)',
|
||||||
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='课程主表';
|
||||||
Reference in New Issue
Block a user