From 1e24626fa58f488f7744ce94e88a650f05c7a749 Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期四, 08 八月 2019 18:53:38 +0800 Subject: [PATCH] add log --- controllers/fileController.go | 156 +++++++++++++++++++++++++-------------------------- 1 files changed, 77 insertions(+), 79 deletions(-) diff --git a/controllers/fileController.go b/controllers/fileController.go index febd9cc..8ebc80c 100644 --- a/controllers/fileController.go +++ b/controllers/fileController.go @@ -20,6 +20,7 @@ "sort" "strconv" "strings" + "sync" "time" "webserver/extend/code" "webserver/extend/config" @@ -202,7 +203,7 @@ dbPersonM := make(map[string]*protomsg.SdkCompareEach, 0) captureM := make(map[string]*protomsg.SdkCompareEach, 0) - personIds :=make([]string,0) + personIds := make([]string,0) captureIds := make([]string,0) for _,v :=range compResult.CompareResult{ if v.Tableid == service.CaptureTable { @@ -223,8 +224,7 @@ dbpersons, _ = esApi.Dbpersoninfosbyid(personIds, index, esServerIp, esServerPort) } - logger.Debug("comp dbpersons.len:", len(dbpersons)) - if dbpersons !=nil { + if len(dbpersons) >0 { for _,p :=range dbpersons { var dbP = DbPersonVo { PersonId: p.Id, @@ -291,7 +291,17 @@ resultList = append(resultList,vpE) } } + var scorePre []float32 + for _,f1 :=range resultList { + scorePre = append(scorePre, f1.CompareScore) + } + logger.Debug("comp 鎺掑簭鍓嶅垎鍊兼暟缁勶細",scorePre) sort.Sort(resultList) + var scoreAf []float32 + for _,f2 :=range resultList { + scoreAf = append(scoreAf, f2.CompareScore) + } + logger.Debug("comp 鎺掑簭鍚庡垎鍊兼暟缁勶細",scoreAf) return resultList } @@ -320,41 +330,38 @@ func (controller FileController) SearchByPhoto(c *gin.Context) { var searchBody models.EsSearch err := c.BindJSON(&searchBody) - if err !=nil || searchBody.PicUrl == "" || len(searchBody.DataBases) == 0 { + if err !=nil{ util.ResponseFormat(c, code.RequestParamError, "鍙傛暟鏈夎") return } var faceB []byte - if searchBody.CaptureId != "" {//鍋氭煡鎵炬浜� - searchPeople, err := esApi.Dbpersoninfosbyid([]string{searchBody.CaptureId}, config.EsInfo.EsIndex.VideoPersons.IndexName, config.EsInfo.Masterip, config.EsInfo.Httpport) + if searchBody.CaptureId != "" {//鍋氭煡鎵炬浜�,鎼滄墍鏈夋姄鎷嶅拰搴曞簱 + searchBase64Fea, err := esApi.GetVideoPersonFaceFeatureById(searchBody.CaptureId, config.EsInfo.EsIndex.VideoPersons.IndexName, config.EsInfo.Masterip, config.EsInfo.Httpport) if err !=nil { util.ResponseFormat(c, code.ComError, "鎶撴媿鏁版嵁涓嶅瓨鍦紝璇锋鏌�") return } - if searchPeople !=nil && len(searchPeople) == 1{ - decodeF, err := base64.StdEncoding.DecodeString(searchPeople[0].FaceFeature) + if searchBase64Fea !=""{ + decodeF, err := base64.StdEncoding.DecodeString(searchBase64Fea) if err !=nil { util.ResponseFormat(c, code.ComError, "鏈潯鎶撴�曠壒寰佷笉鏄痓ase64锛岃妫�鏌�") return } faceB = decodeF } + } else {//鍋氫互鍥炬悳鍥� + if searchBody.PicUrl == "" || len(searchBody.DataBases) == 0 { + util.ResponseFormat(c, code.RequestParamError, "鍙傛暟鏈夎") + return + } + if face,ok := faceExtractedMap[searchBody.PicUrl];!ok{ + util.ResponseFormat(c, code.RequestParamError, "璇烽噸鏂颁笂浼犲浘鐗�") + return + } else { + faceB = face.FaceBytes + } } - //if searchBody.CompareNum !="" { - // //浜屾鎼滅储锛屼笉闇�瑕佸啀姣斿浜� - // co := service.GetCompResultByNum(searchBody.CompareNum) - // if co != nil { - // //浜屾鎼滅储鍜屾帓搴� - // twiceM := GetCompareDataTwice(co,&searchBody) - // util.ResponseFormat(c,code.Success,twiceM) - // } else { - // m :=make(map[string]interface{},0) - // m["compareNum"] = searchBody.CompareNum - // m["total"] = 0 - // m["totalList"] = []CompareResult{} - // util.ResponseFormat(c,code.CompareResultGone,m) - // } - //} + var sysSetApi dbapi.SysSetApi analyServerId := "" flag, sysconf := sysSetApi.GetServerInfo() @@ -364,14 +371,7 @@ util.ResponseFormat(c, code.ComError, "analyServerId涓虹┖锛岄厤缃湁璇�") return } - if searchBody.CaptureId == ""{ - if face,ok := faceExtractedMap[searchBody.PicUrl];!ok{ - util.ResponseFormat(c, code.RequestParamError, "璇烽噸鏂颁笂浼犲浘鐗�") - return - } else { - faceB = face.FaceBytes - } - } + if faceB == nil { util.ResponseFormat(c, code.RequestParamError, "璇烽噸鏂颁笂浼犲浘鐗�") return @@ -390,6 +390,8 @@ } } arg.TableIds = searchBody.DataBases + } else { + arg.TableIds = []string{} } arg.Source = true // 鏍囪瘑鏉ユ簮鏄痺eb arg.AlarmLevel = searchBody.AlarmLevel @@ -413,16 +415,16 @@ m := make(map[string]interface{},3) if totalData != nil && totalData.Len() > 0{ //鎸夊垎鍊兼帓搴� - var scorePre []float32 - for _,f1 :=range *totalData { - scorePre = append(scorePre, f1.CompareScore) - } + //var scorePre []float32 + //for _,f1 :=range *totalData { + // scorePre = append(scorePre, f1.CompareScore) + //} //logger.Debug("comp 鎺掑簭鍓嶅垎鍊兼暟缁勶細",scorePre) sort.Sort(totalData) - var scoreAf []float32 - for _,f2 :=range *totalData { - scoreAf = append(scoreAf, f2.CompareScore) - } + //var scoreAf []float32 + //for _,f2 :=range *totalData { + // scoreAf = append(scoreAf, f2.CompareScore) + //} //logger.Debug("comp 鎺掑簭鍚庡垎鍊兼暟缁勶細",scoreAf) total := totalData.Len() @@ -598,8 +600,13 @@ } var weedfsUri = "http://"+config.WeedFs.Ip+":"+strconv.Itoa(config.WeedFs.UploadPort)+"/submit" //鏍规嵁浜鸿劯鍧愭爣鎵e嚭浜鸿劯灏忓浘 + t1 := time.Now() cutFaceImgData := util.SubImg(*pI, int(rcFace.Left), int(rcFace.Top), int(rcFace.Right), int(rcFace.Bottom)) + logger.Debug("SubImg鐢ㄦ椂锛�", time.Since(t1)) + t1 = time.Now() fileInfo, e := esutil.PostFormData(weedfsUri, filename, "file", cutFaceImgData) + logger.Debug("涓婁紶鍒皐eedfs鐢ㄦ椂:", time.Since(t1)) + t1 = time.Now() if e != nil { fmt.Println(e.Error()) return "", nil, e @@ -623,30 +630,10 @@ dbperson.FaceFeature = faceBase64 // 鐗瑰緛鍊糱ase64 鐮� result := addDbPerson(dbperson) + logger.Debug("addDbPerson鐢ㄦ椂锛�", time.Since(t1)) return fileNameOnly, result, nil } - -//func getFaceFeaFromSdk(fileBytes []byte) ([]*protomsg.ResultFaceExtCom,error,*protomsg.Image){ -// s := service.NewFaceSdkService(fileBytes) -// i, err := s.ReadFromUploadImg() -// if err !=nil{ -// fmt.Println("readFromUploadImg err:",err) -// return nil,err,i -// } -// bc, err := service.ImgCompress(i) -// if err !=nil { -// fmt.Println("ImgCompress err:",err) -// return nil,err,i -// } -// s.PushImgMsg(bc) -// s.GetFaceFea() -// if s.Result == nil{ -// return nil,errors.New("no fea"),i -// } else { -// return s.Result,nil,i -// } -//} /**涓婁紶鏂规硶**/ @@ -674,33 +661,44 @@ addResult := make(map[string]interface{}, 0) successList := make([]string, 0) failList := make([]string,0) + tAllStart := time.Now() + var wg sync.WaitGroup + var lock sync.Mutex for _, head := range fileHeaders { - //鏂囦欢鐨勫悕绉� - filename := head.Filename - file, err := head.Open() - fmt.Println(file, err, filename) - if err != nil { - log.Fatal(err) - } - - field, _, err1 := uploadFileReturnAddr(file, filename, tableId) - //extNames = append(extNames, field) - - if err1 != nil || field == "" { - failList = append(failList, filename) - } else { - successList = append(successList, filename) - } + wg.Add(1) + go func(head *multipart.FileHeader,tableId string) { + defer wg.Done() + tIStart := time.Now() + filename := head.Filename + file, err := head.Open() + fmt.Println(file, err, filename) + if err != nil { + lock.Lock() + failList = append(failList, filename) + lock.Unlock() + return + } + field, _, err1 := uploadFileReturnAddr(file, filename, tableId) + lock.Lock() + if err1 != nil || field == "" { + failList = append(failList, filename) + } else { + successList = append(successList, filename) + } + lock.Unlock() + logger.Debug(filename,"鍒囧浘鐢ㄦ椂锛�",time.Since(tIStart)) + }(head, tableId) + wg.Wait() } + logger.Debug("鍒�",len(fileHeaders),"寮犱汉鑴哥敤鏃讹細", time.Since(tAllStart)) addResult["successList"] = successList addResult["failList"] = failList addResult["fields"] = extNames - //addResult["detail"] = details - //fields := fdfsclient.UploadFileByBuffer100(bytess, extNames) // fastdfs 涓婁紶 + if len(successList)>0 { util.ResponseFormat(c, code.DbPersonUploadSuccess, addResult) } else { - util.ResponseFormat(c, code.ServiceInsideError, err.Error()) + util.ResponseFormat(c, code.DbPersonUploadFail, addResult) } } -- Gitblit v1.8.0