zhangzengfei
2024-05-17 2000b36f214b2c8edcec0d812e30a6db85a46482
添加videoLabel 转发
1个文件已添加
2个文件已修改
78 ■■■■■ 已修改文件
controller/captureCtl.go 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
routes/capture.go 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vo/videoLabel.go 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controller/captureCtl.go
@@ -65,3 +65,58 @@
    c.JSON(http.StatusOK, gin.H{"ResponseStatusObject": rspMsg})
}
func (a CaptureController) VideoLabels(c *gin.Context) {
    var req vo.RequestVideoLabelList
    if err := c.BindJSON(&req); err != nil {
        c.AbortWithStatus(http.StatusBadRequest)
        return
    }
    if len(req.VideoLabelListObject.VideoLabelObject) == 0 {
        c.AbortWithStatus(http.StatusBadRequest)
        return
    }
    videoLabel := req.VideoLabelListObject.VideoLabelObject[0]
    logger.Debug("Receive new message, Id:%s Ip:%s faceId:%s, LeftTopX:%d, appearTime:%s", c.RemoteIP(), videoLabel.VideoLabelID)
    // 转人脸消息
    var face vo.FaceObject
    face.FaceID = videoLabel.VideoLabelID
    face.InfoKind = 1
    face.SourceID = videoLabel.VideoImageID
    face.SourceID = videoLabel.VideoImageID
    face.LocationMarkTime = videoLabel.CreateTimeAbs
    face.FaceAppearTime = videoLabel.BehaviorAnalysisObject.BehaviorBeginTime
    face.FaceDisAppearTime = videoLabel.BehaviorAnalysisObject.BehaviorEndTime
    for idx, _ := range videoLabel.SubImageList.SubImageInfoObject {
        videoLabel.SubImageList.SubImageInfoObject[idx].EventSort = 10
    }
    face.SubImageList.SubImageInfoObject = videoLabel.SubImageList.SubImageInfoObject
    // 如果开启了下级, 身份应该是消息代理, 不再转发到服务器
    if config.ClientConf.Enable && config.ServeConf.Role == "agent" {
        //go a.Repository.VIIDMsgForward(&req)
    } else if config.ServeConf.Role == "cascade" {
        go service.AddFaceNotification(&face)
    }
    if config.ForwardConf.SyncServer != "" {
        go a.Repository.FaceForward([]vo.FaceObject{face})
    }
    // 设备保活
    service.KeepDeviceAlive(videoLabel.IVADeviceID)
    rspMsg := vo.ResponseStatus{
        RequestURL:   c.FullPath(),
        StatusCode:   vo.StatusSuccess,
        StatusString: vo.StatusString[vo.StatusSuccess],
        Id:           videoLabel.VideoLabelID,
        LocalTime:    time.Now().Format("20060102150405"),
    }
    c.JSON(http.StatusOK, gin.H{"ResponseStatusObject": rspMsg})
}
routes/capture.go
@@ -12,6 +12,7 @@
    // 批量人脸新增
    r.POST("/Faces", capCtl.Faces)
    r.POST("/VideoLabels", capCtl.VideoLabels)
    return r
}
vo/videoLabel.go
New file
@@ -0,0 +1,22 @@
package vo
type RequestVideoLabelList struct {
    VideoLabelListObject struct {
        VideoLabelObject []VideoLabelObject `json:"VideoLabelObject"`
    } `json:"VideoLabelListObject"`
}
type VideoLabelObject struct {
    VideoLabelID           string `json:"VideoLabelID"`
    EventSort              int    `json:"EventSort"`
    VideoImageID           string `json:"VideoImageID"`
    IVADeviceID            string `json:"IVADeviceID"`
    CreateTimeAbs          string `json:"CreateTimeAbs"`
    BehaviorAnalysisObject struct {
        BehaviorBeginTime string
        BehaviorEndTime   string
    } `json:"BehaviorAnalysisObject"`
    SubImageList struct {
        SubImageInfoObject []SubImageInfoObject
    } `json:"SubImageList"`
}