survey_mechanism.go 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package model
  2. import (
  3. "os"
  4. "surveyService/util"
  5. "time"
  6. "gorm.io/gorm"
  7. )
  8. const SurveyMechanismTableName = "survey_mechanism"
  9. const (
  10. SURVEY_MECHANISM_AUTHORIZE_STATUS_ENABLE = 1 // 可用
  11. SURVEY_MECHANISM_AUTHORIZE_STATUS_DISABLE = 2 // 禁用
  12. SURVEY_MECHANISM_STATUS_ENABLE = 1 // 可用
  13. SURVEY_MECHANISM_STATUS_DISABLE = 2 // 禁用
  14. )
  15. type SurveyMechanism struct {
  16. ID int64 `gorm:"type:int(20);autoIncrement;comment:ID;" json:"id"`
  17. SN string `gorm:"type:varchar(255);comment:问卷编号;default:'';" json:"sn"`
  18. AuthorizeStatus int `gorm:"type:int(11);comment:状态:1:可用,2:禁用;default:2;" json:"status"`
  19. Status int `gorm:"type:int(11);comment:是否启用:1:启用,2:禁用;default:2;" json:"enable"`
  20. MechanismId string `gorm:"type:varchar(255);comment:机构编号;default:'';" json:"mechanismId"`
  21. SurveyId int64 `gorm:"type:int(20);comment:问卷ID;default:0;" json:"surveyId"`
  22. Permissions string `gorm:"type:mediumText;comment:权限;nullable;" json:"permissions"`
  23. Name string `gorm:"type:varchar(255);comment:问卷名称;default:'';" json:"name"`
  24. Cover string `gorm:"type:varchar(255);comment:封面;default:'';" json:"cover"`
  25. Description string `gorm:"type:mediumText;comment:描述;nullable;" json:"description"`
  26. Survey Survey `gorm:"foreignKey:SurveyId;references:ID" json:"survey"`
  27. SurveyResults []*SurveyResult `gorm:"foreignKey:SurveyMechanismId;references:ID" json:"surveyResults"`
  28. SurveyResult *SurveyResult `gorm:"foreignKey:SurveyMechanismId;references:ID" json:"surveyResult"`
  29. DeletedAt gorm.DeletedAt `gorm:"column:deleted_at" json:"-"`
  30. CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"`
  31. UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"`
  32. }
  33. func (u *SurveyMechanism) AfterCreate(tx *gorm.DB) (err error) {
  34. tx.Model(u).Update("sn", u.GetHashId(u.ID))
  35. return
  36. }
  37. func (u *SurveyMechanism) AfterFind(tx *gorm.DB) (err error) {
  38. return
  39. }
  40. func (u *SurveyMechanism) GetHashId(id int64) string {
  41. return util.GetHashId(id, SurveyMechanismTableName)
  42. }
  43. func (u *SurveyMechanism) GetRawId(sn string) int64 {
  44. rawId, _ := util.GetIdByHashId(sn, SurveyMechanismTableName)
  45. return rawId
  46. }
  47. func (u *SurveyMechanism) TableName() string {
  48. dbPrefix := os.Getenv("DB_PREFIX")
  49. return dbPrefix + SurveyMechanismTableName
  50. }