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

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
}