| | |
| | | DeviceId: d.Id, |
| | | Pos: d.Pos, |
| | | CreateTime: time.Now().Unix(), |
| | | TimeString: time.Now().Format("2006-01-02 15:04:05"), |
| | | } |
| | | |
| | | db.Create(&pos) |
| | |
| | | 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 { |
| | |
| | | } |
| | | |
| | | 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 |
| | | } |
| | |
| | | } |
| | | |
| | | // 匹配楼层 |
| | | 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 { |
| | |
| | | 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}}, |