zhangzengfei
2024-03-30 4a15c5ab69122cc4921d67f849a928842e299c21
修正楼层匹配的逻辑
3个文件已修改
19 ■■■■■ 已修改文件
models/device.go 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/positions.go 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
repository/captureRepo.go 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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)
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
}
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}},