From 52830a58e2907f83e8f891728b8ba3080ca59fb1 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期三, 05 六月 2024 17:40:28 +0800
Subject: [PATCH] 修改切图的判断条件

---
 controller/captureCtl.go |   99 +++++++++++++++++++++++++++++++++++++------------
 1 files changed, 74 insertions(+), 25 deletions(-)

diff --git a/controller/captureCtl.go b/controller/captureCtl.go
index a6fc5cb..7e53382 100644
--- a/controller/captureCtl.go
+++ b/controller/captureCtl.go
@@ -2,14 +2,17 @@
 
 import (
 	"encoding/base64"
-	"gat1400Exchange/config"
-	"gat1400Exchange/pkg"
-	"gat1400Exchange/service"
+	"fmt"
+	"math/rand"
 	"net/http"
+	"strconv"
 	"time"
 
+	"gat1400Exchange/config"
+	"gat1400Exchange/pkg"
 	"gat1400Exchange/pkg/logger"
 	"gat1400Exchange/repository"
+	"gat1400Exchange/service"
 	"gat1400Exchange/vo"
 
 	"github.com/gin-gonic/gin"
@@ -41,11 +44,11 @@
 	}
 
 	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" {
-		go a.Repository.VIIDMsgForward(&req)
+		go a.Repository.VIIDFaceMsgForward(&req)
 	} else if config.ServeConf.Role == "cascade" {
 		go service.AddFaceNotification(&face)
 	}
@@ -78,17 +81,19 @@
 	}
 
 	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 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
+	// 杞汉鍛樻秷鎭�
+	var person vo.PersonObject
+	person.PersonID = videoLabel.VideoLabelID[0:41] + "01" + videoLabel.VideoLabelID[43:48]
+	person.InfoKind = "1"
+	person.DeviceID = videoLabel.IVADeviceID
+	person.SourceID = videoLabel.VideoImageID
+	person.LocationMarkTime = videoLabel.BehaviorAnalysisObject.BehaviorBeginTime
+	person.PersonAppearTime = videoLabel.BehaviorAnalysisObject.BehaviorBeginTime
+	person.PersonDisAppearTime = videoLabel.BehaviorAnalysisObject.BehaviorEndTime
+	person.IsDriver = 2
+	person.IsCriminalInvolved = 2
 
 	var hasTargetImage bool
 	var bgImageWith, bgImageHeight int
@@ -104,8 +109,8 @@
 			bgImage = &videoLabel.SubImageList.SubImageInfoObject[idx]
 		}
 
-		face.SubImageList.SubImageInfoObject = append(
-			face.SubImageList.SubImageInfoObject,
+		person.SubImageList.SubImageInfoObject = append(
+			person.SubImageList.SubImageInfoObject,
 			videoLabel.SubImageList.SubImageInfoObject[idx],
 		)
 	}
@@ -129,8 +134,15 @@
 			return
 		}
 
+		imageId := bgImage.ImageID[37:41]
+		imageNumber, err := strconv.Atoi(imageId)
+		if err != nil {
+			imageNumber = rand.Intn(90000) + 10000
+		} else {
+			imageNumber++
+		}
 		var subImageInfo = vo.SubImageInfoObject{
-			ImageID:     bgImage.ImageID + "1",
+			ImageID:     fmt.Sprintf("%s%d", bgImage.ImageID[0:37], imageNumber),
 			EventSort:   10,
 			DeviceID:    bgImage.DeviceID,
 			StoragePath: "",
@@ -141,23 +153,23 @@
 			Height:      subRect.Top - subRect.Bottom,
 			Data:        base64.StdEncoding.EncodeToString(subImage),
 		}
-		face.SubImageList.SubImageInfoObject = append(
-			face.SubImageList.SubImageInfoObject,
+		person.SubImageList.SubImageInfoObject = append(
+			person.SubImageList.SubImageInfoObject,
 			subImageInfo,
 		)
 	}
 
 	// 濡傛灉寮�鍚簡涓嬬骇, 韬唤搴旇鏄秷鎭唬鐞�, 涓嶅啀杞彂鍒版湇鍔″櫒
 	if config.ClientConf.Enable && config.ServeConf.Role == "agent" {
-		var faceObjList vo.RequestFaceList
-		faceObjList.FaceListObject.FaceObject = append(faceObjList.FaceListObject.FaceObject, face)
-		go a.Repository.VIIDMsgForward(&faceObjList)
+		var personList vo.RequestPersonList
+		personList.PersonListObject.PersonObject = append(personList.PersonListObject.PersonObject, person)
+		go a.Repository.VIIDPersonMsgForward(&personList)
 	} else if config.ServeConf.Role == "cascade" {
-		go service.AddFaceNotification(&face)
+		go service.AddPersonNotification(&person)
 	}
 
 	if config.ForwardConf.SyncServer != "" {
-		go a.Repository.FaceForward([]vo.FaceObject{face})
+		go a.Repository.PersonForward([]vo.PersonObject{person})
 	}
 
 	rspMsg := vo.ResponseStatus{
@@ -170,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