github.com/artisanhe/tools@v1.0.1-0.20210607022958-19a8fef2eb04/sqlx/gen/test/user__generated.go (about)

     1  package test
     2  
     3  import (
     4  	fmt "fmt"
     5  	time "time"
     6  
     7  	git_chinawayltd_com_golib_tools_courier_enumeration "github.com/artisanhe/tools/courier/enumeration"
     8  	git_chinawayltd_com_golib_tools_sqlx "github.com/artisanhe/tools/sqlx"
     9  	git_chinawayltd_com_golib_tools_sqlx_builder "github.com/artisanhe/tools/sqlx/builder"
    10  	git_chinawayltd_com_golib_tools_timelib "github.com/artisanhe/tools/timelib"
    11  )
    12  
    13  var UserTable *git_chinawayltd_com_golib_tools_sqlx_builder.Table
    14  
    15  func init() {
    16  	UserTable = DBTest.Register(&User{})
    17  }
    18  
    19  func (user *User) D() *git_chinawayltd_com_golib_tools_sqlx.Database {
    20  	return DBTest
    21  }
    22  
    23  func (user *User) T() *git_chinawayltd_com_golib_tools_sqlx_builder.Table {
    24  	return UserTable
    25  }
    26  
    27  func (user *User) TableName() string {
    28  	return "t_user"
    29  }
    30  
    31  // Deprecated use *.Field*() instead
    32  type UserFields struct {
    33  	Name       *git_chinawayltd_com_golib_tools_sqlx_builder.Column
    34  	Username   *git_chinawayltd_com_golib_tools_sqlx_builder.Column
    35  	Nickname   *git_chinawayltd_com_golib_tools_sqlx_builder.Column
    36  	Gender     *git_chinawayltd_com_golib_tools_sqlx_builder.Column
    37  	Birthday   *git_chinawayltd_com_golib_tools_sqlx_builder.Column
    38  	Boolean    *git_chinawayltd_com_golib_tools_sqlx_builder.Column
    39  	CreateTime *git_chinawayltd_com_golib_tools_sqlx_builder.Column
    40  	UpdateTime *git_chinawayltd_com_golib_tools_sqlx_builder.Column
    41  	ID         *git_chinawayltd_com_golib_tools_sqlx_builder.Column
    42  	Enabled    *git_chinawayltd_com_golib_tools_sqlx_builder.Column
    43  }
    44  
    45  // Deprecated use *.FieldKey*() instead
    46  var UserField = struct {
    47  	Name       string
    48  	Username   string
    49  	Nickname   string
    50  	Gender     string
    51  	Birthday   string
    52  	Boolean    string
    53  	CreateTime string
    54  	UpdateTime string
    55  	ID         string
    56  	Enabled    string
    57  }{
    58  	Name:       "Name",
    59  	Username:   "Username",
    60  	Nickname:   "Nickname",
    61  	Gender:     "Gender",
    62  	Birthday:   "Birthday",
    63  	Boolean:    "Boolean",
    64  	CreateTime: "CreateTime",
    65  	UpdateTime: "UpdateTime",
    66  	ID:         "ID",
    67  	Enabled:    "Enabled",
    68  }
    69  
    70  // Deprecated use *.Field*() instead
    71  func (user *User) Fields() *UserFields {
    72  	table := user.T()
    73  
    74  	return &UserFields{
    75  		Name:       table.F(user.FieldKeyName()),
    76  		Username:   table.F(user.FieldKeyUsername()),
    77  		Nickname:   table.F(user.FieldKeyNickname()),
    78  		Gender:     table.F(user.FieldKeyGender()),
    79  		Birthday:   table.F(user.FieldKeyBirthday()),
    80  		Boolean:    table.F(user.FieldKeyBoolean()),
    81  		CreateTime: table.F(user.FieldKeyCreateTime()),
    82  		UpdateTime: table.F(user.FieldKeyUpdateTime()),
    83  		ID:         table.F(user.FieldKeyID()),
    84  		Enabled:    table.F(user.FieldKeyEnabled()),
    85  	}
    86  }
    87  
    88  func (User) FieldKeyName() string {
    89  	return "Name"
    90  }
    91  
    92  func (user *User) FieldName() *git_chinawayltd_com_golib_tools_sqlx_builder.Column {
    93  	return user.T().F(user.FieldKeyName())
    94  }
    95  
    96  func (User) FieldKeyUsername() string {
    97  	return "Username"
    98  }
    99  
   100  func (user *User) FieldUsername() *git_chinawayltd_com_golib_tools_sqlx_builder.Column {
   101  	return user.T().F(user.FieldKeyUsername())
   102  }
   103  
   104  func (User) FieldKeyNickname() string {
   105  	return "Nickname"
   106  }
   107  
   108  func (user *User) FieldNickname() *git_chinawayltd_com_golib_tools_sqlx_builder.Column {
   109  	return user.T().F(user.FieldKeyNickname())
   110  }
   111  
   112  func (User) FieldKeyGender() string {
   113  	return "Gender"
   114  }
   115  
   116  func (user *User) FieldGender() *git_chinawayltd_com_golib_tools_sqlx_builder.Column {
   117  	return user.T().F(user.FieldKeyGender())
   118  }
   119  
   120  func (User) FieldKeyBirthday() string {
   121  	return "Birthday"
   122  }
   123  
   124  func (user *User) FieldBirthday() *git_chinawayltd_com_golib_tools_sqlx_builder.Column {
   125  	return user.T().F(user.FieldKeyBirthday())
   126  }
   127  
   128  func (User) FieldKeyBoolean() string {
   129  	return "Boolean"
   130  }
   131  
   132  func (user *User) FieldBoolean() *git_chinawayltd_com_golib_tools_sqlx_builder.Column {
   133  	return user.T().F(user.FieldKeyBoolean())
   134  }
   135  
   136  func (User) FieldKeyCreateTime() string {
   137  	return "CreateTime"
   138  }
   139  
   140  func (user *User) FieldCreateTime() *git_chinawayltd_com_golib_tools_sqlx_builder.Column {
   141  	return user.T().F(user.FieldKeyCreateTime())
   142  }
   143  
   144  func (User) FieldKeyUpdateTime() string {
   145  	return "UpdateTime"
   146  }
   147  
   148  func (user *User) FieldUpdateTime() *git_chinawayltd_com_golib_tools_sqlx_builder.Column {
   149  	return user.T().F(user.FieldKeyUpdateTime())
   150  }
   151  
   152  func (User) FieldKeyID() string {
   153  	return "ID"
   154  }
   155  
   156  func (user *User) FieldID() *git_chinawayltd_com_golib_tools_sqlx_builder.Column {
   157  	return user.T().F(user.FieldKeyID())
   158  }
   159  
   160  func (User) FieldKeyEnabled() string {
   161  	return "Enabled"
   162  }
   163  
   164  func (user *User) FieldEnabled() *git_chinawayltd_com_golib_tools_sqlx_builder.Column {
   165  	return user.T().F(user.FieldKeyEnabled())
   166  }
   167  
   168  func (user *User) IndexFieldNames() []string {
   169  	return []string{"ID", "Name", "Nickname", "Username"}
   170  }
   171  
   172  func (user *User) ConditionByStruct() *git_chinawayltd_com_golib_tools_sqlx_builder.Condition {
   173  	table := user.T()
   174  
   175  	fieldValues := git_chinawayltd_com_golib_tools_sqlx.FieldValuesFromStructByNonZero(user)
   176  
   177  	conditions := []*git_chinawayltd_com_golib_tools_sqlx_builder.Condition{}
   178  
   179  	for _, fieldName := range user.IndexFieldNames() {
   180  		if v, exists := fieldValues[fieldName]; exists {
   181  			conditions = append(conditions, table.F(fieldName).Eq(v))
   182  			delete(fieldValues, fieldName)
   183  		}
   184  	}
   185  
   186  	if len(conditions) == 0 {
   187  		panic(fmt.Errorf("at least one of field for indexes has value"))
   188  	}
   189  
   190  	for fieldName, v := range fieldValues {
   191  		conditions = append(conditions, table.F(fieldName).Eq(v))
   192  	}
   193  
   194  	condition := git_chinawayltd_com_golib_tools_sqlx_builder.And(conditions...)
   195  
   196  	condition = git_chinawayltd_com_golib_tools_sqlx_builder.And(condition, table.F("Enabled").Eq(git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__TRUE))
   197  
   198  	return condition
   199  }
   200  
   201  func (user *User) PrimaryKey() git_chinawayltd_com_golib_tools_sqlx.FieldNames {
   202  	return git_chinawayltd_com_golib_tools_sqlx.FieldNames{"ID"}
   203  }
   204  func (user *User) Indexes() git_chinawayltd_com_golib_tools_sqlx.Indexes {
   205  	return git_chinawayltd_com_golib_tools_sqlx.Indexes{
   206  		"I_nickname": git_chinawayltd_com_golib_tools_sqlx.FieldNames{"Nickname"},
   207  		"I_username": git_chinawayltd_com_golib_tools_sqlx.FieldNames{"Username"},
   208  	}
   209  }
   210  func (user *User) UniqueIndexes() git_chinawayltd_com_golib_tools_sqlx.Indexes {
   211  	return git_chinawayltd_com_golib_tools_sqlx.Indexes{"I_name": git_chinawayltd_com_golib_tools_sqlx.FieldNames{"Name", "Enabled"}}
   212  }
   213  
   214  func (user *User) Create(db *git_chinawayltd_com_golib_tools_sqlx.DB) error {
   215  	user.Enabled = git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__TRUE
   216  
   217  	if user.CreateTime.IsZero() {
   218  		user.CreateTime = git_chinawayltd_com_golib_tools_timelib.MySQLTimestamp(time.Now())
   219  	}
   220  	user.UpdateTime = user.CreateTime
   221  
   222  	stmt := user.D().
   223  		Insert(user).
   224  		Comment("User.Create")
   225  
   226  	dbRet := db.Do(stmt)
   227  	err := dbRet.Err()
   228  
   229  	if err == nil {
   230  		lastInsertID, _ := dbRet.LastInsertId()
   231  		user.ID = uint64(lastInsertID)
   232  	}
   233  
   234  	return err
   235  }
   236  
   237  func (user *User) DeleteByStruct(db *git_chinawayltd_com_golib_tools_sqlx.DB) (err error) {
   238  	table := user.T()
   239  
   240  	stmt := table.Delete().
   241  		Comment("User.DeleteByStruct").
   242  		Where(user.ConditionByStruct())
   243  
   244  	err = db.Do(stmt).Err()
   245  	return
   246  }
   247  
   248  func (user *User) CreateOnDuplicateWithUpdateFields(db *git_chinawayltd_com_golib_tools_sqlx.DB, updateFields []string) error {
   249  	if len(updateFields) == 0 {
   250  		panic(fmt.Errorf("must have update fields"))
   251  	}
   252  
   253  	user.Enabled = git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__TRUE
   254  
   255  	if user.CreateTime.IsZero() {
   256  		user.CreateTime = git_chinawayltd_com_golib_tools_timelib.MySQLTimestamp(time.Now())
   257  	}
   258  	user.UpdateTime = user.CreateTime
   259  
   260  	table := user.T()
   261  
   262  	fieldValues := git_chinawayltd_com_golib_tools_sqlx.FieldValuesFromStructByNonZero(user, updateFields...)
   263  
   264  	delete(fieldValues, "ID")
   265  
   266  	cols, vals := table.ColumnsAndValuesByFieldValues(fieldValues)
   267  
   268  	m := make(map[string]bool, len(updateFields))
   269  	for _, field := range updateFields {
   270  		m[field] = true
   271  	}
   272  
   273  	// fields of unique index can not update
   274  	delete(m, "CreateTime")
   275  
   276  	for _, fieldNames := range user.UniqueIndexes() {
   277  		for _, field := range fieldNames {
   278  			delete(m, field)
   279  		}
   280  	}
   281  
   282  	if len(m) == 0 {
   283  		panic(fmt.Errorf("no fields for updates"))
   284  	}
   285  
   286  	for field := range fieldValues {
   287  		if !m[field] {
   288  			delete(fieldValues, field)
   289  		}
   290  	}
   291  
   292  	stmt := table.
   293  		Insert().Columns(cols).Values(vals...).
   294  		OnDuplicateKeyUpdate(table.AssignsByFieldValues(fieldValues)...).
   295  		Comment("User.CreateOnDuplicateWithUpdateFields")
   296  
   297  	return db.Do(stmt).Err()
   298  }
   299  
   300  func (user *User) FetchByID(db *git_chinawayltd_com_golib_tools_sqlx.DB) error {
   301  	user.Enabled = git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__TRUE
   302  
   303  	table := user.T()
   304  	stmt := table.Select().
   305  		Comment("User.FetchByID").
   306  		Where(git_chinawayltd_com_golib_tools_sqlx_builder.And(
   307  			table.F("ID").Eq(user.ID),
   308  			table.F("Enabled").Eq(user.Enabled),
   309  		))
   310  
   311  	return db.Do(stmt).Scan(user).Err()
   312  }
   313  
   314  func (user *User) FetchByIDForUpdate(db *git_chinawayltd_com_golib_tools_sqlx.DB) error {
   315  	user.Enabled = git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__TRUE
   316  
   317  	table := user.T()
   318  	stmt := table.Select().
   319  		Comment("User.FetchByIDForUpdate").
   320  		Where(git_chinawayltd_com_golib_tools_sqlx_builder.And(
   321  			table.F("ID").Eq(user.ID),
   322  			table.F("Enabled").Eq(user.Enabled),
   323  		)).
   324  		ForUpdate()
   325  
   326  	return db.Do(stmt).Scan(user).Err()
   327  }
   328  
   329  func (user *User) DeleteByID(db *git_chinawayltd_com_golib_tools_sqlx.DB) error {
   330  	user.Enabled = git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__TRUE
   331  
   332  	table := user.T()
   333  	stmt := table.Delete().
   334  		Comment("User.DeleteByID").
   335  		Where(git_chinawayltd_com_golib_tools_sqlx_builder.And(
   336  			table.F("ID").Eq(user.ID),
   337  			table.F("Enabled").Eq(user.Enabled),
   338  		))
   339  
   340  	return db.Do(stmt).Scan(user).Err()
   341  }
   342  
   343  func (user *User) UpdateByIDWithMap(db *git_chinawayltd_com_golib_tools_sqlx.DB, fieldValues git_chinawayltd_com_golib_tools_sqlx_builder.FieldValues) error {
   344  
   345  	if _, ok := fieldValues["UpdateTime"]; !ok {
   346  		fieldValues["UpdateTime"] = git_chinawayltd_com_golib_tools_timelib.MySQLTimestamp(time.Now())
   347  	}
   348  
   349  	user.Enabled = git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__TRUE
   350  
   351  	table := user.T()
   352  
   353  	delete(fieldValues, "ID")
   354  
   355  	stmt := table.Update().
   356  		Comment("User.UpdateByIDWithMap").
   357  		Set(table.AssignsByFieldValues(fieldValues)...).
   358  		Where(git_chinawayltd_com_golib_tools_sqlx_builder.And(
   359  			table.F("ID").Eq(user.ID),
   360  			table.F("Enabled").Eq(user.Enabled),
   361  		))
   362  
   363  	dbRet := db.Do(stmt).Scan(user)
   364  	err := dbRet.Err()
   365  	if err != nil {
   366  		return err
   367  	}
   368  
   369  	rowsAffected, _ := dbRet.RowsAffected()
   370  	if rowsAffected == 0 {
   371  		return user.FetchByID(db)
   372  	}
   373  	return nil
   374  }
   375  
   376  func (user *User) UpdateByIDWithStruct(db *git_chinawayltd_com_golib_tools_sqlx.DB, zeroFields ...string) error {
   377  	fieldValues := git_chinawayltd_com_golib_tools_sqlx.FieldValuesFromStructByNonZero(user, zeroFields...)
   378  	return user.UpdateByIDWithMap(db, fieldValues)
   379  }
   380  
   381  func (user *User) SoftDeleteByID(db *git_chinawayltd_com_golib_tools_sqlx.DB) error {
   382  	user.Enabled = git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__TRUE
   383  
   384  	table := user.T()
   385  
   386  	fieldValues := git_chinawayltd_com_golib_tools_sqlx_builder.FieldValues{}
   387  	fieldValues["Enabled"] = git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__FALSE
   388  
   389  	if _, ok := fieldValues["UpdateTime"]; !ok {
   390  		fieldValues["UpdateTime"] = git_chinawayltd_com_golib_tools_timelib.MySQLTimestamp(time.Now())
   391  	}
   392  
   393  	stmt := table.Update().
   394  		Comment("User.SoftDeleteByID").
   395  		Set(table.AssignsByFieldValues(fieldValues)...).
   396  		Where(git_chinawayltd_com_golib_tools_sqlx_builder.And(
   397  			table.F("ID").Eq(user.ID),
   398  			table.F("Enabled").Eq(user.Enabled),
   399  		))
   400  
   401  	dbRet := db.Do(stmt).Scan(user)
   402  	err := dbRet.Err()
   403  	if err != nil {
   404  		dbErr := git_chinawayltd_com_golib_tools_sqlx.DBErr(err)
   405  		if dbErr.IsConflict() {
   406  			return user.DeleteByID(db)
   407  		}
   408  		return err
   409  	}
   410  	return nil
   411  }
   412  
   413  func (user *User) FetchByName(db *git_chinawayltd_com_golib_tools_sqlx.DB) error {
   414  	user.Enabled = git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__TRUE
   415  
   416  	table := user.T()
   417  	stmt := table.Select().
   418  		Comment("User.FetchByName").
   419  		Where(git_chinawayltd_com_golib_tools_sqlx_builder.And(
   420  			table.F("Name").Eq(user.Name),
   421  			table.F("Enabled").Eq(user.Enabled),
   422  		))
   423  
   424  	return db.Do(stmt).Scan(user).Err()
   425  }
   426  
   427  func (user *User) FetchByNameForUpdate(db *git_chinawayltd_com_golib_tools_sqlx.DB) error {
   428  	user.Enabled = git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__TRUE
   429  
   430  	table := user.T()
   431  	stmt := table.Select().
   432  		Comment("User.FetchByNameForUpdate").
   433  		Where(git_chinawayltd_com_golib_tools_sqlx_builder.And(
   434  			table.F("Name").Eq(user.Name),
   435  			table.F("Enabled").Eq(user.Enabled),
   436  		)).
   437  		ForUpdate()
   438  
   439  	return db.Do(stmt).Scan(user).Err()
   440  }
   441  
   442  func (user *User) DeleteByName(db *git_chinawayltd_com_golib_tools_sqlx.DB) error {
   443  	user.Enabled = git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__TRUE
   444  
   445  	table := user.T()
   446  	stmt := table.Delete().
   447  		Comment("User.DeleteByName").
   448  		Where(git_chinawayltd_com_golib_tools_sqlx_builder.And(
   449  			table.F("Name").Eq(user.Name),
   450  			table.F("Enabled").Eq(user.Enabled),
   451  		))
   452  
   453  	return db.Do(stmt).Scan(user).Err()
   454  }
   455  
   456  func (user *User) UpdateByNameWithMap(db *git_chinawayltd_com_golib_tools_sqlx.DB, fieldValues git_chinawayltd_com_golib_tools_sqlx_builder.FieldValues) error {
   457  
   458  	if _, ok := fieldValues["UpdateTime"]; !ok {
   459  		fieldValues["UpdateTime"] = git_chinawayltd_com_golib_tools_timelib.MySQLTimestamp(time.Now())
   460  	}
   461  
   462  	user.Enabled = git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__TRUE
   463  
   464  	table := user.T()
   465  
   466  	delete(fieldValues, "ID")
   467  
   468  	stmt := table.Update().
   469  		Comment("User.UpdateByNameWithMap").
   470  		Set(table.AssignsByFieldValues(fieldValues)...).
   471  		Where(git_chinawayltd_com_golib_tools_sqlx_builder.And(
   472  			table.F("Name").Eq(user.Name),
   473  			table.F("Enabled").Eq(user.Enabled),
   474  		))
   475  
   476  	dbRet := db.Do(stmt).Scan(user)
   477  	err := dbRet.Err()
   478  	if err != nil {
   479  		return err
   480  	}
   481  
   482  	rowsAffected, _ := dbRet.RowsAffected()
   483  	if rowsAffected == 0 {
   484  		return user.FetchByName(db)
   485  	}
   486  	return nil
   487  }
   488  
   489  func (user *User) UpdateByNameWithStruct(db *git_chinawayltd_com_golib_tools_sqlx.DB, zeroFields ...string) error {
   490  	fieldValues := git_chinawayltd_com_golib_tools_sqlx.FieldValuesFromStructByNonZero(user, zeroFields...)
   491  	return user.UpdateByNameWithMap(db, fieldValues)
   492  }
   493  
   494  func (user *User) SoftDeleteByName(db *git_chinawayltd_com_golib_tools_sqlx.DB) error {
   495  	user.Enabled = git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__TRUE
   496  
   497  	table := user.T()
   498  
   499  	fieldValues := git_chinawayltd_com_golib_tools_sqlx_builder.FieldValues{}
   500  	fieldValues["Enabled"] = git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__FALSE
   501  
   502  	if _, ok := fieldValues["UpdateTime"]; !ok {
   503  		fieldValues["UpdateTime"] = git_chinawayltd_com_golib_tools_timelib.MySQLTimestamp(time.Now())
   504  	}
   505  
   506  	stmt := table.Update().
   507  		Comment("User.SoftDeleteByName").
   508  		Set(table.AssignsByFieldValues(fieldValues)...).
   509  		Where(git_chinawayltd_com_golib_tools_sqlx_builder.And(
   510  			table.F("Name").Eq(user.Name),
   511  			table.F("Enabled").Eq(user.Enabled),
   512  		))
   513  
   514  	dbRet := db.Do(stmt).Scan(user)
   515  	err := dbRet.Err()
   516  	if err != nil {
   517  		dbErr := git_chinawayltd_com_golib_tools_sqlx.DBErr(err)
   518  		if dbErr.IsConflict() {
   519  			return user.DeleteByName(db)
   520  		}
   521  		return err
   522  	}
   523  	return nil
   524  }
   525  
   526  type UserList []User
   527  
   528  // deprecated
   529  func (userList *UserList) FetchList(db *git_chinawayltd_com_golib_tools_sqlx.DB, size int32, offset int32, conditions ...*git_chinawayltd_com_golib_tools_sqlx_builder.Condition) (count int32, err error) {
   530  	*userList, count, err = (&User{}).FetchList(db, size, offset, conditions...)
   531  	return
   532  }
   533  
   534  func (user *User) FetchList(db *git_chinawayltd_com_golib_tools_sqlx.DB, size int32, offset int32, conditions ...*git_chinawayltd_com_golib_tools_sqlx_builder.Condition) (userList UserList, count int32, err error) {
   535  	userList = UserList{}
   536  
   537  	table := user.T()
   538  
   539  	condition := git_chinawayltd_com_golib_tools_sqlx_builder.And(conditions...)
   540  
   541  	condition = git_chinawayltd_com_golib_tools_sqlx_builder.And(condition, table.F("Enabled").Eq(git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__TRUE))
   542  
   543  	stmt := table.Select().
   544  		Comment("User.FetchList").
   545  		Where(condition)
   546  
   547  	errForCount := db.Do(stmt.For(git_chinawayltd_com_golib_tools_sqlx_builder.Count(git_chinawayltd_com_golib_tools_sqlx_builder.Star()))).Scan(&count).Err()
   548  	if errForCount != nil {
   549  		err = errForCount
   550  		return
   551  	}
   552  
   553  	stmt = stmt.Limit(size).Offset(offset)
   554  
   555  	stmt = stmt.OrderDescBy(table.F("CreateTime"))
   556  
   557  	err = db.Do(stmt).Scan(&userList).Err()
   558  
   559  	return
   560  }
   561  
   562  func (user *User) List(db *git_chinawayltd_com_golib_tools_sqlx.DB, condition *git_chinawayltd_com_golib_tools_sqlx_builder.Condition) (userList UserList, err error) {
   563  	userList = UserList{}
   564  
   565  	table := user.T()
   566  
   567  	condition = git_chinawayltd_com_golib_tools_sqlx_builder.And(condition, table.F("Enabled").Eq(git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__TRUE))
   568  
   569  	stmt := table.Select().
   570  		Comment("User.List").
   571  		Where(condition)
   572  
   573  	err = db.Do(stmt).Scan(&userList).Err()
   574  
   575  	return
   576  }
   577  
   578  func (user *User) ListByStruct(db *git_chinawayltd_com_golib_tools_sqlx.DB) (userList UserList, err error) {
   579  	userList = UserList{}
   580  
   581  	table := user.T()
   582  
   583  	condition := user.ConditionByStruct()
   584  
   585  	condition = git_chinawayltd_com_golib_tools_sqlx_builder.And(condition, table.F("Enabled").Eq(git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__TRUE))
   586  
   587  	stmt := table.Select().
   588  		Comment("User.ListByStruct").
   589  		Where(condition)
   590  
   591  	err = db.Do(stmt).Scan(&userList).Err()
   592  
   593  	return
   594  }
   595  
   596  // deprecated
   597  func (userList *UserList) BatchFetchByIDList(db *git_chinawayltd_com_golib_tools_sqlx.DB, idList []uint64) (err error) {
   598  	*userList, err = (&User{}).BatchFetchByIDList(db, idList)
   599  	return
   600  }
   601  
   602  func (user *User) BatchFetchByIDList(db *git_chinawayltd_com_golib_tools_sqlx.DB, idList []uint64) (userList UserList, err error) {
   603  	if len(idList) == 0 {
   604  		return UserList{}, nil
   605  	}
   606  
   607  	table := user.T()
   608  
   609  	condition := table.F("ID").In(idList)
   610  
   611  	condition = condition.And(table.F("Enabled").Eq(git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__TRUE))
   612  
   613  	stmt := table.Select().
   614  		Comment("User.BatchFetchByIDList").
   615  		Where(condition)
   616  
   617  	err = db.Do(stmt).Scan(&userList).Err()
   618  
   619  	return
   620  }
   621  
   622  // deprecated
   623  func (userList *UserList) BatchFetchByNameList(db *git_chinawayltd_com_golib_tools_sqlx.DB, nameList []string) (err error) {
   624  	*userList, err = (&User{}).BatchFetchByNameList(db, nameList)
   625  	return
   626  }
   627  
   628  func (user *User) BatchFetchByNameList(db *git_chinawayltd_com_golib_tools_sqlx.DB, nameList []string) (userList UserList, err error) {
   629  	if len(nameList) == 0 {
   630  		return UserList{}, nil
   631  	}
   632  
   633  	table := user.T()
   634  
   635  	condition := table.F("Name").In(nameList)
   636  
   637  	condition = condition.And(table.F("Enabled").Eq(git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__TRUE))
   638  
   639  	stmt := table.Select().
   640  		Comment("User.BatchFetchByNameList").
   641  		Where(condition)
   642  
   643  	err = db.Do(stmt).Scan(&userList).Err()
   644  
   645  	return
   646  }
   647  
   648  // deprecated
   649  func (userList *UserList) BatchFetchByNicknameList(db *git_chinawayltd_com_golib_tools_sqlx.DB, nicknameList []string) (err error) {
   650  	*userList, err = (&User{}).BatchFetchByNicknameList(db, nicknameList)
   651  	return
   652  }
   653  
   654  func (user *User) BatchFetchByNicknameList(db *git_chinawayltd_com_golib_tools_sqlx.DB, nicknameList []string) (userList UserList, err error) {
   655  	if len(nicknameList) == 0 {
   656  		return UserList{}, nil
   657  	}
   658  
   659  	table := user.T()
   660  
   661  	condition := table.F("Nickname").In(nicknameList)
   662  
   663  	condition = condition.And(table.F("Enabled").Eq(git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__TRUE))
   664  
   665  	stmt := table.Select().
   666  		Comment("User.BatchFetchByNicknameList").
   667  		Where(condition)
   668  
   669  	err = db.Do(stmt).Scan(&userList).Err()
   670  
   671  	return
   672  }
   673  
   674  // deprecated
   675  func (userList *UserList) BatchFetchByUsernameList(db *git_chinawayltd_com_golib_tools_sqlx.DB, usernameList []string) (err error) {
   676  	*userList, err = (&User{}).BatchFetchByUsernameList(db, usernameList)
   677  	return
   678  }
   679  
   680  func (user *User) BatchFetchByUsernameList(db *git_chinawayltd_com_golib_tools_sqlx.DB, usernameList []string) (userList UserList, err error) {
   681  	if len(usernameList) == 0 {
   682  		return UserList{}, nil
   683  	}
   684  
   685  	table := user.T()
   686  
   687  	condition := table.F("Username").In(usernameList)
   688  
   689  	condition = condition.And(table.F("Enabled").Eq(git_chinawayltd_com_golib_tools_courier_enumeration.BOOL__TRUE))
   690  
   691  	stmt := table.Select().
   692  		Comment("User.BatchFetchByUsernameList").
   693  		Where(condition)
   694  
   695  	err = db.Do(stmt).Scan(&userList).Err()
   696  
   697  	return
   698  }