From a6cfc30060b3dc2d3808a9f4b51f77b2c0000798 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期三, 22 五月 2024 03:06:29 +0800
Subject: [PATCH] 修复设备类型缓存类型错误的bug

---
 controller/captureCtl.go |   69 ++++++++++++++++++++++++++++++----
 1 files changed, 60 insertions(+), 9 deletions(-)

diff --git a/controller/captureCtl.go b/controller/captureCtl.go
index dbf3b31..4ea6154 100644
--- a/controller/captureCtl.go
+++ b/controller/captureCtl.go
@@ -38,20 +38,19 @@
 		return
 	}
 
-	// 濡傛灉寮�鍚簡涓嬬骇, 韬唤搴旇鏄秷鎭唬鐞�, 涓嶅啀杞彂鍒版湇鍔″櫒
 	face := req.FaceListObject.FaceObject[0]
+	logger.Debug("Receive new message, Id:%s Ip:%s faceId:%s, LeftTopX:%d, appearTime:%s", c.RemoteIP(), face.DeviceID, face.FaceID, face.LeftTopX, face.FaceAppearTime)
+
+	// 濡傛灉寮�鍚簡涓嬬骇, 韬唤搴旇鏄秷鎭唬鐞�, 涓嶅啀杞彂鍒版湇鍔″櫒
 	if config.ClientConf.Enable && config.ServeConf.Role == "agent" {
-		a.Repository.VIIDMsgForward(&req)
+		go a.Repository.VIIDMsgForward(&req)
 	} else if config.ServeConf.Role == "cascade" {
-		logger.Debug("Receive new message, Id:%s Ip:%s faceId:%s, LeftTopX:%d, appearTime:%s", c.RemoteIP(), face.DeviceID, face.FaceID, face.LeftTopX, face.FaceAppearTime)
-		service.AddFaceCapture(&face)
-	} else {
-		logger.Debug("Receive new message, Id:%s Ip:%s faceId:%s, LeftTopX:%d, appearTime:%s", c.RemoteIP(), face.DeviceID, face.FaceID, face.LeftTopX, face.FaceAppearTime)
-		a.Repository.FaceForward(req.FaceListObject.FaceObject)
+		go service.AddFaceNotification(&face)
 	}
 
-	// 璁惧淇濇椿
-	service.KeepDeviceAlive(face.DeviceID)
+	if config.ForwardConf.SyncServer != "" {
+		go a.Repository.FaceForward(req.FaceListObject.FaceObject)
+	}
 
 	rspMsg := vo.ResponseStatus{
 		RequestURL:   c.FullPath(),
@@ -63,3 +62,55 @@
 
 	c.JSON(http.StatusOK, gin.H{"ResponseStatusObject": rspMsg})
 }
+func (a CaptureController) VideoLabels(c *gin.Context) {
+	var req vo.RequestVideoLabelList
+	if err := c.BindJSON(&req); err != nil {
+		c.AbortWithStatus(http.StatusBadRequest)
+		return
+	}
+
+	if len(req.VideoLabelListObject.VideoLabelObject) == 0 {
+		c.AbortWithStatus(http.StatusBadRequest)
+		return
+	}
+
+	videoLabel := req.VideoLabelListObject.VideoLabelObject[0]
+	logger.Debug("Receive new message, Id:%s Ip:%s ", videoLabel.VideoLabelID, c.RemoteIP())
+
+	// 杞汉鑴告秷鎭�
+	var face vo.FaceObject
+	face.FaceID = videoLabel.VideoLabelID
+	face.InfoKind = 1
+	face.SourceID = videoLabel.VideoImageID
+	face.DeviceID = videoLabel.IVADeviceID
+	face.LocationMarkTime = videoLabel.CreateTimeAbs
+	face.FaceAppearTime = videoLabel.BehaviorAnalysisObject.BehaviorBeginTime
+	face.FaceDisAppearTime = videoLabel.BehaviorAnalysisObject.BehaviorEndTime
+
+	for idx, _ := range videoLabel.SubImageList.SubImageInfoObject {
+		videoLabel.SubImageList.SubImageInfoObject[idx].EventSort = 10
+	}
+
+	face.SubImageList.SubImageInfoObject = videoLabel.SubImageList.SubImageInfoObject
+
+	// 濡傛灉寮�鍚簡涓嬬骇, 韬唤搴旇鏄秷鎭唬鐞�, 涓嶅啀杞彂鍒版湇鍔″櫒
+	if config.ClientConf.Enable && config.ServeConf.Role == "agent" {
+		//go a.Repository.VIIDMsgForward(&req)
+	} else if config.ServeConf.Role == "cascade" {
+		go service.AddFaceNotification(&face)
+	}
+
+	if config.ForwardConf.SyncServer != "" {
+		go a.Repository.FaceForward([]vo.FaceObject{face})
+	}
+
+	rspMsg := vo.ResponseStatus{
+		RequestURL:   c.FullPath(),
+		StatusCode:   vo.StatusSuccess,
+		StatusString: vo.StatusString[vo.StatusSuccess],
+		Id:           videoLabel.VideoLabelID,
+		LocalTime:    time.Now().Format("20060102150405"),
+	}
+
+	c.JSON(http.StatusOK, gin.H{"ResponseStatusObject": rspMsg})
+}

--
Gitblit v1.8.0