financial_analyst.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package financial_analyst
  2. import (
  3. "eta_mini_ht_api/models"
  4. "gorm.io/gorm"
  5. "gorm.io/gorm/clause"
  6. "time"
  7. )
  8. type AnalystStatus string
  9. const (
  10. AnalystStatusEnabled AnalystStatus = "enabled"
  11. AnalystStatusDisabled AnalystStatus = "disabled"
  12. columns = "id,name,introduction"
  13. )
  14. type CrmFinancialAnalyst struct {
  15. Id int `gorm:"primaryKey;autoIncrement;column:id;comment:主键"`
  16. ETAId int `gorm:"column:eta_id"`
  17. HTId int `gorm:"column:ht_id"`
  18. Name string `gorm:"column:name"`
  19. HeadImgURL string `gorm:"column:head_img_url"`
  20. Introduction string `gorm:"column:introduction"`
  21. Status AnalystStatus `gorm:"column:status"`
  22. Deleted bool `gorm:"column:deleted"`
  23. CreatedTime time.Time `gorm:"column:created_time;type:timestamps;comment:创建时间"`
  24. UpdatedTime time.Time `gorm:"column:updated_time;type:timestamps;comment:更新时间"`
  25. }
  26. func BatchInsertOrUpdate(list []CrmFinancialAnalyst) (err error) {
  27. db := models.Main()
  28. OnConflictFunc := clause.OnConflict{
  29. Columns: []clause.Column{{Name: "eta_id"}},
  30. DoUpdates: clause.AssignmentColumns([]string{"name", "status", "deleted"}),
  31. }
  32. // 执行批量插入或更新操作
  33. err = db.Clauses(OnConflictFunc).Create(&list).Error
  34. return
  35. }
  36. func (fa *CrmFinancialAnalyst) BeforeCreate(db *gorm.DB) (err error) {
  37. fa.CreatedTime = time.Now()
  38. return
  39. }
  40. func GetAnalystById(id int) (analyst CrmFinancialAnalyst, err error) {
  41. db := models.Main()
  42. err = db.Select(columns).Where("id = ?", id).First(&analyst).Error
  43. return
  44. }