controllers/dbtableperson.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
controllers/fileController.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
go.mod | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
go.sum | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
models/dbtablepersons.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
controllers/dbtableperson.go
@@ -4,13 +4,12 @@ "basic.com/dbapi.git" "basic.com/fileServer/WeedFSClient.git" "basic.com/pubsub/protomsg.git" "basic.com/valib/logger.git" "encoding/base64" "encoding/json" "io/ioutil" "sort" "strconv" "time" "basic.com/valib/logger.git" "webserver/cache" "webserver/service" @@ -18,7 +17,6 @@ "github.com/satori/go.uuid" "webserver/extend/code" "webserver/extend/config" "webserver/extend/esutil" "webserver/extend/util" "webserver/models" @@ -197,7 +195,7 @@ for idx,v :=range compResult.CompareResult{ dbPersonM[v.Id] = ScoreIndex{ Index: idx, CompareScore: v.CompareScore, CompareScore: float64(v.CompareScore), } personIds = append(personIds,v.Id) } @@ -230,7 +228,7 @@ dbP.CreateTime = p.CreateTime dbP.UpdateTime = p.UpdateTime dbP.CreateBy = p.CreateBy dbP.CompareScore = util.ParseScore(dbPersonM[p.Id].CompareScore) dbP.CompareScore = dbPersonM[p.Id].CompareScore //dbTableInfos, _ := dtApi.DbtablesById([]string{ p.TableId }) //if dbTableInfos !=nil{ // dbP.BwType = dbTableInfos[0].BwType @@ -323,51 +321,6 @@ //} else { // util.ResponseFormat(c,code.UpdateFail,"更新人脸失败") //} } func UpdateDbPersonsOfDbTable(id string) (message string) { localConf, err2 := cache.GetServerInfo() if err2 !=nil || localConf.AlarmIp == "" || localConf.ServerId == "" { logger.Debug("localConfig is wrong!!!") return "修改失败" } url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) + "/" + config.EsInfo.EsIndex.Dbtablepersons.IndexName + "/_update_by_query?refresh" jsonDSL := ` { "script": { "lang": "painless", "inline": "ctx._source.enable = 0" }, "query": { "term": { "tableId": "` + id + `" } } } ` buf, err := esutil.EsReq("POST", url, []byte(jsonDSL)) if err != nil { logger.Debug("http request info is err!") message = "修改失败" } var info interface{} json.Unmarshal(buf, &info) out, ok := info.(map[string]interface{}) if !ok { logger.Debug("http response interface can not change map[string]interface{}") message = "修改失败" } middle, ok := out["updated"].(float64) if !ok { logger.Debug("first result change error!") message = "修改失败" } if middle >= 0 { logger.Debug("修改成功") message = "修改成功,更新状态条数为" + strconv.Itoa(int(middle)) } return message } // @Security ApiKeyAuth @@ -520,14 +473,14 @@ util.ResponseFormat(c,code.ComError,"报警设置有误") return } videopersons, e := esApi.Videopersonsinfosbyid([]string{reqBody.CaptureId}, config.EsInfo.EsIndex.VideoPersons.IndexName, localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort))) if e ==nil && videopersons !=nil && len(videopersons) == 1{ aiOceans, e := esApi.AIOceaninfosbyid([]string{reqBody.CaptureId}, config.EsInfo.EsIndex.AiOcean.IndexName, localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort))) if e ==nil && aiOceans !=nil && len(aiOceans) == 1{ var personPicUrl = ""//人脸图片 var feature = ""//特征 if videopersons[0].PicSmUrl !=nil && len(videopersons[0].PicSmUrl) >0 { personPicUrl = videopersons[0].PicSmUrl[0] if aiOceans[0].TargetInfo !=nil && len(aiOceans[0].TargetInfo) >0 { personPicUrl = aiOceans[0].TargetInfo[0].PicSmUrl } fea, e2 := esApi.GetVideoPersonFaceFeatureById(reqBody.CaptureId, config.EsInfo.EsIndex.VideoPersons.IndexName, localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort))) fea, e2 := esApi.GetVideoPersonFaceFeatureById(reqBody.CaptureId, config.EsInfo.EsIndex.AiOcean.IndexName, localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort))) if e2 == nil && fea !="" { feature = fea } controllers/fileController.go
@@ -183,17 +183,16 @@ type CompareResult struct { Id string `json:"id"` CompareScore float32 `json:"compareScore"` CompareScore float64 `json:"compareScore"` CameraId string `json:"cameraId"` CameraName string `json:"cameraName"` CameraAddr string `json:"cameraAddr"` PicDate string `json:"picDate"` Content string `json:"content"` IsAlarm int `json:"isAlarm"` IsAlarm bool `json:"isAlarm"` PicMaxUrl string `json:"picMaxUrl"` PicSmUrl []string `json:"picSmUrl"` Sex string `json:"sex"` AgeDescription string `json:"ageDescription"` Race string `json:"race"` TargetInfo []TargetInfo `json:"targetInfo"` TaskId string `json:"taskId"` TaskName string `json:"taskName"` BaseInfo []DbPersonVo `json:"baseInfo"` @@ -201,23 +200,35 @@ SdkName string `json:"sdkName"` AlarmRules []AlarmRuleVo `json:"alarmRules"` } type TargetInfo struct { TargetId string `json:"targetId"` TargetScore float64 `json:"targetScore"` Feature string `json:"feature"` PicSmUrl string `json:"picSmUrl"` TargetLocation TargetLocation `json:"targetLocation"` } type TargetLocation struct { TopLeft protomsg.Location `json:"topLeft"` BottomRight protomsg.Location `json:"bottomRight"` } type DbPersonVo struct { BwType string `json:"bwType"` CompareScore float32 `json:"compareScore"` IdCard string `json:"idCard"` CompareScore float64 `json:"compareScore"` MonitorLevel string `json:"monitorLevel"` PersonId string `json:"personId"` PersonName string `json:"personName"` PersonPicUrl string `json:"personPicUrl"` PhoneNum string `json:"phoneNum"` Sex string `json:"sex"` TargetId string `json:"targetId"` TargetName string `json:"targetName"` TargetPicUrl string `json:"targetPicUrl"` Labels string `json:"labels"` TableId string `json:"tableId"` TableName string `json:"tableName"` Enable int32 `json:"enable"` } type ScoreIndex struct { CompareScore float32 CompareScore float64 Index int } @@ -242,13 +253,13 @@ if v.Tableid == service.CaptureTable { captureM[v.Id] = ScoreIndex{ Index: idx, CompareScore: v.CompareScore, CompareScore: float64(v.CompareScore), } captureIds = append(captureIds,v.Id) } else { dbPersonM[v.Id] = ScoreIndex{ Index: idx, CompareScore: v.CompareScore, CompareScore: float64(v.CompareScore), } personIds = append(personIds,v.Id) } @@ -266,14 +277,12 @@ var dtApi dbapi.DbTableApi for _,p :=range dbpersons { var dbP = DbPersonVo { PersonId: p.Id, IdCard: p.IdCard, CompareScore: util.ParseScore(dbPersonM[p.Id].CompareScore), TargetId: p.Id, CompareScore: dbPersonM[p.Id].CompareScore, MonitorLevel: p.MonitorLevel, PersonName: p.PersonName, PersonPicUrl: p.PersonPicUrl, PhoneNum: p.PhoneNum, Sex: p.Sex, TargetName: p.PersonName, TargetPicUrl: p.PersonPicUrl, Labels: p.Sex+" / "+p.IdCard+" / "+p.IdCard, TableId: p.TableId, Enable: p.Enable, } @@ -295,21 +304,18 @@ return nil } logger.Debug("captureIds:",strings.Join(captureIds,",")) videopersons, _ := esApi.Videopersonsinfosbyid(captureIds, config.EsInfo.EsIndex.VideoPersons.IndexName, localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort))) logger.Debug("comp videoPersons.len:",len(videopersons)) for _,vp :=range videopersons { isAlarmInt, _ := strconv.Atoi(vp.IsAlarm) aiTargets, _ := esApi.AIOceaninfosbyid(captureIds, config.EsInfo.EsIndex.AiOcean.IndexName, localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort))) logger.Debug("comp aiTargets.len:",len(aiTargets)) for _,vp :=range aiTargets { var bi []DbPersonVo for _,p :=range vp.BaseInfo { bi = append(bi, DbPersonVo{ PersonId: p.PersonId, IdCard: p.IdCard, CompareScore: util.ParseScore(p.CompareScore), TargetId: p.TargetId, CompareScore: float64(p.CompareScore), MonitorLevel: parseMonitorLevel(p.MonitorLevel), PersonName: p.PersonName, PersonPicUrl: p.PersonPicUrl, PhoneNum: p.PhoneNum, Sex: p.Sex, TargetName: p.TargetName, TargetPicUrl: p.TargetPicUrl, Labels: p.Labels, TableId: p.TableId, BwType: p.BwType, TableName: p.TableName, @@ -328,18 +334,39 @@ }) } } var ti = make([]TargetInfo,0) if vp.TargetInfo !=nil { for _,vti :=range ti { tl := protomsg.Location{ X: vti.TargetLocation.TopLeft.X, Y: vti.TargetLocation.TopLeft.Y, } br := protomsg.Location{ X: vti.TargetLocation.BottomRight.X, Y: vti.TargetLocation.BottomRight.Y, } tInfo := TargetInfo{ TargetId: vti.TargetId, TargetScore: vti.TargetScore, Feature: vti.Feature, PicSmUrl: vti.PicSmUrl, TargetLocation: TargetLocation{ TopLeft:tl, BottomRight:br, }, } ti = append(ti, tInfo) } } vpE := CompareResult{ Id: vp.Id, CompareScore: util.ParseScore(captureM[vp.Id].CompareScore), CompareScore: captureM[vp.Id].CompareScore, CameraId: vp.CameraId, CameraAddr: vp.CameraAddr, PicDate: vp.PicDate, PicMaxUrl: vp.PicMaxUrl, PicSmUrl: vp.PicSmUrl, IsAlarm: isAlarmInt, Sex: vp.Sex, AgeDescription: vp.AgeDescription, Race: vp.Race, TargetInfo: ti, IsAlarm: vp.IsAlarm, TaskName: vp.TaskName, TaskId: vp.TaskId, VideoUrl: vp.VideoUrl, @@ -443,7 +470,7 @@ return } } else { searchBase64Fea, err := esApi.GetVideoPersonFaceFeatureById(searchBody.CompTargetId, config.EsInfo.EsIndex.VideoPersons.IndexName, localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort))) searchBase64Fea, err := esApi.GetVideoPersonFaceFeatureById(searchBody.CompTargetId, config.EsInfo.EsIndex.AiOcean.IndexName, localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort))) if err !=nil { util.ResponseFormat(c, code.ComError, "抓拍数据不存在,请检查") return @@ -590,7 +617,7 @@ arg.Collection = searchBody.Collection arg.AnalyServerId = localConf.ServerId 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) captureIds := esApi.GetAllLocalVideopersonsId(arg, config.EsInfo.EsIndex.AiOcean.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 go.mod
@@ -7,8 +7,8 @@ basic.com/fileServer/WeedFSClient.git v0.0.0-20190919054037-0182b6c3f5cb // indirect basic.com/gb28181api.git v0.0.0-20191028082253-472438a8407b // indirect basic.com/pubsub/cache.git v0.0.0-20190718093725-6a413e1d7d48 // indirect basic.com/pubsub/esutil.git v0.0.0-20191031110806-0712822ce390 // indirect basic.com/pubsub/protomsg.git v0.0.0-20191031110456-1a84b09fbcd1 // indirect basic.com/pubsub/esutil.git v0.0.0-20191119123930-df4e05af6aee // indirect basic.com/pubsub/protomsg.git v0.0.0-20191120023735-365e964f300d // indirect basic.com/valib/capture.git v0.0.0-20190924061718-7e98d8c98b3c // indirect basic.com/valib/deliver.git v0.0.0-20190531095353-25d8c3b20051 basic.com/valib/goffmpeg.git v0.0.0-20191024085028-080acae08ec8 // indirect go.sum
@@ -6,10 +6,10 @@ basic.com/gb28181api.git v0.0.0-20191028082253-472438a8407b/go.mod h1:iKnzuRRqUEgt17894pX3oYcOG2fLYFVcXiZbPoMK7+4= basic.com/pubsub/cache.git v0.0.0-20190718093725-6a413e1d7d48 h1:BBA30Rgljn6MRieC4gUncETJDyna3ObyubTo9HEQ2M0= basic.com/pubsub/cache.git v0.0.0-20190718093725-6a413e1d7d48/go.mod h1:gHLJZz2ee1cGL0X0ae69fs56bAxkDgEQwDhhXZJNUcY= basic.com/pubsub/esutil.git v0.0.0-20191031110806-0712822ce390 h1:uM/D7VJ41pg1XXpoe73QqCCnQTE08VhXQ2JAAOnN6ao= basic.com/pubsub/esutil.git v0.0.0-20191031110806-0712822ce390/go.mod h1:yIvppFPFGC61DOdm71ujnsxZBMFUu2yKjr5O43bMWCw= basic.com/pubsub/protomsg.git v0.0.0-20191031110456-1a84b09fbcd1 h1:w/hlV2znPkwQxusqH8IIeg8+O3DPkCbRhsVKi6GdckU= basic.com/pubsub/protomsg.git v0.0.0-20191031110456-1a84b09fbcd1/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU= basic.com/pubsub/esutil.git v0.0.0-20191119123930-df4e05af6aee h1:QJQ2Hvu310iz39WZEkFiJ1SUg8XXZZ2b4goncos++0s= basic.com/pubsub/esutil.git v0.0.0-20191119123930-df4e05af6aee/go.mod h1:yIvppFPFGC61DOdm71ujnsxZBMFUu2yKjr5O43bMWCw= basic.com/pubsub/protomsg.git v0.0.0-20191120023735-365e964f300d h1:p4HNkf4NYFiAmeOprQYwn6ZIVE60/P2gueelasBUgVQ= basic.com/pubsub/protomsg.git v0.0.0-20191120023735-365e964f300d/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU= basic.com/valib/capture.git v0.0.0-20190924061718-7e98d8c98b3c h1:aNujtcGxq0cNLSK08cCamAiUYiQ2/ZsUMNXbX2w8Clc= basic.com/valib/capture.git v0.0.0-20190924061718-7e98d8c98b3c/go.mod h1:y+h7VUnoSQ3jOtf2K3twXNA8fYDfyUsifSswcyKLgNw= basic.com/valib/deliver.git v0.0.0-20190531095353-25d8c3b20051/go.mod h1:bkYiTUGzckyNOjAgn9rB/DOjFzwoSHJlruuWQ6hu6IY= models/dbtablepersons.go
@@ -19,5 +19,5 @@ type DbPersonsCompVo struct { Dbtablepersons CompareScore float32 `json:"compareScore"` CompareScore float64 `json:"compareScore"` }