From d96f024e19c72065f248df0508911f487b72505b Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期三, 21 八月 2019 16:16:28 +0800 Subject: [PATCH] compare proc devide 2,es and db --- controllers/fileController.go | 56 +++++++++++++++++++++++++++----------------------------- 1 files changed, 27 insertions(+), 29 deletions(-) diff --git a/controllers/fileController.go b/controllers/fileController.go index 156ecb4..c9ec1c0 100644 --- a/controllers/fileController.go +++ b/controllers/fileController.go @@ -368,11 +368,12 @@ CompareThreshold: searchBody.Threshold, } + var hasCompEsPerson = false if searchBody.DataBases !=nil { for idx,tableId :=range searchBody.DataBases { if tableId == "esData" { searchBody.DataBases = append(searchBody.DataBases[:idx], searchBody.DataBases[idx+1:]...) - searchBody.DataBases = append(searchBody.DataBases,service.CaptureTable) + hasCompEsPerson = true break } } @@ -395,33 +396,38 @@ timeStart := time.Now() compareService := service.NewFaceCompareService(arg) - compareOnce := compareService.Compare() - totalData := compareOnce.CompareData + var totalData service.CompareList + if len(arg.TableIds) >0 {//鏈夋瘮瀵瑰簳搴� + dbPersonTargets := compareService.CompareDbPersons() + if dbPersonTargets !=nil { + totalData = append(totalData,*dbPersonTargets...) + } + } + if hasCompEsPerson {//鏈夋瘮瀵笶s鎶撴媿 + esPersons := compareService.CompareVideoPersons() + if esPersons !=nil { + totalData = append(totalData, *esPersons...) + } + } logger.Debug("comp 姣斿缁撴潫锛岀敤鏃讹細",time.Since(timeStart)) + service.SetCompResultByNum(&service.CompareOnce{ + CompareNum: compareService.CompareNum, + CompareData: &totalData, + }) + m := make(map[string]interface{},3) if totalData != nil && totalData.Len() > 0{ - //鎸夊垎鍊兼帓搴� - //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) - //} - //logger.Debug("comp 鎺掑簭鍚庡垎鍊兼暟缁勶細",scoreAf) total := totalData.Len() - m["compareNum"] = compareOnce.CompareNum + m["compareNum"] = compareService.CompareNum m["total"] = total var sCompResult protomsg.SdkCompareResult if total <= searchBody.Size { - sCompResult.CompareResult = *totalData + sCompResult.CompareResult = totalData } else { - sCompResult.CompareResult = (*totalData)[0:searchBody.Size] + sCompResult.CompareResult = totalData[0:searchBody.Size] } resultList := FillDataToCompareResult(&sCompResult) m["totalList"] = resultList @@ -429,7 +435,7 @@ } else { m["total"] = 0 - m["compareNum"] = searchBody.CompareNum + m["compareNum"] = compareService.CompareNum m["totalList"] = []CompareResult{} } util.ResponseFormat(c,code.Success,m) @@ -559,7 +565,6 @@ func uploadFileReturnAddr(file multipart.File, filename string, tableId string) (string, map[string]interface{}, error) { defer file.Close() - field := "" // weedfs 涓婁紶 fileBytes, err := ioutil.ReadAll(file) if err !=nil { @@ -591,29 +596,22 @@ 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) + weedFilePath, e := WeedFSClient.UploadFile(weedfsUri, filename, cutFaceImgData) logger.Debug("涓婁紶鍒皐eedfs鐢ㄦ椂:", time.Since(t1)) t1 = time.Now() if e != nil { fmt.Println(e.Error()) return "", nil, e - } else { - field = fileInfo[picUrlField].(string) // 鏂囦欢璺緞 } - if strings.Contains(field,"/"){ - idx := strings.Index(field, "/") - field = field[idx+1:] - } + ext := path.Ext(filename) fileNameOnly := strings.TrimSuffix(filename, ext) dbperson := new(models.Dbtablepersons) - dbperson.PersonPicUrl = field // 鍥剧墖璺粡 + dbperson.PersonPicUrl = weedFilePath // 鍥剧墖璺粡 dbperson.TableId = tableId // dbperson.PersonName = fileNameOnly // 鍥剧墖鍚� dbperson.Enable = 1 //榛樿鏈夋晥 - // 婕旂ずbase64缂栫爜 - dbperson.FaceFeature = faceBase64 // 鐗瑰緛鍊糱ase64 鐮� result := addDbPerson(dbperson) -- Gitblit v1.8.0