From 3771d5551480964ab17f4c23a152df2482bf6470 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期六, 18 五月 2024 04:15:22 +0800
Subject: [PATCH] 更新设备操作

---
 service/device.go |   50 +++++++++++++++++---------------------------------
 1 files changed, 17 insertions(+), 33 deletions(-)

diff --git a/service/device.go b/service/device.go
index 6eeb1f2..84ef889 100644
--- a/service/device.go
+++ b/service/device.go
@@ -2,21 +2,14 @@
 
 import (
 	"encoding/json"
+	"fmt"
 	"time"
 
 	"gat1400Exchange/config"
-	"gat1400Exchange/pkg/logger"
 	"gat1400Exchange/models"
+	"gat1400Exchange/pkg/logger"
 	"gat1400Exchange/util"
-
-	"github.com/hashicorp/golang-lru/v2/expirable"
 )
-
-var deviceAliveCache *expirable.LRU[string, bool]
-
-func init() {
-	deviceAliveCache = expirable.NewLRU[string, bool](100, nil, time.Second*60)
-}
 
 type DevReportData struct {
 	Code        string                 `json:"code"`        // 璁惧ID
@@ -45,25 +38,32 @@
 		return nil
 	}
 
-	logger.Info("Start device info report task, server:%s.", config.ForwardConf.ReportServer)
+	logger.Info("Start device report task, server:%s.", config.ForwardConf.ReportServer)
 
-	var d models.Device
+	var d models.Ape
 	devices, err := d.FindAll()
 	if err != nil {
 		return err
 	}
 
-	for _, dev := range devices{
-		if _, exists := deviceAliveCache.Get(dev.Id); !exists {
-			continue
+	for _, dev := range devices {
+		// 绾ц仈鐨勮澶囦笉妫�鏌ュ績璺�
+		if dev.FromId == "" {
+			hTime, err := time.ParseInLocation("2006-01-02 15:04:05", dev.HeartbeatTime, time.Local)
+			if err != nil || hTime.Unix()+120 < time.Now().Unix() {
+				continue
+			}
 		}
 
 		device := DevReportData{
 			Code:      dev.Id,
+			Model:     dev.Ext.Model,
 			Type:      "camera",
 			Name:      dev.Name,
-			Addr:      dev.Addr+dev.Floor,
-			IpAddr:    dev.Ip,
+			Addr:      dev.Ext.Place,
+			IpAddr:    dev.Ext.IPAddr,
+			Latitude:  fmt.Sprintf("%f", dev.Ext.Latitude),
+			Longitude: fmt.Sprintf("%f", dev.Ext.Longitude),
 		}
 
 		data, err := json.Marshal(device)
@@ -71,9 +71,7 @@
 			return err
 		}
 
-		logger.Info("Report device info. %+v", dev)
-
-		headers := map[string]string{"Content-Type": "applicaiton/json; charset=UTF-8"}
+		headers := map[string]string{"Content-Type": "application/json; charset=UTF-8"}
 		_, err = util.HttpPost(config.ForwardConf.ReportServer, headers, data)
 		if err != nil {
 			return err
@@ -81,18 +79,4 @@
 	}
 
 	return nil
-}
-
-func KeepDeviceAlive(id string) {
-	// 涓婃姤璁惧淇℃伅
-	var d = models.Device{
-		Id: id,
-	}
-
-	err := d.Upsert()
-	if err != nil {
-		logger.Warn("Device db update camera error:%s", err.Error())
-	}
-
-	deviceAliveCache.Add(id, true)
 }

--
Gitblit v1.8.0