Files
hldrCenter/server/internal/course_teacher/internal/model/courseteachermodel_gen.go
2025-11-02 23:52:32 +08:00

151 lines
5.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Code generated by goctl. DO NOT EDIT.
// versions:
// goctl version: 1.9.1
package model
import (
"context"
"database/sql"
"fmt"
"strings"
"github.com/zeromicro/go-zero/core/stores/builder"
"github.com/zeromicro/go-zero/core/stores/sqlx"
"github.com/zeromicro/go-zero/core/stringx"
)
var (
courseTeacherFieldNames = builder.RawFieldNames(&CourseTeacher{})
courseTeacherRows = strings.Join(courseTeacherFieldNames, ",")
courseTeacherRowsExpectAutoSet = strings.Join(stringx.Remove(courseTeacherFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
courseTeacherRowsWithPlaceHolder = strings.Join(stringx.Remove(courseTeacherFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
)
type (
courseTeacherModel interface {
Insert(ctx context.Context, data *CourseTeacher) (sql.Result, error)
FindOne(ctx context.Context, id int64) (*CourseTeacher, error)
Update(ctx context.Context, data *CourseTeacher) error
Delete(ctx context.Context, id int64) error
CountByConditions(ctx context.Context, courseId int64) (int64, error)
FindByConditionsWithPage(
ctx context.Context,
courseId int64,
pageSize, offset int,
) ([]*CourseTeacher, error)
}
defaultCourseTeacherModel struct {
conn sqlx.SqlConn
table string
}
CourseTeacher struct {
Id int64 `db:"id"` // 关联ID主键自增
CourseId int64 `db:"course_id"` // 关联课程ID
TeacherId int64 `db:"teacher_id"` // 教师ID关联用户表user.id
Name string `db:"name"` // 教师姓名
Title string `db:"title"` // 教师头衔如“XXX大学教授”
Avatar string `db:"avatar"` // 教师头像URL
Intro sql.NullString `db:"intro"` // 教师简介
Sort int64 `db:"sort"` // 排序(团队展示顺序,数值越小越靠前)
}
)
func newCourseTeacherModel(conn sqlx.SqlConn) *defaultCourseTeacherModel {
return &defaultCourseTeacherModel{
conn: conn,
table: "`course_teacher`",
}
}
func (m *defaultCourseTeacherModel) Delete(ctx context.Context, id int64) error {
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
_, err := m.conn.ExecCtx(ctx, query, id)
return err
}
func (m *defaultCourseTeacherModel) FindOne(ctx context.Context, id int64) (*CourseTeacher, error) {
query := fmt.Sprintf("select %s from %s where `course_id` = ? limit 1", courseTeacherRows, m.table)
var resp CourseTeacher
err := m.conn.QueryRowCtx(ctx, &resp, query, id)
switch err {
case nil:
return &resp, nil
case sqlx.ErrNotFound:
return nil, ErrNotFound
default:
return nil, err
}
}
func (m *defaultCourseTeacherModel) Insert(ctx context.Context, data *CourseTeacher) (sql.Result, error) {
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?)", m.table, courseTeacherRowsExpectAutoSet)
ret, err := m.conn.ExecCtx(ctx, query, data.CourseId, data.TeacherId, data.Name, data.Title, data.Avatar, data.Intro, data.Sort)
return ret, err
}
func (m *defaultCourseTeacherModel) Update(ctx context.Context, data *CourseTeacher) error {
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, courseTeacherRowsWithPlaceHolder)
_, err := m.conn.ExecCtx(ctx, query, data.CourseId, data.TeacherId, data.Name, data.Title, data.Avatar, data.Intro, data.Sort, data.Id)
return err
}
func (m *defaultCourseTeacherModel) CountByConditions(ctx context.Context, courseId int64) (int64, error) { // 移除teacherId参数
var count int64
baseQuery := fmt.Sprintf("select count(*) from %s", m.table)
var whereClauses []string
var args []interface{}
// 只保留course_id的筛选如果需要删除teacher_id的筛选逻辑
if courseId > 0 {
whereClauses = append(whereClauses, "`course_id` = ?")
args = append(args, courseId)
}
if len(whereClauses) > 0 {
baseQuery += " where " + strings.Join(whereClauses, " and ")
}
err := m.conn.QueryRowCtx(ctx, &count, baseQuery, args...)
return count, err
}
func (m *defaultCourseTeacherModel) FindByConditionsWithPage(
ctx context.Context,
courseId int64, // 移除teacherId参数
pageSize, offset int,
) ([]*CourseTeacher, error) {
var teachers []*CourseTeacher
baseQuery := fmt.Sprintf("select %s from %s", courseTeacherRows, m.table)
var whereClauses []string
var args []interface{}
// 只保留course_id的筛选如果需要删除teacher_id的筛选逻辑
if courseId > 0 {
whereClauses = append(whereClauses, "`course_id` = ?")
args = append(args, courseId)
}
// 分页参数
pageQuery := " order by `sort` asc limit ?, ?"
args = append(args, offset, pageSize)
if len(whereClauses) > 0 {
baseQuery += " where " + strings.Join(whereClauses, " and ") + pageQuery
} else {
baseQuery += pageQuery
}
err := m.conn.QueryRowsCtx(ctx, &teachers, baseQuery, args...)
if err != nil {
return nil, err
}
return teachers, nil
}
func (m *defaultCourseTeacherModel) tableName() string {
return m.table
}