package model import ( "aps_crm/pkg/mysqlx" "gorm.io/gorm" ) type ( // Province 省份 Province struct { Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` Name string `json:"name" gorm:"column:name;type:varchar(255);comment:省份名称"` CountryId int `json:"-" gorm:"column:country_id;type:int(11);comment:国家ID"` Cities []City `json:"cities" gorm:"foreignKey:ProvinceId"` } // ProvinceSearch 省份搜索条件 ProvinceSearch struct { Province Orm *gorm.DB } ) func (Province) TableName() string { return "province" } func NewProvinceSearch(db *gorm.DB) *ProvinceSearch { if db == nil { db = mysqlx.GetDB() } return &ProvinceSearch{ Orm: db, } } func (slf *ProvinceSearch) build() *gorm.DB { var db = slf.Orm.Model(&Province{}) if slf.Id != 0 { db = db.Where("id = ?", slf.Id) } if slf.Name != "" { db = db.Where("name = ?", slf.Name) } return db } // Create 创建 func (slf *ProvinceSearch) Create(record *Province) error { var db = slf.build() return db.Create(record).Error } func (slf *ProvinceSearch) Delete() error { var db = slf.build() return db.Delete(&Province{}).Error } func (slf *ProvinceSearch) Update(record *Province) error { var db = slf.build() return db.Updates(record).Error } func (slf *ProvinceSearch) GetListByIds(ids []int) (result []Province, err error) { var db = slf.build() err = db.Where("id in (?)", ids).Find(&result).Error return } func (slf *ProvinceSearch) Find() (result []Province, err error) { var db = slf.build() err = db.Preload("country").Find(&result).Error return } func (slf *ProvinceSearch) SetId(id int) *ProvinceSearch { slf.Id = id return slf } func (slf *ProvinceSearch) SetName(name string) *ProvinceSearch { slf.Name = name return slf } func (slf *ProvinceSearch) UpdateList(m map[string]interface{}, ids []int) error { var db = slf.build() return db.Where("id in (?)", ids).Updates(m).Error } func (slf *ProvinceSearch) First() (result Province, err error) { var db = slf.build() err = db.First(&result).Error return } func (slf *ProvinceSearch) FindAll() (result []*Province, err error) { var db = slf.build() err = db.Find(&result).Error return } func (slf *ProvinceSearch) Updates(m map[string]interface{}) error { var db = slf.build() return db.Updates(m).Error }