siteOriginalData.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package models
  2. import (
  3. "fwh-toolbox-server/database"
  4. "time"
  5. "gorm.io/datatypes"
  6. )
  7. var db = database.PgSQL
  8. type DataTypes string
  9. // DataType
  10. const (
  11. DT_API DataTypes = "API"
  12. DT_MQTT DataTypes = "MQTT"
  13. )
  14. /*
  15. * DataType -> ChildType -> SubChildType
  16. *
  17. * DataType = "API"
  18. * 当数据从API请求获取时,数据类型则为 “API”
  19. * API类型数据的ChildType为API路径名
  20. *
  21. * DataType = "MQTT"
  22. * 当数据是从云MQTT日志获取时,数据类型则为 “MQTT”
  23. * MQTT类型数据的ChildType为cmdType,如:0、101、201等
  24. */
  25. type SiteOriginalData struct {
  26. ID int64 `gorm:"primaryKey"` // 使用雪花ID算法
  27. DataType DataTypes `gorm:"size:64;not null;uniqueIndex:idx_type_sn_time"`
  28. ChildType string `gorm:"size:64;not null;uniqueIndex:idx_type_sn_time"`
  29. SubChildType string `gorm:"size:64;not null;default:'';uniqueIndex:idx_type_sn_time"`
  30. SN string `gorm:"size:64;not null;uniqueIndex:idx_type_sn_time"`
  31. DataTime time.Time `gorm:"type:timestamp;not null;default:CURRENT_TIMESTAMP;uniqueIndex:idx_type_sn_time"` // TIMESTAMP WITHOUT TIME ZONE
  32. JsonData datatypes.JSON `gorm:"type:jsonb"` // PostgreSQL 使用 jsonb
  33. }
  34. // 指定 schema
  35. func (SiteOriginalData) TableName() string {
  36. return "original.site_original_data"
  37. }
  38. func InitSiteOriginalDataTable() {
  39. err := db.AutoMigrate(&SiteOriginalData{})
  40. if err != nil {
  41. panic(err)
  42. }
  43. }
  44. func InsertSiteOriginalApiData(type string, ) {
  45. }