1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package service
- import (
- "encoding/json"
- "fmt"
- "iot_manager_service/app/data/dao"
- "iot_manager_service/app/data/model"
- "iot_manager_service/util/cache"
- "iot_manager_service/util/common"
- )
- var GarbageDataService = new(garbageDataService)
- type garbageDataService struct{}
- func (s *garbageDataService) BatchSave(details []model.GarbageDataDetail) *common.Errors {
- garbage := &dao.GarbageData{DeviceId: ""}
- var data []dao.GarbageData
- for _, detail := range details {
- garbageData := dao.GarbageData{
- DeviceId: detail.DeviceId,
- StartTime: detail.StartTime,
- EndTime: detail.EndTime,
- PostTime: detail.PostTime,
- BatteryVoltage: detail.BatteryVoltage,
- BatteryPercentage: detail.BatteryPercentage,
- SensorCount: detail.SensorCount,
- SensorOne: detail.SensorOne,
- SensorTwo: detail.SensorTwo,
- SensorOnePercentage: detail.SensorOnePercentage,
- SensorTwoPercentage: detail.SensorTwoPercentage,
- WorkTime: detail.WorkTime,
- }
- b, _ := json.Marshal(&garbageData)
- cache.Redis.Set(fmt.Sprintf(model.GarbageDataKey, detail.DeviceId), string(b), 0)
- data = append(data, garbageData)
- }
- if len(data) == 0 {
- return nil
- }
- err := garbage.BatchSave(data)
- if err != nil {
- return common.FailResponse(err.Error(), nil)
- }
- return nil
- }
- func (s *garbageDataService) Get(deviceId string) *dao.GarbageData {
- var garbageData dao.GarbageData
- result, err := cache.Redis.Get(fmt.Sprintf(model.GarbageDataKey, deviceId)).Result()
- if err == nil {
- err = json.Unmarshal([]byte(result), &garbageData)
- if err != nil {
- return nil
- }
- return &garbageData
- }
- garbageData = dao.GarbageData{
- DeviceId: deviceId,
- }
- _ = garbageData.Get()
- return &garbageData
- }
|