From cd04e94766f892560bdaa434c5230ac4dc7eefa5 Mon Sep 17 00:00:00 2001 From: mayiming <1627832236@qq.com> Date: Sat, 1 Nov 2025 23:47:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AF=BE=E7=A8=8B=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8Model?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../internal/model/courseactivitymodel.go | 29 ++++++ .../internal/model/courseactivitymodel_gen.go | 91 +++++++++++++++++++ .../course_activity/internal/model/vars.go | 5 + 3 files changed, 125 insertions(+) create mode 100644 server/internal/course_activity/internal/model/courseactivitymodel.go create mode 100644 server/internal/course_activity/internal/model/courseactivitymodel_gen.go create mode 100644 server/internal/course_activity/internal/model/vars.go diff --git a/server/internal/course_activity/internal/model/courseactivitymodel.go b/server/internal/course_activity/internal/model/courseactivitymodel.go new file mode 100644 index 00000000..927e6cb4 --- /dev/null +++ b/server/internal/course_activity/internal/model/courseactivitymodel.go @@ -0,0 +1,29 @@ +package model + +import "github.com/zeromicro/go-zero/core/stores/sqlx" + +var _ CourseActivityModel = (*customCourseActivityModel)(nil) + +type ( + // CourseActivityModel is an interface to be customized, add more methods here, + // and implement the added methods in customCourseActivityModel. + CourseActivityModel interface { + courseActivityModel + withSession(session sqlx.Session) CourseActivityModel + } + + customCourseActivityModel struct { + *defaultCourseActivityModel + } +) + +// NewCourseActivityModel returns a model for the database table. +func NewCourseActivityModel(conn sqlx.SqlConn) CourseActivityModel { + return &customCourseActivityModel{ + defaultCourseActivityModel: newCourseActivityModel(conn), + } +} + +func (m *customCourseActivityModel) withSession(session sqlx.Session) CourseActivityModel { + return NewCourseActivityModel(sqlx.NewSqlConnFromSession(session)) +} diff --git a/server/internal/course_activity/internal/model/courseactivitymodel_gen.go b/server/internal/course_activity/internal/model/courseactivitymodel_gen.go new file mode 100644 index 00000000..72faf33e --- /dev/null +++ b/server/internal/course_activity/internal/model/courseactivitymodel_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 ( + courseActivityFieldNames = builder.RawFieldNames(&CourseActivity{}) + courseActivityRows = strings.Join(courseActivityFieldNames, ",") + courseActivityRowsExpectAutoSet = strings.Join(stringx.Remove(courseActivityFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",") + courseActivityRowsWithPlaceHolder = strings.Join(stringx.Remove(courseActivityFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?" +) + +type ( + courseActivityModel interface { + Insert(ctx context.Context, data *CourseActivity) (sql.Result, error) + FindOne(ctx context.Context, id int64) (*CourseActivity, error) + Update(ctx context.Context, data *CourseActivity) error + Delete(ctx context.Context, id int64) error + } + + defaultCourseActivityModel struct { + conn sqlx.SqlConn + table string + } + + CourseActivity struct { + Id int64 `db:"id"` // 活动ID(主键,自增) + CourseId int64 `db:"course_id"` // 关联课程ID(关联course表的id) + Title string `db:"title"` // 活动标题(如“第1章作业”“期中测试”) + ActivityType int64 `db:"activity_type"` // 活动类型(1-作业,2-考试,3-讨论,4-直播) + Content sql.NullString `db:"content"` // 活动详情(如作业要求、考试说明) + StartTime sql.NullTime `db:"start_time"` // 活动开始时间(如直播时间、作业发布时间) + EndTime sql.NullTime `db:"end_time"` // 活动结束时间(如作业截止时间) + Sort int64 `db:"sort"` // 排序(数值越小越靠前) + } +) + +func newCourseActivityModel(conn sqlx.SqlConn) *defaultCourseActivityModel { + return &defaultCourseActivityModel{ + conn: conn, + table: "`course_activity`", + } +} + +func (m *defaultCourseActivityModel) 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 *defaultCourseActivityModel) FindOne(ctx context.Context, id int64) (*CourseActivity, error) { + query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", courseActivityRows, m.table) + var resp CourseActivity + 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 *defaultCourseActivityModel) Insert(ctx context.Context, data *CourseActivity) (sql.Result, error) { + query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?)", m.table, courseActivityRowsExpectAutoSet) + ret, err := m.conn.ExecCtx(ctx, query, data.CourseId, data.Title, data.ActivityType, data.Content, data.StartTime, data.EndTime, data.Sort) + return ret, err +} + +func (m *defaultCourseActivityModel) Update(ctx context.Context, data *CourseActivity) error { + query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, courseActivityRowsWithPlaceHolder) + _, err := m.conn.ExecCtx(ctx, query, data.CourseId, data.Title, data.ActivityType, data.Content, data.StartTime, data.EndTime, data.Sort, data.Id) + return err +} + +func (m *defaultCourseActivityModel) tableName() string { + return m.table +} diff --git a/server/internal/course_activity/internal/model/vars.go b/server/internal/course_activity/internal/model/vars.go new file mode 100644 index 00000000..69ca814e --- /dev/null +++ b/server/internal/course_activity/internal/model/vars.go @@ -0,0 +1,5 @@ +package model + +import "github.com/zeromicro/go-zero/core/stores/sqlx" + +var ErrNotFound = sqlx.ErrNotFound