From 4bbdeb9ef6445638f6350f580b4bfd8afec26b53 Mon Sep 17 00:00:00 2001 From: mayiming <1627832236@qq.com> Date: Sat, 1 Nov 2025 22:39:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0adminModel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/internal/model/adminmodel.go | 29 ++++++ .../admin/internal/model/adminmodel_gen.go | 93 +++++++++++++++++++ server/internal/admin/internal/model/vars.go | 5 + 3 files changed, 127 insertions(+) create mode 100644 server/internal/admin/internal/model/adminmodel.go create mode 100644 server/internal/admin/internal/model/adminmodel_gen.go create mode 100644 server/internal/admin/internal/model/vars.go diff --git a/server/internal/admin/internal/model/adminmodel.go b/server/internal/admin/internal/model/adminmodel.go new file mode 100644 index 00000000..d759e966 --- /dev/null +++ b/server/internal/admin/internal/model/adminmodel.go @@ -0,0 +1,29 @@ +package model + +import "github.com/zeromicro/go-zero/core/stores/sqlx" + +var _ AdminModel = (*customAdminModel)(nil) + +type ( + // AdminModel is an interface to be customized, add more methods here, + // and implement the added methods in customAdminModel. + AdminModel interface { + adminModel + withSession(session sqlx.Session) AdminModel + } + + customAdminModel struct { + *defaultAdminModel + } +) + +// NewAdminModel returns a model for the database table. +func NewAdminModel(conn sqlx.SqlConn) AdminModel { + return &customAdminModel{ + defaultAdminModel: newAdminModel(conn), + } +} + +func (m *customAdminModel) withSession(session sqlx.Session) AdminModel { + return NewAdminModel(sqlx.NewSqlConnFromSession(session)) +} diff --git a/server/internal/admin/internal/model/adminmodel_gen.go b/server/internal/admin/internal/model/adminmodel_gen.go new file mode 100644 index 00000000..3c093388 --- /dev/null +++ b/server/internal/admin/internal/model/adminmodel_gen.go @@ -0,0 +1,93 @@ +// Code generated by goctl. DO NOT EDIT. +// versions: +// goctl version: 1.9.1 + +package model + +import ( + "context" + "database/sql" + "fmt" + "strings" + "time" + + "github.com/zeromicro/go-zero/core/stores/builder" + "github.com/zeromicro/go-zero/core/stores/sqlx" + "github.com/zeromicro/go-zero/core/stringx" +) + +var ( + adminFieldNames = builder.RawFieldNames(&Admin{}) + adminRows = strings.Join(adminFieldNames, ",") + adminRowsExpectAutoSet = strings.Join(stringx.Remove(adminFieldNames, "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",") + adminRowsWithPlaceHolder = strings.Join(stringx.Remove(adminFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?" +) + +type ( + adminModel interface { + Insert(ctx context.Context, data *Admin) (sql.Result, error) + FindOne(ctx context.Context, id int64) (*Admin, error) + Update(ctx context.Context, data *Admin) error + Delete(ctx context.Context, id int64) error + } + + defaultAdminModel struct { + conn sqlx.SqlConn + table string + } + + Admin struct { + Id int64 `db:"id"` // 用户ID + Username sql.NullString `db:"username"` + Password string `db:"password"` // 管理员密码 + CoverUrl sql.NullString `db:"cover_url"` + Intro sql.NullString `db:"intro"` + CreateTime time.Time `db:"create_time"` + UpdateTime time.Time `db:"update_time"` + Role sql.NullString `db:"role"` + Status int64 `db:"status"` // 1表示启用,0表示禁用 + } +) + +func newAdminModel(conn sqlx.SqlConn) *defaultAdminModel { + return &defaultAdminModel{ + conn: conn, + table: "`admin`", + } +} + +func (m *defaultAdminModel) 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 *defaultAdminModel) FindOne(ctx context.Context, id int64) (*Admin, error) { + query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", adminRows, m.table) + var resp Admin + 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 *defaultAdminModel) Insert(ctx context.Context, data *Admin) (sql.Result, error) { + query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?)", m.table, adminRowsExpectAutoSet) + ret, err := m.conn.ExecCtx(ctx, query, data.Id, data.Username, data.Password, data.CoverUrl, data.Intro, data.Role, data.Status) + return ret, err +} + +func (m *defaultAdminModel) Update(ctx context.Context, data *Admin) error { + query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, adminRowsWithPlaceHolder) + _, err := m.conn.ExecCtx(ctx, query, data.Username, data.Password, data.CoverUrl, data.Intro, data.Role, data.Status, data.Id) + return err +} + +func (m *defaultAdminModel) tableName() string { + return m.table +} diff --git a/server/internal/admin/internal/model/vars.go b/server/internal/admin/internal/model/vars.go new file mode 100644 index 00000000..69ca814e --- /dev/null +++ b/server/internal/admin/internal/model/vars.go @@ -0,0 +1,5 @@ +package model + +import "github.com/zeromicro/go-zero/core/stores/sqlx" + +var ErrNotFound = sqlx.ErrNotFound