DeviceDataOld.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. package Device
  2. import (
  3. "Cold_mqtt/conf"
  4. "Cold_mqtt/logs"
  5. "github.com/beego/beego/v2/adapter/orm"
  6. orm2 "github.com/beego/beego/v2/client/orm"
  7. _ "github.com/go-sql-driver/mysql"
  8. "time"
  9. )
  10. // 设备记录数据 操作历史记录(只存放留存下来的数据,最近记录直接写到 记录数据中)
  11. type DeviceDataOld struct {
  12. Id int `orm:"column(ID);size(11);auto;pk"`
  13. T_sn string `orm:"index;size(256);"` // 主键 设备序列号
  14. T_id int `orm:"index;size(12);"` // 主键 传感器编号
  15. T_t float32 `orm:"size(20);digits(6);decimals(1)"` // 温度
  16. T_rh float32 `orm:"size(20);digits(6);decimals(1)"` // 湿度
  17. T_Site string `orm:"size(100);"` // GPS
  18. T_time time.Time `orm:"index;type(timestamp);"` // 主键 采集时间
  19. T_operation int `orm:"size(12);"` // 操作类型 1:插入 2:替换 3:删除 4:忽略
  20. T_uuid string `orm:"size(256);"` // 操作人 Admin->T_uuid , 如果为空字符串 则是设备本身上传的,标记为(设备)
  21. CreateTime time.Time `orm:"column(create_time);type(timestamp);auto_now_add"` //auto_now 每次 model 保存时都会对时间自动更新
  22. }
  23. type DeviceDataOld_R struct {
  24. T_t float32 // 温度
  25. T_rh float32 // 湿度
  26. T_Site string // GPS
  27. T_time time.Time // 采集时间
  28. T_operation int // 操作类型 1:插入 2:替换 3:删除
  29. T_uuid string // 操作人 Admin->T_uuid , 如果为空字符串 则是设备本身上传的
  30. CreateTime time.Time //auto_now 每次 model 保存时都会对时间自动更新
  31. }
  32. func (t *DeviceDataOld) TableName() string {
  33. return "device_data_old" // 数据库名称 // ************** 替换 FormulaList **************
  34. }
  35. func init() {
  36. //注册模型
  37. orm.RegisterModel(new(DeviceDataOld))
  38. }
  39. func DeviceDataOldToDeviceDataOld_R(r DeviceDataOld) (t DeviceDataOld_R) {
  40. t.T_t = r.T_t
  41. t.T_rh = r.T_rh
  42. t.T_Site = r.T_Site
  43. t.T_time = r.T_time
  44. t.T_operation = r.T_operation
  45. t.T_uuid = r.T_uuid
  46. t.CreateTime = r.CreateTime
  47. return
  48. }
  49. // ---------------- 特殊方法 -------------------
  50. // 添加
  51. func Add_DeviceDataOld(m DeviceDataOld) (id int64, err error) {
  52. o := orm.NewOrm()
  53. id, err = o.Insert(&m)
  54. if err != nil {
  55. logs.Println("Add_DeviceDataOld", err)
  56. }
  57. return id, err
  58. }
  59. // 获取列表
  60. func Read_DeviceDataOld_List(T_sn string, T_id int, T_time string, page int, page_z int) (r []DeviceDataOld_R, cnt int64) {
  61. o := orm.NewOrm()
  62. // 也可以直接使用 Model 结构体作为表名
  63. qs := o.QueryTable(new(DeviceDataOld))
  64. var offset int64
  65. if page_z == 0 {
  66. page_z = conf.Page_size
  67. }
  68. if page <= 1 {
  69. offset = 0
  70. } else {
  71. offset = int64((page - 1) * page_z)
  72. }
  73. cond := orm.NewCondition()
  74. cond1 := cond.And("T_sn", T_sn).And("T_id", T_id).And("T_time", T_time)
  75. var rx []DeviceDataOld
  76. qs.Limit(page_z, offset).SetCond((*orm2.Condition)(cond1)).OrderBy("-Id").All(&rx)
  77. cnt, _ = qs.SetCond((*orm2.Condition)(cond1)).Count()
  78. for _, v := range rx {
  79. r = append(r, DeviceDataOldToDeviceDataOld_R(v))
  80. }
  81. return r, cnt
  82. }