package model import ( "aps_crm/pkg/mysqlx" "fmt" "gorm.io/gorm" ) type ( SystemSet struct { Id int `json:"id" gorm:"column:id;primaryKey;autoIncrement;not null"` Name string `json:"name" gorm:"type:varchar(255);comment:名称"` Value string `json:"value" gorm:"type:varchar(255);comment:值"` ModeType string `json:"modeType" gorm:"type:varchar(255);comment:模块类型"` } SystemSetSearch struct { SystemSet Orm *gorm.DB } ) func (slf SystemSet) TableName() string { return "system_set" } func NewSystemSetSearch() *SystemSetSearch { return &SystemSetSearch{Orm: mysqlx.GetDB()} } func (slf *SystemSetSearch) SetOrm(tx *gorm.DB) *SystemSetSearch { slf.Orm = tx return slf } func (slf *SystemSetSearch) SetName(name string) *SystemSetSearch { slf.Name = name return slf } func (slf *SystemSetSearch) SetModeType(modeType string) *SystemSetSearch { slf.ModeType = modeType return slf } func (slf *SystemSetSearch) build() *gorm.DB { var db = slf.Orm.Table(slf.TableName()) if slf.Name != "" { db = db.Where("name = ?", slf.Name) } if slf.ModeType != "" { db = db.Where("mode_type = ?", slf.ModeType) } return db } // CreateBatch 批量插入 func (slf *SystemSetSearch) CreateBatch(records []*SystemSet) error { var db = slf.build() if err := db.Create(&records).Error; err != nil { return fmt.Errorf("create batch err: %v, records: %+v", err, records) } return nil } func (slf *SystemSetSearch) DeleteAll() (err error) { var db = slf.build() err = db.Where("1=1").Delete(&SystemSet{}).Error return err } func (slf *SystemSetSearch) First() (*SystemSet, error) { var ( record = new(SystemSet) db = slf.build() ) if err := db.First(record).Error; err != nil { return record, err } return record, nil } func (slf *SystemSetSearch) FindAll() ([]*SystemSet, error) { var ( records = make([]*SystemSet, 0) db = slf.build() ) if err := db.Find(&records).Error; err != nil { return records, fmt.Errorf("find records err: %v", err) } return records, nil }