From 7eb122e20a75ed800cc96b1565522951286e4081 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期一, 03 六月 2024 20:33:33 +0800
Subject: [PATCH] 添加persons 接口

---
 controller/captureCtl.go |   41 +++++++++++++++++++++++++++++++++++++++--
 1 files changed, 39 insertions(+), 2 deletions(-)

diff --git a/controller/captureCtl.go b/controller/captureCtl.go
index 8f3d784..7e53382 100644
--- a/controller/captureCtl.go
+++ b/controller/captureCtl.go
@@ -44,7 +44,7 @@
 	}
 
 	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)
+	logger.Debug("Receive new face message, ip:%s, device id:%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" {
@@ -81,7 +81,7 @@
 	}
 
 	videoLabel := req.VideoLabelListObject.VideoLabelObject[0]
-	logger.Debug("Receive new message, Id:%s Ip:%s ", videoLabel.VideoLabelID, c.RemoteIP())
+	logger.Debug("Receive new videoLabel message, Id:%s Ip:%s ", videoLabel.VideoLabelID, c.RemoteIP())
 
 	// 杞汉鍛樻秷鎭�
 	var person vo.PersonObject
@@ -182,3 +182,40 @@
 
 	c.JSON(http.StatusOK, gin.H{"ResponseStatusObject": rspMsg})
 }
+
+func (a CaptureController) Persons(c *gin.Context) {
+	var req vo.RequestPersonList
+	if err := c.BindJSON(&req); err != nil {
+		c.AbortWithStatus(http.StatusBadRequest)
+		return
+	}
+
+	if len(req.PersonListObject.PersonObject) == 0 {
+		c.AbortWithStatus(http.StatusBadRequest)
+		return
+	}
+
+	person := req.PersonListObject.PersonObject[0]
+	logger.Debug("Receive new person message, ip:%s, device Id:%s personId:%s, appearTime:%s", c.RemoteIP(), person.DeviceID, person.PersonID, person.PersonAppearTime)
+
+	// 濡傛灉寮�鍚簡涓嬬骇, 韬唤搴旇鏄秷鎭唬鐞�, 涓嶅啀杞彂鍒版湇鍔″櫒
+	if config.ClientConf.Enable && config.ServeConf.Role == "agent" {
+		go a.Repository.VIIDPersonMsgForward(&req)
+	} else if config.ServeConf.Role == "cascade" {
+		go service.AddPersonNotification(&person)
+	}
+
+	if config.ForwardConf.SyncServer != "" {
+		go a.Repository.PersonForward(req.PersonListObject.PersonObject)
+	}
+
+	rspMsg := vo.ResponseStatus{
+		RequestURL:   c.FullPath(),
+		StatusCode:   vo.StatusSuccess,
+		StatusString: vo.StatusString[vo.StatusSuccess],
+		Id:           person.PersonID,
+		LocalTime:    time.Now().Format("20060102150405"),
+	}
+
+	c.JSON(http.StatusOK, gin.H{"ResponseStatusObject": rspMsg})
+}

--
Gitblit v1.8.0