From d6831b733a4a97f2271c544c92ce33701634a97b Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期五, 29 三月 2024 13:55:17 +0800
Subject: [PATCH] 修复楼层匹配

---
 repository/captureRepo.go |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/repository/captureRepo.go b/repository/captureRepo.go
index 76a963d..1928a33 100644
--- a/repository/captureRepo.go
+++ b/repository/captureRepo.go
@@ -48,7 +48,7 @@
 		// 杞彂鍥惧儚
 		logger.Debug("鍑嗗杞彂,deviceId:%s, image len:%d, server:%s", deviceId, len(faceImageStr), config.ForwardConf.SyncServer)
 		if deviceId != "" && faceImageStr != "" && config.ForwardConf.SyncServer != "" {
-			pd := c.PackPushData(deviceId, faceId, faceImageStr)
+			pd := c.PackPushData(deviceId, faceId, faceImageStr, face.FaceAppearTime)
 			if pd == nil {
 				return
 			}
@@ -65,7 +65,7 @@
 	return
 }
 
-func (c CaptureRepository) PackPushData(deviceId, faceId, faceImage string) *vo.PushDataInfo {
+func (c CaptureRepository) PackPushData(deviceId, faceId, faceImage, appearTime string) *vo.PushDataInfo {
 	var pd = new(vo.PushDataInfo)
 	var device models.Device
 
@@ -73,6 +73,16 @@
 		logger.Warn("Can't find device in database, device:%s, %s", deviceId, err.Error())
 		return pd
 	}
+
+	// 鍖归厤妤煎眰
+	aTime, err := time.ParseInLocation("20060102150405", appearTime, time.Local)
+	if err != nil {
+		logger.Warn("Parse face appear time error,%s", err.Error())
+		aTime = time.Now()
+	}
+
+	var devPos models.Positions
+	_ := devPos.FindDevicePosition(deviceId, aTime.Unix())
 
 	imageBytes, err := base64.StdEncoding.DecodeString(faceImage)
 	if err != nil {
@@ -85,7 +95,7 @@
 	tr := vo.TaskResultInfo{
 		Id:            uuid.NewV4().String(),
 		CameraId:      deviceId,
-		CameraAddr:    device.Addr + device.Pos,
+		CameraAddr:    device.Addr + devPos.Pos,
 		CameraName:    device.Name,
 		PicMaxUrl:     []string{""},
 		PicDate:       time.Now().Format("2006-01-02 15:04:05"),

--
Gitblit v1.8.0