device_relay.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package dao
  2. import (
  3. "context"
  4. "encoding/json"
  5. "fmt"
  6. "server/global"
  7. )
  8. type DeviceRelay struct {
  9. ID int `json:"id"`
  10. RelayID int `json:"relayId" gorm:"comment:回路id"`
  11. DeviceSn string `json:"deviceSn" gorm:"comment:设备Sn"`
  12. State bool `json:"state" gorm:"comment:设备状态"`
  13. }
  14. func (DeviceRelay) TableName() string {
  15. return "device_relay"
  16. }
  17. func QueryRelayBySn(sn string) (deviceRelays []DeviceRelay, err error) {
  18. err = global.GVA_DB.Model(&DeviceRelay{}).Where("device_sn = ?", sn).Find(&deviceRelays).Error
  19. return
  20. }
  21. func UpdateRelayState(deviceSn string, relayId int, state bool) error {
  22. return global.GVA_DB.Model(&DeviceRelay{}).Where("device_sn = ? AND relay_id = ?", deviceSn, relayId).Update("state", state).Error
  23. }
  24. func GetCacheRelayState(sn string) (deviceRelays []DeviceRelay, err error) {
  25. if global.GVA_REDIS == nil {
  26. return
  27. }
  28. result, err := global.GVA_REDIS.Get(context.Background(), "device_relays_"+sn).Result()
  29. if err != nil {
  30. return
  31. }
  32. err = json.Unmarshal([]byte(result), &deviceRelays)
  33. if err != nil {
  34. return
  35. }
  36. return
  37. }
  38. // SaveCacheDeviceRelays 保存电感数据
  39. func SaveCacheDeviceRelays(sn string, deviceRelays []DeviceRelay) (err error) {
  40. jsonData, err := json.Marshal(deviceRelays)
  41. if err != nil {
  42. fmt.Println("Error marshalling JSON:", err)
  43. return
  44. }
  45. if global.GVA_REDIS == nil {
  46. return
  47. }
  48. err = global.GVA_REDIS.Set(context.Background(), "device_relays_"+sn, jsonData, 0).Err()
  49. return
  50. }