garbageDataService.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package service
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "iot_manager_service/app/data/dao"
  6. "iot_manager_service/app/data/model"
  7. "iot_manager_service/util/cache"
  8. "iot_manager_service/util/common"
  9. )
  10. var GarbageDataService = new(garbageDataService)
  11. type garbageDataService struct{}
  12. func (s *garbageDataService) BatchSave(details []model.GarbageDataDetail) *common.Errors {
  13. garbage := &dao.GarbageData{DeviceId: ""}
  14. var data []dao.GarbageData
  15. for _, detail := range details {
  16. garbageData := dao.GarbageData{
  17. DeviceId: detail.DeviceId,
  18. StartTime: detail.StartTime,
  19. EndTime: detail.EndTime,
  20. PostTime: detail.PostTime,
  21. BatteryVoltage: detail.BatteryVoltage,
  22. BatteryPercentage: detail.BatteryPercentage,
  23. SensorCount: detail.SensorCount,
  24. SensorOne: detail.SensorOne,
  25. SensorTwo: detail.SensorTwo,
  26. SensorOnePercentage: detail.SensorOnePercentage,
  27. SensorTwoPercentage: detail.SensorTwoPercentage,
  28. WorkTime: detail.WorkTime,
  29. }
  30. b, _ := json.Marshal(&garbageData)
  31. cache.Redis.Set(fmt.Sprintf(model.GarbageDataKey, detail.DeviceId), string(b), 0)
  32. data = append(data, garbageData)
  33. }
  34. if len(data) == 0 {
  35. return nil
  36. }
  37. err := garbage.BatchSave(data)
  38. if err != nil {
  39. return common.FailResponse(err.Error(), nil)
  40. }
  41. return nil
  42. }
  43. func (s *garbageDataService) Get(deviceId string) *dao.GarbageData {
  44. var garbageData dao.GarbageData
  45. result, err := cache.Redis.Get(fmt.Sprintf(model.GarbageDataKey, deviceId)).Result()
  46. if err == nil {
  47. err = json.Unmarshal([]byte(result), &garbageData)
  48. if err != nil {
  49. return nil
  50. }
  51. return &garbageData
  52. }
  53. garbageData = dao.GarbageData{
  54. DeviceId: deviceId,
  55. }
  56. _ = garbageData.Get()
  57. return &garbageData
  58. }