| | |
| | | package controllers |
| | | package controllers |
| | | |
| | | import ( |
| | | "basic.com/dbapi.git" |
| | | "fmt" |
| | | "github.com/gin-gonic/gin" |
| | | "strconv" |
| | | "strings" |
| | | "webserver/extend/code" |
| | | "webserver/extend/config" |
| | | "webserver/extend/esutil" |
| | | "webserver/extend/logger" |
| | | "webserver/extend/util" |
| | | "webserver/models" |
| | | ) |
| | | import ( |
| | | "basic.com/dbapi.git" |
| | | "basic.com/valib/logger.git" |
| | | "fmt" |
| | | "github.com/gin-gonic/gin" |
| | | "strconv" |
| | | "strings" |
| | | "webserver/cache" |
| | | "webserver/extend/code" |
| | | "webserver/extend/config" |
| | | "webserver/extend/esutil" |
| | | "webserver/extend/util" |
| | | "webserver/models" |
| | | ) |
| | | |
| | | type EsSearchController struct{} |
| | | |
| | |
| | | } |
| | | |
| | | //获取监控等级 |
| | | func getAlarmLevel(alarmlevel []string) []string { |
| | | func getAlarmLevel(alarmlevel []int32) []string { |
| | | d := dbapi.DicApi{} |
| | | res, data := d.FindByType("ALARMLEVEL") |
| | | if data == nil { |
| | |
| | | } |
| | | logger.Debug(res) |
| | | // logger.Debug(data) |
| | | alarmLevel := make(map[int]string) |
| | | alarmLevel := make(map[int32]string) |
| | | tmp := data.(map[string]interface{}) |
| | | for _, value := range tmp["ALARMLEVEL"].([]interface{}) { |
| | | // logger.Debug(value.(map[string]interface{})["value"]," ",value.(map[string]interface{})["name"]) |
| | |
| | | if err != nil { |
| | | logger.Debug(err) |
| | | } |
| | | alarmLevel[vl] = name |
| | | alarmLevel[int32(vl)] = name |
| | | } |
| | | alarmLevelRes := make([]string, len(alarmlevel)) |
| | | for i, v := range alarmlevel { |
| | | value,_ := strconv.Atoi(v) |
| | | if value < 0 { |
| | | if v < 0 { |
| | | alarmLevelRes[i] = "撤防" |
| | | } else { |
| | | alarmLevelRes[i] = alarmLevel[value] |
| | | alarmLevelRes[i] = alarmLevel[v] |
| | | } |
| | | } |
| | | return alarmLevelRes |
| | |
| | | queryBody := searchBody.InputValue |
| | | //检索框 |
| | | if queryBody != "" { |
| | | queryStr = "\"must\":[{\"multi_match\":{\"query\":\"" + queryBody + "\",\"fields\":[\"baseInfo.sex\",\"baseInfo.phoneNum.raw^1.5\",\"baseInfo.personName.raw^1.5\",\"alarmRules.alarmLevel^1.5\",\"alarmRules.linkInfo^1.5\",\"ageDescription^1.5\",\"taskName^1.5\",\"baseInfo.tableName^1.5\",\"sex^2.0\",\"race^2.0\",\"content^1.0\",\"baseInfo.idCard^1.8\",\"cameraAddr^1.0\"]," + |
| | | queryStr = "\"must\":[{\"multi_match\":{\"query\":\"" + queryBody + "\",\"fields\":[\"baseInfo.sex\",\"baseInfo.phoneNum.raw^1.5\",\"baseInfo.personName.raw^1.5\",\"alarmRules.alarmLevel^1.5\",\"alarmRules.linkInfo^3.0\",\"ageDescription^1.5\",\"taskName^1.5\",\"baseInfo.tableName^1.0\",\"sex^2.0\",\"race^2.0\",\"content^1.0\",\"baseInfo.idCard^1.8\",\"cameraAddr^2.0\"]," + |
| | | "\"type\":\"cross_fields\",\"operator\":\"OR\",\"slop\":0,\"prefix_length\":0,\"max_expansions\":50,\"zero_terms_query\":\"NONE\",\"auto_generate_synonyms_phrase_query\":true,\"fuzzy_transpositions\":true,\"boost\":1}}]," |
| | | } |
| | | |
| | |
| | | |
| | | gteDate := searchTime[0] |
| | | lteDate := searchTime[1] |
| | | |
| | | //判断人员ID |
| | | personIdStr := "" |
| | | //personId := searchBody.Id |
| | | personId := []string{} |
| | | if personId != nil && len(personId) > 0 { |
| | | esPersonId := strings.Replace(strings.Trim(fmt.Sprint(personId), "[]"), " ", "\",\"", -1) |
| | | personIdStr = "{\"terms\":{\"id\":[\"" + esPersonId + "\"]}}," |
| | | } |
| | | |
| | | //判断任务ID |
| | | taskIdStr := "" |
| | | taskId := searchBody.Tasks |
| | |
| | | esTaskId := strings.Replace(strings.Trim(fmt.Sprint(taskId), "[]"), " ", "\",\"", -1) |
| | | taskIdStr = "{\"terms\":{\"taskId\":[\"" + esTaskId + "\"]}}," |
| | | } |
| | | |
| | | //判断摄像机ID |
| | | cameraIdStr := "" |
| | | cameraId := searchBody.TreeNodes |
| | |
| | | |
| | | //使用es底层机制处理分页 |
| | | //请求头 |
| | | url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport + |
| | | localConf, err2 := cache.GetServerInfo() |
| | | if err2 !=nil || localConf.AlarmIp == "" || localConf.ServerId == "" { |
| | | logger.Debug("localConfig is wrong!!!") |
| | | return nil |
| | | } |
| | | url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) + |
| | | "/" + index + "/_search?search_type=dfs_query_then_fetch" |
| | | var setApi dbapi.SysSetApi |
| | | _, sysconf := setApi.GetServerInfo() |
| | | analyServerFilterStr := "{\"term\":{\"analyServerId\":\"" + sysconf.ServerId + "\"}}," |
| | | |
| | | analyServerFilterStr := "{\"term\":{\"analyServerId\":\"" + localConf.ServerId + "\"}}," |
| | | |
| | | //请求体 |
| | | prama := "{\"from\":\"" + from + "\"," + |
| | |
| | | "\"filter\":[" + |
| | | cameraIdStr + |
| | | alarmLevelStr + |
| | | personIdStr + |
| | | taskIdStr + |
| | | isCollectStr + |
| | | esTableIdStr + |
| | |
| | | } |
| | | |
| | | func GetLinkInfo(linkId string, id string) []map[string]interface{} { |
| | | url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport + |
| | | localConf, err2 := cache.GetServerInfo() |
| | | if err2 !=nil || localConf.AlarmIp == "" || localConf.ServerId == "" { |
| | | logger.Debug("localConfig is wrong!!!") |
| | | return nil |
| | | } |
| | | url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) + |
| | | "/" + config.EsInfo.EsIndex.VideoPersons.IndexName + "," + config.EsInfo.EsIndex.Personaction.IndexName + "/_search?search_type=dfs_query_then_fetch" |
| | | jsonDSL := "{\"query\":{\"bool\":{\"filter\":[{\"term\":{\"linkId.keyword\":\"" + linkId + "\"}}],\"must_not\":[{\"term\":{\"id\":\"" + id + "\"}}]}},\"size\":100}" |
| | | jsonDSL := "{\"query\":{\"bool\":{\"filter\":[{\"term\":{\"linkId\":\"" + linkId + "\"}}],\"must_not\":[{\"term\":{\"id\":\"" + id + "\"}}]}},\"size\":100}" |
| | | |
| | | buf, err := esutil.EsReq("POST", url, []byte(jsonDSL)) |
| | | if err != nil { |