From 4ef2335cda0f7956082d334400c8ceb12cc465c7 Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期五, 01 十一月 2019 17:33:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
controllers/fileController.go | 68 +++++++++++++++++++++++++++-------
1 files changed, 54 insertions(+), 14 deletions(-)
diff --git a/controllers/fileController.go b/controllers/fileController.go
index dd13cd0..4e596a1 100644
--- a/controllers/fileController.go
+++ b/controllers/fileController.go
@@ -50,6 +50,7 @@
//var weedfsUri = "http://192.168.1.182:9500/submit"
+// @Security ApiKeyAuth
// @Summary 渚濇嵁鍥剧墖娣诲姞搴曞簱浜哄憳
// @Description 渚濇嵁鍥剧墖娣诲姞搴曞簱杩斿洖鏁版嵁浜哄憳
// @Accept mpfd
@@ -110,6 +111,7 @@
}
var faceExtractedMap = make(map[string]FaceExtract,0)
+// @Security ApiKeyAuth
// @Summary 浜鸿劯鎻愬彇
// @Description 浜鸿劯鎻愬彇
// @Produce json
@@ -196,6 +198,7 @@
BaseInfo []DbPersonVo `json:"baseInfo"`
VideoUrl string `json:"videoUrl"`
SdkName string `json:"sdkName"`
+ AlarmRules []AlarmRuleVo `json:"alarmRules"`
}
type DbPersonVo struct {
BwType string `json:"bwType"`
@@ -215,6 +218,15 @@
type ScoreIndex struct {
CompareScore float32
Index int
+}
+
+type AlarmRuleVo struct {
+ GroupId string `json:"groupId"`
+ AlarmLevel string `json:"alarmLevel"`
+ RuleText string `json:"ruleText"`
+ DefenceState bool `json:"defenceState"`
+ IsLink bool `json:"isLink"`
+ LinkInfo string `json:"linkInfo"`
}
//濉厖鍚戝墠绔繑鍥炵殑鏁版嵁
@@ -286,7 +298,7 @@
logger.Debug("comp videoPersons.len:",len(videopersons))
for _,vp :=range videopersons {
isAlarmInt, _ := strconv.Atoi(vp.IsAlarm)
- bi := make([]DbPersonVo,0)
+ var bi []DbPersonVo
for _,p :=range vp.BaseInfo {
bi = append(bi, DbPersonVo{
PersonId: p.PersonId,
@@ -298,9 +310,22 @@
PhoneNum: p.PhoneNum,
Sex: p.Sex,
TableId: p.TableId,
- BwType: strconv.Itoa(int(p.BwType)),
+ BwType: p.BwType,
TableName: p.TableName,
})
+ }
+ var alarmRules []AlarmRuleVo
+ if vp.AlarmRules !=nil && len(vp.AlarmRules) >0 {
+ for _,ar :=range vp.AlarmRules {
+ alarmRules = append(alarmRules, AlarmRuleVo{
+ GroupId: ar.GroupId,
+ AlarmLevel: ar.AlarmLevel,
+ RuleText: ar.RuleText,
+ DefenceState: ar.DefenceState,
+ IsLink: ar.IsLink,
+ LinkInfo: ar.LinkInfo,
+ })
+ }
}
vpE := CompareResult{
Id: vp.Id,
@@ -319,6 +344,7 @@
VideoUrl: vp.VideoUrl,
BaseInfo: bi,
SdkName: "浜鸿劯",
+ AlarmRules: alarmRules,
}
resultList[captureM[vp.Id].Index] = vpE
}
@@ -369,6 +395,7 @@
}
}
+// @Security ApiKeyAuth
// @Summary 浠ュ浘鎼滃浘
// @Description 浠ュ浘鎼滃浘
// @Accept json
@@ -561,11 +588,12 @@
arg.InputValue = searchBody.InputValue
arg.Collection = searchBody.Collection
arg.AnalyServerId = localConf.ServerId
- captureIds := esApi.GetAllLocalVideopersonsId(arg, config.EsInfo.EsIndex.VideoPersons.IndexName, localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort)))
+ alarmLevelTypes := strings.Replace(strings.Trim(fmt.Sprint(getAlarmLevel(searchBody.AlarmLevel)), "[]"), " ", "\",\"", -1)
+ captureIds := esApi.GetAllLocalVideopersonsId(arg, config.EsInfo.EsIndex.VideoPersons.IndexName, localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort)), alarmLevelTypes)
logger.Debug("searchPhoto first Result.len:",len(*co.CompareData),"twice len(captureIds):",len(captureIds))
if captureIds !=nil {
var aResult protomsg.SdkCompareResult
- aList := getTwiceSearchResult(co, &captureIds)
+ aList := getTwiceSearchResult(co, &captureIds, searchBody)
aTotal := aList.Len()
if aTotal <= to {
aResult.CompareResult = (*aList)[from:aTotal]
@@ -598,7 +626,7 @@
personIdArr = append(personIdArr, pid.Id)
}
var aResult protomsg.SdkCompareResult
- aList := getTwiceSearchResult(co, &personIdArr)
+ aList := getTwiceSearchResult(co, &personIdArr, searchBody)
aTotal := aList.Len()
if aTotal <= to {
aResult.CompareResult = (*aList)[from:aTotal]
@@ -638,14 +666,14 @@
return m
}
-func getTwiceSearchResult(co *service.CompareOnce, scopeIds *[]string) *service.CompareList{
+func getTwiceSearchResult(co *service.CompareOnce, scopeIds *[]string, searchBody *models.EsSearch) *service.CompareList{
m := make(map[string]string)
for _,capId :=range *scopeIds {
m[capId] = capId
}
var totalData service.CompareList
for _,each :=range *co.CompareData {
- if _,ok :=m[each.Id];ok{
+ if _,ok :=m[each.Id];ok && each.CompareScore >= searchBody.Threshold {
totalData = append(totalData, each)
}
}
@@ -776,6 +804,7 @@
/**涓婁紶鏂规硶**/
+// @Security ApiKeyAuth
// @Summary 鎵归噺娣诲姞搴曞簱浜哄憳
// @Description 渚濇嵁鍥剧墖鎵归噺娣诲姞搴曞簱浜哄憳
// @Accept mpfd
@@ -798,8 +827,10 @@
}
extNames := make([]string, 0)
addResult := make(map[string]interface{}, 0)
- successList := make([]string, 0)
- failList := make([]string,0)
+ var successList []string
+ var failList []string
+ var noFaceList []string
+ var multiFaceList []string
tAllStart := time.Now()
var wg sync.WaitGroup
var lock sync.Mutex
@@ -827,7 +858,13 @@
field, _, err1 := uploadFileReturnAddr(file, filename, tableId)
lock.Lock()
if err1 != nil || field == "" {
- failList = append(failList, filename)
+ if err1 !=nil && err1.Error() == "NotFeatureFindError" {
+ noFaceList = append(noFaceList, filename)
+ } else if err1 !=nil && err1.Error() == "TooManyFaces" {
+ multiFaceList = append(multiFaceList, filename)
+ } else {
+ failList = append(failList, filename)
+ }
} else {
successList = append(successList, filename)
}
@@ -839,13 +876,15 @@
logger.Debug("鍒�",len(fileHeaders),"寮犱汉鑴哥敤鏃讹細", time.Since(tAllStart))
addResult["successList"] = successList
addResult["failList"] = failList
+ addResult["noFaceList"] = noFaceList
+ addResult["multiFaceList"] = multiFaceList
addResult["fields"] = extNames
- //if len(successList)>0 {
+ if len(successList)>0 {
util.ResponseFormat(c, code.DbPersonUploadSuccess, addResult)
- //} else {
- // util.ResponseFormat(c, code.DbPersonUploadFail, addResult)
- //}
+ } else {
+ util.ResponseFormat(c, code.DbPersonUploadFail, addResult)
+ }
}
type EsPersonSave struct {
@@ -856,6 +895,7 @@
IdCard string `json:"idCard"`
}
+// @Security ApiKeyAuth
// @Summary 涓婁紶鍥剧墖 骞跺垏鍥�
// @Description 涓婁紶鍥剧墖 骞跺垏鍥�
// @Accept mpfd
--
Gitblit v1.8.0