survey.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package model
  2. import (
  3. "os"
  4. "surveyService/util"
  5. "time"
  6. "gorm.io/gorm"
  7. )
  8. const SurveyTableName = "survey"
  9. const (
  10. SURVEY_STATUS_ENABLE = 1 // 可用
  11. SURVEY_STATUS_DISABLE = 2 // 禁用
  12. SURVEY_TYPE_NORMAL = 1 // 普通文件
  13. SURVEY_TYPE_PHYSICAL = 2 // 定制体检
  14. )
  15. type Survey struct {
  16. ID int64 `gorm:"type:int(20);autoIncrement;comment:ID;" json:"id"`
  17. SN string `gorm:"type:varchar(255);comment:问卷编号;default:'';index;" json:"sn"`
  18. SurveyCode string `gorm:"type:varchar(255);comment:问卷编码;default:'';" json:"surveyCode"`
  19. Name string `gorm:"type:varchar(255);comment:问卷名称;default:'';" json:"name"`
  20. Cover string `gorm:"type:varchar(255);comment:封面;default:'';" json:"cover"`
  21. Status int `gorm:"type:int(11);comment:状态:1:可用,2:禁用;default:2;" json:"status"`
  22. Remark string `gorm:"type:mediumText;comment:备注;nullable;" json:"remark"`
  23. Type int64 `gorm:"type:int(11);comment:问卷类型:1:问卷,2:定制体检;default:1;" json:"type"`
  24. DeletedAt gorm.DeletedAt `gorm:"column:deleted_at" json:"-"`
  25. CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"`
  26. UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"`
  27. }
  28. func (u *Survey) AfterCreate(tx *gorm.DB) (err error) {
  29. tx.Model(u).Update("sn", u.GetHashId(u.ID))
  30. return
  31. }
  32. func (u *Survey) AfterFind(tx *gorm.DB) (err error) {
  33. return
  34. }
  35. func (u *Survey) GetHashId(id int64) string {
  36. return util.GetHashId(id, SurveyTableName)
  37. }
  38. func (u *Survey) GetRawId(sn string) int64 {
  39. rawId, _ := util.GetIdByHashId(sn, SurveyTableName)
  40. return rawId
  41. }
  42. func (u *Survey) TableName() string {
  43. dbPrefix := os.Getenv("DB_PREFIX")
  44. return dbPrefix + SurveyTableName
  45. }