deviceAlarm.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package deviceAlarm
  2. import (
  3. "fmt"
  4. "github.com/gogf/gf/database/gredis"
  5. "github.com/gogf/gf/encoding/gjson"
  6. )
  7. const (
  8. AlarmPrefix = "device:main:alarm:"
  9. dataExpires = 7200
  10. )
  11. type AlarmParams struct {
  12. DeviceCode string `json:"device_code"`
  13. FirstReportTime int64 `json:"first_report_time"`
  14. LastAlarmTime int64 `json:"last_alarm_time"`
  15. }
  16. type DevAlarmManager struct {
  17. redisClient *gredis.Redis
  18. }
  19. func NewDevAlarmManager(host string, port int) *DevAlarmManager {
  20. fmt.Printf("redis---------------%s:%d\n", host, port)
  21. red := gredis.New(&gredis.Config{
  22. Host: host,
  23. Port: port,
  24. Db: 14,
  25. MaxActive: 100,
  26. })
  27. helper := &DevAlarmManager{
  28. redisClient: red,
  29. }
  30. return helper
  31. }
  32. func (a *DevAlarmManager) SetAlarm(params *AlarmParams) error {
  33. key := AlarmPrefix + params.DeviceCode
  34. res, err := a.redisClient.DoVar("SET", key, params)
  35. if err != nil {
  36. return err
  37. }
  38. fmt.Printf("params--------------%s\nres--------------%s\n", gjson.New(params).MustToJsonString(), res.String())
  39. r, err := a.GetAlarm(params.DeviceCode)
  40. if err != nil {
  41. fmt.Printf("err------------%s\n", err.Error())
  42. }
  43. if res == nil {
  44. fmt.Printf("rrrrrrrrrrrrr为空----------\n")
  45. return nil
  46. }
  47. fmt.Printf("r---------------------%s\n", gjson.New(r).MustToJsonString())
  48. //_, err = a.redisClient.Do("EXPIRE", key, dataExpires)
  49. //if err != nil {
  50. // return err
  51. //}
  52. return nil
  53. }
  54. func (a *DevAlarmManager) GetAlarm(code string) (*AlarmParams, error) {
  55. key := AlarmPrefix + code
  56. alarm := new(AlarmParams)
  57. // get status from redis
  58. result, err := a.redisClient.DoVar("GET", key)
  59. if err != nil {
  60. return nil, err
  61. }
  62. err = result.Struct(alarm)
  63. if err != nil {
  64. return nil, err
  65. }
  66. return alarm, nil
  67. }
  68. func (a *DevAlarmManager) DeleteAlarm(code string) error {
  69. key := AlarmPrefix + code
  70. // get status from redis
  71. _, err := a.redisClient.Do("DEL", key)
  72. if err != nil {
  73. return err
  74. }
  75. return nil
  76. }