From 4a15c5ab69122cc4921d67f849a928842e299c21 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期六, 30 三月 2024 11:21:11 +0800
Subject: [PATCH] 修正楼层匹配的逻辑
---
models/device.go | 1 +
repository/captureRepo.go | 15 ++++++++++-----
models/positions.go | 3 ++-
3 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/models/device.go b/models/device.go
index 854ae65..89d2fb1 100644
--- a/models/device.go
+++ b/models/device.go
@@ -63,6 +63,7 @@
DeviceId: d.Id,
Pos: d.Pos,
CreateTime: time.Now().Unix(),
+ TimeString: time.Now().Format("2006-01-02 15:04:05"),
}
db.Create(&pos)
diff --git a/models/positions.go b/models/positions.go
index f8dbdb5..5e61a07 100644
--- a/models/positions.go
+++ b/models/positions.go
@@ -5,6 +5,7 @@
DeviceId string `gorm:"column:device_id;" json:"device_id"`
Pos string `gorm:"column:pos" json:"pos"`
CreateTime int64 `gorm:"column:create_time;"`
+ TimeString string `gorm:"column:time_string;"`
}
func (d *Positions) TableName() string {
@@ -12,5 +13,5 @@
}
func (d *Positions) FindDevicePosition(devId string, timestamp int64) error {
- return db.Table(d.TableName()).Where("device_id = ? AND create_time < ?", devId, timestamp).Order("create_time desc").First(&d).Error
+ return db.Table(d.TableName()).Where("device_id = ? AND create_time <= ?", devId, timestamp).Order("create_time desc").First(&d).Error
}
diff --git a/repository/captureRepo.go b/repository/captureRepo.go
index f4d5c5a..c4ea02f 100644
--- a/repository/captureRepo.go
+++ b/repository/captureRepo.go
@@ -75,14 +75,19 @@
}
// 鍖归厤妤煎眰
- aTime, err := time.ParseInLocation("20060102150405", appearTime, time.Local)
+ faceAppearTime, err := time.ParseInLocation("20060102150405", appearTime, time.Local)
if err != nil {
logger.Warn("Parse face appear time error,%s", err.Error())
- aTime = time.Now()
+ faceAppearTime = time.Now()
}
+ // 鐢垫鍋滄鐨勬椂闂�
+ devStopTime := time.Now().Format("2006-01-02 15:04:05")
var devPos models.Positions
- _ = devPos.FindDevicePosition(deviceId, aTime.Unix())
+ _ = devPos.FindDevicePosition(deviceId, faceAppearTime.Unix()+5) // 鍔�5绉掔數姊叧闂ㄧ殑鏃堕棿
+ if devPos.TimeString != "" {
+ devStopTime = devPos.TimeString
+ }
imageBytes, err := base64.StdEncoding.DecodeString(faceImage)
if err != nil {
@@ -98,8 +103,8 @@
CameraAddr: device.Addr + devPos.Pos,
CameraName: device.Name,
PicMaxUrl: []string{""},
- PicDate: time.Now().Format("2006-01-02 15:04:05"),
- LikeDate: time.Now().Format("2006-01-02 15:04:05"),
+ PicDate: faceAppearTime.Format("2006-01-02 15:04:05"),
+ LikeDate: devStopTime,
AnalyServerId: deviceId,
DataSource: "camera",
TargetInfo: []vo.TargetInfo{{TargetId: faceId}},
--
Gitblit v1.8.0