| | |
| | | package insertdata |
| | | package main |
| | | |
| | | import ( |
| | | "encoding/base64" |
| | | "encoding/json" |
| | | "errors" |
| | | "net" |
| | | "ruleprocess/insertdata" |
| | | "strconv" |
| | | "time" |
| | | |
| | |
| | | rules []structure.Result |
| | | } |
| | | |
| | | func InsertToEs(msg structure.ResultMsg) { |
| | | defer func() { |
| | | if err := recover(); err != nil { |
| | | _ = logger.Error("es模块儿的异常捕获:", err) |
| | | } |
| | | }() |
| | | localConfig1, err := cache.GetServerInfo() |
| | | if err != nil { |
| | | panic("配置文件不合法") |
| | | } |
| | | weedfsUrl = "http://" + localConfig1.WebPicIp + ":" + strconv.Itoa(int(localConfig1.WebPicPort)) + "/submit" |
| | | videoPersonUrl = "http://" + localConfig1.AlarmIp + ":" + strconv.Itoa(int(localConfig1.AlarmPort)) + "/" + EsInfo.EsIndex.AIOcean.IndexName + "/" + EsInfo.EsIndex.AIOcean.IndexType+"?refresh=true" |
| | | serverIp = localConfig1.AlarmIp |
| | | serverPort = strconv.Itoa(int(localConfig1.AlarmPort)) |
| | | func InsertToEs(msg structure.ResultMsg,weedfsUrl1,videoPersonUrl1,serverIp1,serverPort1 string){ |
| | | weedfsUrl = weedfsUrl1 |
| | | videoPersonUrl = videoPersonUrl1 |
| | | serverIp = serverIp1 |
| | | serverPort = serverPort1 |
| | | for k,results := range msg.RuleResult { |
| | | if results != nil && len(results.([]structure.Result)) > 0{ |
| | | switch k { |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 往es中插入人脸类型数据 |
| | | func InsertFace(msg structure.ResultMsg,key string, results interface{}) { |
| | | logger.Info("往es插入抓拍数据") |
| | |
| | | faces = PutFace(faces, results.([]structure.Result)) |
| | | //logger.Info("整理后的数据:",faces) |
| | | if faces != nil { |
| | | _ = logger.Warn("face不为nil") |
| | | logger.Warn("face不为nil") |
| | | var imgMaxUrl []string = []string{} |
| | | var picTime string = "" |
| | | for _, face := range faces { |
| | |
| | | bytes := util.SubImg(i, int(face.Location.X), int(face.Location.Y), int(face.Location.X+face.Location.Width), int(face.Location.Y+face.Location.Height),face.Type) |
| | | resp, err := util.PostFormBufferData1(weedfsUrl, bytes, uuid.NewV4().String()) |
| | | if err != nil { |
| | | _ = logger.Error("上传小图出错") |
| | | logger.Error("上传小图出错") |
| | | } |
| | | // 上传大图 |
| | | if len(imgMaxUrl) == 0 { |
| | |
| | | } |
| | | if key == "track" && len(face.Liker) == 1{ |
| | | esid := face.Liker[0].TargetId |
| | | returnMsg, err1 := esutil.AppendTargetInfo(esid, string(requstbody),EsInfo.EsIndex.AIOcean.IndexName,serverIp,serverPort) |
| | | returnMsg, err1 := esutil.AppendTargetInfo(esid, string(requstbody),structure.EsInfo.EsIndex.AIOcean.IndexName,serverIp,serverPort) |
| | | if err1 != nil { |
| | | _ = logger.Error("追加数据出错!---", err1) |
| | | logger.Error("追加数据出错!---", err1) |
| | | } else { |
| | | logger.Info("插入es返回的信息:", returnMsg) |
| | | // 发出录像信号 |
| | | ruleserver.AddLxMessage(&protomsg.VideotapeInfo{EsDataId: face.Uuid, CameraId: msg.Cid, TaskId: msg.Tasklab.Taskid, VideoUrl: msg.Push.VideoUrl, ImgId: i.Id, SdkIds: []string{"-1"}, Type: 1}) |
| | | } |
| | | } else { |
| | | resp1, err1 := EsReq("POST", videoPersonUrl, requstbody) |
| | | resp1, err1 := insertdata.EsReq("POST", videoPersonUrl, requstbody) |
| | | if err1 != nil { |
| | | _ = logger.Error("上传ES出错!---", err1) |
| | | logger.Error("上传ES出错!---", err1) |
| | | } else { |
| | | logger.Info("插入es返回的信息:", resp1) |
| | | // 发出录像信号 |
| | |
| | | err = proto.Unmarshal(bdata, &i) |
| | | resp1, err1 := util.DrawPolygonOnImageForYolo(msg1.Cid, i, msg1.RuleResult["yolo"].([]structure.Result), weedfsUrl) |
| | | if err1 != nil { |
| | | _ = logger.Error("缓存数据画框或上传图片服务器出错", err) |
| | | logger.Error("缓存数据画框或上传图片服务器出错", err) |
| | | } else { |
| | | logger.Info("上传的图片信息:", resp1) |
| | | } |
| | |
| | | //resp, err = util.PostFormBufferData(weedfsUrl, i, uuid.NewV4().String()) |
| | | resp, err = util.DrawPolygonOnImageForYolo(msg.Cid, i, msg.RuleResult["yolo"].([]structure.Result), weedfsUrl) |
| | | if err != nil { |
| | | _ = logger.Error("画框或上传图片服务器出错", err) |
| | | logger.Error("画框或上传图片服务器出错", err) |
| | | return |
| | | } else { |
| | | logger.Info("上传的图片信息:", resp) |
| | |
| | | logger.Info("json parse error ", err) |
| | | return |
| | | } |
| | | resp1, err2 := EsReq("POST", videoPersonUrl, requstbody) |
| | | resp1, err2 := insertdata.EsReq("POST", videoPersonUrl, requstbody) |
| | | if err2 != nil { |
| | | _ = logger.Error("往ES插入数据失败", err) |
| | | logger.Error("往ES插入数据失败", err) |
| | | } else { |
| | | logger.Debug("插入es返回的数据信息是(yolo):", resp1) |
| | | // 发出录像信号 |
| | |
| | | logger.Info("联动任务的录像信号:", index) |
| | | ruleserver.AddLxMessage(&protomsg.VideotapeInfo{EsDataId: msg.Push.PushId, CameraId: link.CameraId, TaskId: msg.Tasklab.Taskid, VideoUrl: msg.Push.VideoUrl, ImgId: i.Id, SdkIds: []string{strconv.Itoa(index)}, Type: 2}) |
| | | } |
| | | _ = logger.Warn("__________________________________________往ES插入yolo数据成功") |
| | | logger.Warn("__________________________________________往ES插入yolo数据成功") |
| | | //os.Exit(1) |
| | | } |
| | | } |
| | |
| | | //resp, err = util.PostFormBufferData(weedfsUrl, i, uuid.NewV4().String()) |
| | | resp, err = util.DrawPolygonOnImageForYolo(msg.Cid, i, msg.RuleResult["target"].([]structure.Result), weedfsUrl) |
| | | if err != nil { |
| | | _ = logger.Error("画框或上传图片服务器出错", err) |
| | | logger.Error("画框或上传图片服务器出错", err) |
| | | return |
| | | } else { |
| | | logger.Info("上传的图片信息:", resp) |
| | |
| | | logger.Info("json parse error ", err) |
| | | return |
| | | } |
| | | resp1, err2 := EsReq("POST", videoPersonUrl, requstbody) |
| | | resp1, err2 := insertdata.EsReq("POST", videoPersonUrl, requstbody) |
| | | if err2 != nil { |
| | | _ = logger.Error("往ES插入数据失败", err) |
| | | logger.Error("往ES插入数据失败", err) |
| | | } else { |
| | | logger.Debug("插入es返回的数据信息是(target):", resp1) |
| | | // 发出录像信号 |
| | |
| | | logger.Info("联动任务的录像信号:", index) |
| | | ruleserver.AddLxMessage(&protomsg.VideotapeInfo{EsDataId: msg.Push.PushId, CameraId: link.CameraId, TaskId: msg.Tasklab.Taskid, VideoUrl: msg.Push.VideoUrl, ImgId: i.Id, SdkIds: []string{strconv.Itoa(index)}, Type: 2}) |
| | | } |
| | | _ = logger.Warn("__________________________________________往ES插入target数据成功") |
| | | logger.Warn("__________________________________________往ES插入target数据成功") |
| | | //os.Exit(1) |
| | | } |
| | | } |
| | |
| | | err = proto.Unmarshal(bdata, &i) |
| | | resp1, err1 := util.DrawPolygonOnImageForTarget(msg.Cid, i, msg.RuleResult["target"].([]structure.Result), weedfsUrl) |
| | | if err1 != nil { |
| | | _ = logger.Error("缓存数据画框或上传图片服务器出错", err) |
| | | logger.Error("缓存数据画框或上传图片服务器出错", err) |
| | | } else { |
| | | logger.Info("上传的图片信息:", resp1) |
| | | } |
| | |
| | | err = proto.Unmarshal(bdata, &i) |
| | | resp1, err1 := util.DrawPolygonOnImageForYolo(msg1.Cid, i, msg1.RuleResult["yolo"].([]structure.Result), weedfsUrl) |
| | | if err1 != nil { |
| | | _ = logger.Error("缓存数据画框或上传图片服务器出错", err) |
| | | logger.Error("缓存数据画框或上传图片服务器出错", err) |
| | | } else { |
| | | logger.Info("上传的图片信息:", resp1) |
| | | } |
| | |
| | | //resp, err = util.PostFormBufferData(weedfsUrl, i, uuid.NewV4().String()) |
| | | resp, err = util.DrawPolygonOnImageForYolo(msg.Cid, i, msg.RuleResult["yolo"].([]structure.Result), weedfsUrl) |
| | | if err != nil { |
| | | _ = logger.Error("画框或上传图片服务器出错", err) |
| | | logger.Error("画框或上传图片服务器出错", err) |
| | | return nil |
| | | } else { |
| | | logger.Info("上传的图片信息:", resp) |