package financial_analyst import ( "eta_mini_ht_api/models" "gorm.io/gorm" "gorm.io/gorm/clause" "time" ) type AnalystStatus string const ( AnalystStatusEnabled AnalystStatus = "enabled" AnalystStatusDisabled AnalystStatus = "disabled" columns = "id,name,introduction" ) type CrmFinancialAnalyst struct { Id int `gorm:"primaryKey;autoIncrement;column:id;comment:主键"` ETAId int `gorm:"column:eta_id"` HTId int `gorm:"column:ht_id"` Name string `gorm:"column:name"` HeadImgURL string `gorm:"column:head_img_url"` Introduction string `gorm:"column:introduction"` Status AnalystStatus `gorm:"column:status"` Deleted bool `gorm:"column:deleted"` CreatedTime time.Time `gorm:"column:created_time;type:timestamps;comment:创建时间"` UpdatedTime time.Time `gorm:"column:updated_time;type:timestamps;comment:更新时间"` } func BatchInsertOrUpdate(list []CrmFinancialAnalyst) (err error) { db := models.Main() OnConflictFunc := clause.OnConflict{ Columns: []clause.Column{{Name: "eta_id"}}, DoUpdates: clause.AssignmentColumns([]string{"name", "status", "deleted"}), } // 执行批量插入或更新操作 err = db.Clauses(OnConflictFunc).Create(&list).Error return } func (fa *CrmFinancialAnalyst) BeforeCreate(db *gorm.DB) (err error) { fa.CreatedTime = time.Now() return } func GetAnalystById(id int) (analyst CrmFinancialAnalyst, err error) { db := models.Main() err = db.Select(columns).Where("id = ?", id).First(&analyst).Error return }