From addcb79225c4653d3deb9f89f0a2267e0d004ebd Mon Sep 17 00:00:00 2001 From: mayiming <1627832236@qq.com> Date: Sun, 2 Nov 2025 00:31:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=AF=BE=E7=A8=8B=E6=95=99?= =?UTF-8?q?=E5=B8=88Model?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../internal/model/courseteachermodel.go | 29 ++++++ .../internal/model/courseteachermodel_gen.go | 91 +++++++++++++++++++ .../course_teacher/internal/model/vars.go | 5 + 3 files changed, 125 insertions(+) create mode 100644 server/internal/course_teacher/internal/model/courseteachermodel.go create mode 100644 server/internal/course_teacher/internal/model/courseteachermodel_gen.go create mode 100644 server/internal/course_teacher/internal/model/vars.go diff --git a/server/internal/course_teacher/internal/model/courseteachermodel.go b/server/internal/course_teacher/internal/model/courseteachermodel.go new file mode 100644 index 00000000..c29215dd --- /dev/null +++ b/server/internal/course_teacher/internal/model/courseteachermodel.go @@ -0,0 +1,29 @@ +package model + +import "github.com/zeromicro/go-zero/core/stores/sqlx" + +var _ CourseTeacherModel = (*customCourseTeacherModel)(nil) + +type ( + // CourseTeacherModel is an interface to be customized, add more methods here, + // and implement the added methods in customCourseTeacherModel. + CourseTeacherModel interface { + courseTeacherModel + withSession(session sqlx.Session) CourseTeacherModel + } + + customCourseTeacherModel struct { + *defaultCourseTeacherModel + } +) + +// NewCourseTeacherModel returns a model for the database table. +func NewCourseTeacherModel(conn sqlx.SqlConn) CourseTeacherModel { + return &customCourseTeacherModel{ + defaultCourseTeacherModel: newCourseTeacherModel(conn), + } +} + +func (m *customCourseTeacherModel) withSession(session sqlx.Session) CourseTeacherModel { + return NewCourseTeacherModel(sqlx.NewSqlConnFromSession(session)) +} diff --git a/server/internal/course_teacher/internal/model/courseteachermodel_gen.go b/server/internal/course_teacher/internal/model/courseteachermodel_gen.go new file mode 100644 index 00000000..1b1aaf56 --- /dev/null +++ b/server/internal/course_teacher/internal/model/courseteachermodel_gen.go @@ -0,0 +1,91 @@ +// 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 + } + + 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 `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) tableName() string { + return m.table +} diff --git a/server/internal/course_teacher/internal/model/vars.go b/server/internal/course_teacher/internal/model/vars.go new file mode 100644 index 00000000..69ca814e --- /dev/null +++ b/server/internal/course_teacher/internal/model/vars.go @@ -0,0 +1,5 @@ +package model + +import "github.com/zeromicro/go-zero/core/stores/sqlx" + +var ErrNotFound = sqlx.ErrNotFound