You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.2 KiB
Go
47 lines
1.2 KiB
Go
package dao
|
|
|
|
import (
|
|
"awesomeProject/internal/model/do"
|
|
"context"
|
|
|
|
"github.com/gogf/gf/v2/database/gdb"
|
|
)
|
|
|
|
// CourseDAO 定义了课程数据访问对象。
|
|
type CourseDAO struct {
|
|
DB gdb.DB
|
|
}
|
|
|
|
// NewCourseDAO 创建一个新的课程数据访问对象。
|
|
func NewCourseDAO(db gdb.DB) *CourseDAO {
|
|
return &CourseDAO{DB: db}
|
|
}
|
|
|
|
// CreateCourse 向数据库中插入新课程。
|
|
func (d *CourseDAO) CreateCourse(ctx context.Context, course *do.CourseDO) error {
|
|
_, err := d.DB.Model("course").Data(course).Insert()
|
|
return err
|
|
}
|
|
|
|
// GetCourseByID 根据课程ID从数据库中查询课程信息。
|
|
func (d *CourseDAO) GetCourseByID(ctx context.Context, id int64) (*do.CourseDO, error) {
|
|
course := &do.CourseDO{}
|
|
err := d.DB.Model("course").Where("id", id).Scan(course)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return course, nil
|
|
}
|
|
|
|
// UpdateCourse 更新数据库中的课程信息。
|
|
func (d *CourseDAO) UpdateCourse(ctx context.Context, course *do.CourseDO) error {
|
|
_, err := d.DB.Model("course").Data(course).Where("id", course.ID).Update()
|
|
return err
|
|
}
|
|
|
|
// DeleteCourse 删除数据库中的课程。
|
|
func (d *CourseDAO) DeleteCourse(ctx context.Context, id int64) error {
|
|
_, err := d.DB.Model("course").Where("id", id).Delete()
|
|
return err
|
|
}
|