| | |
| | | |
| | | import ( |
| | | "encoding/base64" |
| | | "gat1400Exchange/config" |
| | | "gat1400Exchange/pkg" |
| | | "gat1400Exchange/service" |
| | | "fmt" |
| | | "math/rand" |
| | | "net/http" |
| | | "strconv" |
| | | "time" |
| | | |
| | | "gat1400Exchange/config" |
| | | "gat1400Exchange/pkg" |
| | | "gat1400Exchange/pkg/logger" |
| | | "gat1400Exchange/repository" |
| | | "gat1400Exchange/service" |
| | | "gat1400Exchange/vo" |
| | | |
| | | "github.com/gin-gonic/gin" |
| | |
| | | |
| | | // 如果开启了下级, 身份应该是消息代理, 不再转发到服务器 |
| | | if config.ClientConf.Enable && config.ServeConf.Role == "agent" { |
| | | go a.Repository.VIIDMsgForward(&req) |
| | | go a.Repository.VIIDFaceMsgForward(&req) |
| | | } else if config.ServeConf.Role == "cascade" { |
| | | go service.AddFaceNotification(&face) |
| | | } |
| | |
| | | videoLabel := req.VideoLabelListObject.VideoLabelObject[0] |
| | | logger.Debug("Receive new message, Id:%s Ip:%s ", videoLabel.VideoLabelID, c.RemoteIP()) |
| | | |
| | | // 转人脸消息 |
| | | var face vo.FaceObject |
| | | face.FaceID = videoLabel.VideoLabelID |
| | | face.InfoKind = 1 |
| | | face.SourceID = videoLabel.VideoImageID |
| | | face.DeviceID = videoLabel.IVADeviceID |
| | | face.LocationMarkTime = videoLabel.CreateTimeAbs |
| | | face.FaceAppearTime = videoLabel.BehaviorAnalysisObject.BehaviorBeginTime |
| | | face.FaceDisAppearTime = videoLabel.BehaviorAnalysisObject.BehaviorEndTime |
| | | // 转人员消息 |
| | | var person vo.PersonObject |
| | | person.PersonID = videoLabel.VideoLabelID[0:41] + "01" + videoLabel.VideoLabelID[43:48] |
| | | person.InfoKind = "1" |
| | | person.DeviceID = videoLabel.IVADeviceID |
| | | person.SourceID = videoLabel.VideoImageID |
| | | person.LocationMarkTime = videoLabel.BehaviorAnalysisObject.BehaviorBeginTime |
| | | person.PersonAppearTime = videoLabel.BehaviorAnalysisObject.BehaviorBeginTime |
| | | person.PersonDisAppearTime = videoLabel.BehaviorAnalysisObject.BehaviorEndTime |
| | | person.IsDriver = 2 |
| | | person.IsCriminalInvolved = 2 |
| | | |
| | | var hasTargetImage bool |
| | | var bgImageWith, bgImageHeight int |
| | |
| | | bgImage = &videoLabel.SubImageList.SubImageInfoObject[idx] |
| | | } |
| | | |
| | | face.SubImageList.SubImageInfoObject = append( |
| | | face.SubImageList.SubImageInfoObject, |
| | | person.SubImageList.SubImageInfoObject = append( |
| | | person.SubImageList.SubImageInfoObject, |
| | | videoLabel.SubImageList.SubImageInfoObject[idx], |
| | | ) |
| | | } |
| | |
| | | return |
| | | } |
| | | |
| | | imageId := bgImage.ImageID[37:41] |
| | | imageNumber, err := strconv.Atoi(imageId) |
| | | if err != nil { |
| | | imageNumber = rand.Intn(90000) + 10000 |
| | | } else { |
| | | imageNumber++ |
| | | } |
| | | var subImageInfo = vo.SubImageInfoObject{ |
| | | ImageID: bgImage.ImageID + "1", |
| | | ImageID: fmt.Sprintf("%s%d", bgImage.ImageID[0:37], imageNumber), |
| | | EventSort: 10, |
| | | DeviceID: bgImage.DeviceID, |
| | | StoragePath: "", |
| | |
| | | Height: subRect.Top - subRect.Bottom, |
| | | Data: base64.StdEncoding.EncodeToString(subImage), |
| | | } |
| | | face.SubImageList.SubImageInfoObject = append( |
| | | face.SubImageList.SubImageInfoObject, |
| | | person.SubImageList.SubImageInfoObject = append( |
| | | person.SubImageList.SubImageInfoObject, |
| | | subImageInfo, |
| | | ) |
| | | } |
| | | |
| | | // 如果开启了下级, 身份应该是消息代理, 不再转发到服务器 |
| | | if config.ClientConf.Enable && config.ServeConf.Role == "agent" { |
| | | var faceObjList vo.RequestFaceList |
| | | faceObjList.FaceListObject.FaceObject = append(faceObjList.FaceListObject.FaceObject, face) |
| | | go a.Repository.VIIDMsgForward(&faceObjList) |
| | | var personList vo.RequestPersonList |
| | | personList.PersonListObject.PersonObject = append(personList.PersonListObject.PersonObject, person) |
| | | go a.Repository.VIIDPersonMsgForward(&personList) |
| | | } else if config.ServeConf.Role == "cascade" { |
| | | go service.AddFaceNotification(&face) |
| | | go service.AddPersonNotification(&person) |
| | | } |
| | | |
| | | if config.ForwardConf.SyncServer != "" { |
| | | go a.Repository.FaceForward([]vo.FaceObject{face}) |
| | | go a.Repository.PersonForward([]vo.PersonObject{person}) |
| | | } |
| | | |
| | | rspMsg := vo.ResponseStatus{ |