models.go 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. package nats_server
  2. import (
  3. "database/sql/driver"
  4. "fmt"
  5. "time"
  6. )
  7. type JsonTime struct {
  8. time.Time
  9. }
  10. func (t JsonTime) MarshalJSON() ([]byte, error) {
  11. str := fmt.Sprintf("\"%s\"", t.Format("2006-01-02 15:04:05"))
  12. return []byte(str), nil
  13. }
  14. func (t JsonTime) Value() (driver.Value, error) {
  15. var zeroTime time.Time
  16. if t.Time.UnixNano() == zeroTime.UnixNano() {
  17. return nil, nil
  18. }
  19. return t.Time, nil
  20. }
  21. func (t *JsonTime) Scan(v interface{}) error {
  22. value, ok := v.(time.Time)
  23. if ok {
  24. *t = JsonTime{Time: value}
  25. return nil
  26. }
  27. return fmt.Errorf("error %v", v)
  28. }
  29. type DeviceSensor_R struct {
  30. T_sn string // 设备序列号 KF开头,环境监测主机。 YD开头,温途监测主机
  31. T_id int // 传感器编号
  32. T_name string // 标题
  33. //T_pid int // 公司id
  34. //T_pid_name string // 公司名称
  35. //
  36. //T_3dview string // 3D 视图ID
  37. //T_sort int // 排序
  38. //T_Dattery int // 电量
  39. //T_Site string // GPS
  40. //T_monitor int // 记录状态
  41. //T_online int // 在线状态 1 在线 0 离线
  42. //T_online_s int // 在线状态-备用 0 未启用 1 在线 2 离线
  43. //T_datashow int // 0 屏蔽数据展示 1 正常数据展示
  44. //T_type int // 类型
  45. //T_link int // 0:断开/故障 1连接 实时数据
  46. //T_State int // 0 屏蔽 1 正常 (屏蔽后 只有内部管理员才能看到,用户 输入SN\名称 搜索时 也能看到)
  47. T_DeviceSensorData DeviceData_R2 // 传感器最新数据
  48. T_DeviceSensorParameter DeviceSensorParameter_R // 设备参数
  49. }
  50. type DeviceData_R2 struct {
  51. T_t float32 // 温度
  52. T_rh float32 // 湿度
  53. T_site string // GPS
  54. T_time string // 采集时间
  55. }
  56. type DeviceData_ struct {
  57. T_id int // 传感器id
  58. T_sp int // 传感器参数id
  59. T_t float32 // 温度
  60. T_rh float32 // 湿度
  61. T_site string // GPS
  62. T_time time.Time // 采集时间
  63. }
  64. type DeviceData_R struct {
  65. T_sn string // sn
  66. T_id int // 传感器id
  67. T_name string // 传感器名称
  68. T_t float32 // 温度
  69. T_rh float32 // 湿度
  70. T_site string // GPS
  71. T_tl float32 // 温度下限
  72. T_tu float32 // 温度上限
  73. T_rhl float32 // 湿度下限
  74. T_rhu float32 // 湿度上限
  75. T_time string // 采集时间
  76. //T_sp int // 传感器参数id
  77. //T_ist int // 温度 1开启 2关闭
  78. //T_ish int // 湿度 1开启 2关闭
  79. //T_remark string // 备注
  80. }
  81. type DeviceSensorParameter_R struct {
  82. Id int
  83. T_name string
  84. // 报警
  85. T_Tlower float32 // 温度下限
  86. T_Tupper float32 // 温度上限
  87. T_RHlower float32 // 湿度下限
  88. T_RHupper float32 // 湿度上限
  89. // 预警
  90. //T_enprel int // 是否启用预警
  91. //T_tprel float32 // 温度预警下限
  92. //T_tpreu float32 // 温度预警上限
  93. //T_hprel float32 // 湿度预警下限
  94. //T_hpreu float32 // 温度预警上限
  95. //T_enprelnote int // 预警记录数据
  96. //T_speed int // 传感器采样率 s(1~240) 默认:15 *
  97. //T_sense int // 传感器灵敏度 s(0~10) 默认:5
  98. //T_en int // en:是否启用传感器,
  99. //T_free int // free:监测点是否为闲置状态(空库,只监测不报警)
  100. T_time JsonTime
  101. }
  102. type Device_R struct {
  103. T_sn string // 设备序列号 KF开头,环境监测主机。 YD开头,温途监测主机
  104. T_devName string // 设备名称
  105. T_protocol int // 1 1.0协议 2 2.0协议
  106. T_VerifyTime string // 验证时间
  107. T_CalibrationTime string // 校准时间
  108. T_PatrolTime string // 巡检时间
  109. T_ist int // 温度 1开启 2关闭
  110. T_ish int // 湿度 1开启 2关闭
  111. T_Dattery int // 电量
  112. T_Site string // GPS
  113. T_monitor int // 监控状态 0 未监控 1 监控 停止记录
  114. T_online int // 在线状态 0 未启用 1 在线 2 离线
  115. T_online_s int // 在线状态-备用 0 未启用 1 在线 2 离线
  116. T_State int // 0 屏蔽 1 正常
  117. // 硬件信息
  118. T_model string // KF200BG 产品型号
  119. T_ProductTypeName string // 验证工具LoRa 产品统称 + 类型
  120. T_sver string // "1.0.0",//软件版本
  121. T_hver string // "1.0.0",//硬件版本
  122. T_imei string // "867387060327718",//模组imei
  123. T_iccid string // "89860477102170049750",//sim卡号
  124. T_rssi string // "80",//信号强度
  125. CreateTime string //auto_now_add 第一次保存时才设置时间
  126. UpdateTime string //auto_now 每次 model 保存时都会对时间自动更新
  127. T_DeviceSensor_Num int // 传感器数量
  128. }
  129. type Company_R struct {
  130. Id int
  131. T_mid int // 上一级 ID
  132. T_name string // 公司名称
  133. T_plan string // 平面图
  134. T_data string // 大数据
  135. T_v3d string // 3D 视图
  136. T_money float32 // 余额
  137. T_warning int // 报警统计
  138. T_key string
  139. T_type int // 公司类型 1-医药公司 2-运输企业
  140. T_Charging int
  141. Children []Company_R
  142. }
  143. type Device struct {
  144. T_sn string // 设备序列号
  145. T_pid int // Account.Company 绑定公司
  146. T_devName string // 设备名称 20字
  147. T_protocol int // 冷链通讯协议 1 :1.0协议 2 :2.0协议 3 :3.0协议
  148. T_mqttid string // MQTT 服务ID
  149. T_VerifyTime time.Time // 验证时间
  150. T_CalibrationTime time.Time // 校准时间
  151. T_PatrolTime time.Time // 巡检时间
  152. T_abandonTime time.Time // 弃用时间
  153. T_ist int // 温度 1开启 2关闭
  154. T_ish int // 湿度 1开启 2关闭
  155. T_State int // 0 屏蔽 1 正常 (屏蔽后 只有内部管理员才能看到,用户 输入SN\名称 搜索时 也能看到)
  156. // 设备同步参数
  157. T_Dattery int // 电量
  158. T_Site string // GPS
  159. T_monitor int // 监控状态 0 未监控 1 监控 停止记录
  160. T_online int // 在线状态 0 未启用 1 在线 2 离线
  161. T_online_s int // 在线状态-备用 0 未启用 1 在线 2 离线
  162. // 硬件信息
  163. T_model string // KF200BG 设备型号
  164. T_sver string // "1.0.0",//软件版本
  165. T_hver string // "1.0.0",//硬件版本
  166. T_imei string // "867387060327718",//模组imei
  167. T_iccid string // "89860477102170049750",//sim卡号
  168. T_rssi string // "80",//信号强度
  169. CreateTime time.Time //auto_now_add 第一次保存时才设置时间
  170. UpdateTime time.Time //auto_now 每次 model 保存时都会对时间自动更新
  171. }