package model import ( "database/sql" "fmt" "strings" "time" "git.i2edu.net/i2/go-zero/core/stores/cache" "git.i2edu.net/i2/go-zero/core/stores/sqlc" "git.i2edu.net/i2/go-zero/core/stores/sqlx" "git.i2edu.net/i2/go-zero/core/stringx" "git.i2edu.net/i2/go-zero/tools/goctl/model/sql/builderx" ) var ( i2billMktPartTimeUserFieldNames = builderx.RawFieldNames(&I2billMktPartTimeUser{}) i2billMktPartTimeUserRows = strings.Join(i2billMktPartTimeUserFieldNames, ",") i2billMktPartTimeUserRowsExpectAutoSet = strings.Join(stringx.Remove(i2billMktPartTimeUserFieldNames, "`id`", "`create_time`", "`update_time`"), ",") i2billMktPartTimeUserRowsWithPlaceHolder = strings.Join(stringx.Remove(i2billMktPartTimeUserFieldNames, "`id`", "`create_time`", "`update_time`"), "=?,") + "=?" cacheI2billMktPartTimeUserIdPrefix = "cache:i2billMktPartTimeUser:id:" ) type ( I2billMktPartTimeUserModel interface { Insert(data I2billMktPartTimeUser) (sql.Result, error) FindOne(id int64) (*I2billMktPartTimeUser, error) Update(data I2billMktPartTimeUser) error Delete(id int64) error } defaultI2billMktPartTimeUserModel struct { sqlc.CachedConn table string } I2billMktPartTimeUser struct { CreateTime time.Time `db:"create_time"` LastUpdateTime time.Time `db:"last_update_time"` DelFlag int64 `db:"del_flag"` MkId string `db:"mk_id"` // 所属erp mk id CreateBy int64 `db:"create_by"` CheckState int64 `db:"check_state"` // 审核状态 CheckDesc string `db:"check_desc"` // 审核失败描述 CityId int64 `db:"city_id"` // 城市 IponeNumber string `db:"ipone_number"` Sex int64 `db:"sex"` Target int64 `db:"target"` // 目标人数 UserId int64 `db:"user_id"` // user_id LastUpdateBy int64 `db:"last_update_by"` Id int64 `db:"id"` Name string `db:"name"` } ) func NewI2billMktPartTimeUserModel(conn sqlx.SqlConn, c cache.CacheConf) I2billMktPartTimeUserModel { return &defaultI2billMktPartTimeUserModel{ CachedConn: sqlc.NewConn(conn, c), table: "`i2bill_mkt_part_time_user`", } } func (m *defaultI2billMktPartTimeUserModel) Insert(data I2billMktPartTimeUser) (sql.Result, error) { query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, i2billMktPartTimeUserRowsExpectAutoSet) ret, err := m.ExecNoCache(query, data.LastUpdateTime, data.DelFlag, data.MkId, data.CreateBy, data.CheckState, data.CheckDesc, data.CityId, data.IponeNumber, data.Sex, data.Target, data.UserId, data.LastUpdateBy, data.Name) return ret, err } func (m *defaultI2billMktPartTimeUserModel) FindOne(id int64) (*I2billMktPartTimeUser, error) { i2billMktPartTimeUserIdKey := fmt.Sprintf("%s%v", cacheI2billMktPartTimeUserIdPrefix, id) var resp I2billMktPartTimeUser err := m.QueryRow(&resp, i2billMktPartTimeUserIdKey, func(conn sqlx.SqlConn, v interface{}) error { query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", i2billMktPartTimeUserRows, m.table) return conn.QueryRow(v, query, id) }) switch err { case nil: return &resp, nil case sqlc.ErrNotFound: return nil, ErrNotFound default: return nil, err } } func (m *defaultI2billMktPartTimeUserModel) Update(data I2billMktPartTimeUser) error { i2billMktPartTimeUserIdKey := fmt.Sprintf("%s%v", cacheI2billMktPartTimeUserIdPrefix, data.Id) _, err := m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) { query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, i2billMktPartTimeUserRowsWithPlaceHolder) return conn.Exec(query, data.LastUpdateTime, data.DelFlag, data.MkId, data.CreateBy, data.CheckState, data.CheckDesc, data.CityId, data.IponeNumber, data.Sex, data.Target, data.UserId, data.LastUpdateBy, data.Name, data.Id) }, i2billMktPartTimeUserIdKey) return err } func (m *defaultI2billMktPartTimeUserModel) Delete(id int64) error { i2billMktPartTimeUserIdKey := fmt.Sprintf("%s%v", cacheI2billMktPartTimeUserIdPrefix, id) _, err := m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) { query := fmt.Sprintf("delete from %s where `id` = ?", m.table) return conn.Exec(query, id) }, i2billMktPartTimeUserIdKey) return err } func (m *defaultI2billMktPartTimeUserModel) formatPrimary(primary interface{}) string { return fmt.Sprintf("%s%v", cacheI2billMktPartTimeUserIdPrefix, primary) } func (m *defaultI2billMktPartTimeUserModel) queryPrimary(conn sqlx.SqlConn, v, primary interface{}) error { query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", i2billMktPartTimeUserRows, m.table) return conn.QueryRow(v, query, primary) }