|
|
@@ -0,0 +1,87 @@
|
|
|
+package service
|
|
|
+
|
|
|
+import (
|
|
|
+ "errors"
|
|
|
+ device "iot_manager_service/app/device/dao"
|
|
|
+ "iot_manager_service/app/operation/dao"
|
|
|
+ "iot_manager_service/app/operation/model"
|
|
|
+ "iot_manager_service/util/common"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+var AepCallbackRecordService = new(aepCallbackRecordService)
|
|
|
+
|
|
|
+type aepCallbackRecordService struct{}
|
|
|
+
|
|
|
+func (s *aepCallbackRecordService) Save(data model.AepCallbackPayload, timestamp int64) error {
|
|
|
+ datatime := time.Unix(timestamp/1000, 0)
|
|
|
+ imei := data.IMEI
|
|
|
+ deviceId, err := device.ManholeCover{}.FindDeviceIdByImei(imei)
|
|
|
+ if err != nil {
|
|
|
+ return errors.New("没有添加这个imei的设备" + imei)
|
|
|
+ }
|
|
|
+
|
|
|
+ record := dao.ManholeCoverDao{
|
|
|
+ CSQ: data.CSQ,
|
|
|
+ IMEI: data.IMEI,
|
|
|
+ ICCID: data.ICCID,
|
|
|
+ Temperature: data.Temperature,
|
|
|
+ LeanAngle: data.LeanAngle,
|
|
|
+ BatteryLevel: data.BatteryLevel,
|
|
|
+ }
|
|
|
+ record.DeviceId = deviceId
|
|
|
+ record.PostTime = common.Time(datatime)
|
|
|
+ record.CreateDate = datatime.Format("2006-01-02")
|
|
|
+
|
|
|
+ manholeCover := device.ManholeCover{
|
|
|
+ ID: deviceId,
|
|
|
+ Temperature: data.Temperature,
|
|
|
+ LeanAngle: data.LeanAngle,
|
|
|
+ BatteryLevel: data.BatteryLevel,
|
|
|
+ Csq: data.CSQ,
|
|
|
+ LastPostTime: common.Time(datatime),
|
|
|
+ }
|
|
|
+ err = manholeCover.Update()
|
|
|
+ if err != nil {
|
|
|
+ return errors.New(imei + "更新井盖的参数失败" + err.Error())
|
|
|
+ }
|
|
|
+ return record.Save()
|
|
|
+}
|
|
|
+
|
|
|
+func (s *aepCallbackRecordService) GetByDeviceId(deviceId int) (dao.ManholeCoverDao, error) {
|
|
|
+ var record dao.ManholeCoverDao
|
|
|
+ record.DeviceId = deviceId
|
|
|
+ err := record.Get()
|
|
|
+ if err != nil {
|
|
|
+ return dao.ManholeCoverDao{}, err
|
|
|
+ }
|
|
|
+ return record, nil
|
|
|
+}
|
|
|
+
|
|
|
+func (s *aepCallbackRecordService) GetHistoryList(deviceId int, queryStartDate, queryEndDate, queryType string) ([]model.ManholeHistoryList, error) {
|
|
|
+ var record dao.ManholeCoverDao
|
|
|
+ record.DeviceId = deviceId
|
|
|
+ records, err := record.GetList(queryStartDate, queryEndDate)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ var list []model.ManholeHistoryList
|
|
|
+ for _, coverDao := range records {
|
|
|
+ var value interface{}
|
|
|
+ if queryType == "temp" {
|
|
|
+ value = coverDao.Temperature
|
|
|
+ } else if queryType == "battery" {
|
|
|
+ value = coverDao.BatteryLevel
|
|
|
+ } else if queryType == "csq" {
|
|
|
+ value = coverDao.CSQ
|
|
|
+ } else if queryType == "lean_angle" {
|
|
|
+ value = coverDao.LeanAngle
|
|
|
+ }
|
|
|
+ list = append(list, model.ManholeHistoryList{
|
|
|
+ Name: coverDao.CreateDate,
|
|
|
+ Value: value,
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ return list, nil
|
|
|
+}
|