base_model.go 792 B

123456789101112131415161718192021222324252627282930313233
  1. package model
  2. import (
  3. "time"
  4. "gorm.io/gorm"
  5. "gorm.io/plugin/soft_delete"
  6. )
  7. // Model 公共Model
  8. type Model struct {
  9. ID int64 `gorm:"primary_key" json:"id"`
  10. CreatedOn int64 `json:"created_on"`
  11. ModifiedOn int64 `json:"modified_on"`
  12. DeletedOn int64 `json:"deleted_on"`
  13. IsDel soft_delete.DeletedAt `gorm:"softDelete:flag" json:"is_del"`
  14. }
  15. func (m *Model) BeforeCreate(tx *gorm.DB) (err error) {
  16. nowTime := time.Now().Unix()
  17. tx.Statement.SetColumn("created_on", nowTime)
  18. tx.Statement.SetColumn("modified_on", nowTime)
  19. return
  20. }
  21. func (m *Model) BeforeUpdate(tx *gorm.DB) (err error) {
  22. if !tx.Statement.Changed("modified_on") {
  23. tx.Statement.SetColumn("modified_on", time.Now().Unix())
  24. }
  25. return
  26. }