| | |
| | | package controllers |
| | | |
| | | import ( |
| | | "basic.com/dbapi.git" |
| | | "fmt" |
| | | "strconv" |
| | | "strings" |
| | | "webserver/extend/logger" |
| | | |
| | | "github.com/gin-gonic/gin" |
| | | "webserver/extend/code" |
| | | "webserver/extend/config" |
| | | "webserver/extend/esutil" |
| | | "webserver/extend/util" |
| | | ) |
| | | 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" |
| | | ) |
| | | |
| | | type EsSearchController struct{} |
| | | |
| | |
| | | // @Failure 500 {string} json "{"code":500, msg:"返回错误信息", success:false}" |
| | | // @Router /data/api-v/es/esSearch [POST] |
| | | func (sc *EsSearchController) PostEsSearch(c *gin.Context) { |
| | | searchBody := make(map[string]interface{}, 0) |
| | | //searchBody := make(map[string]interface{}, 0) |
| | | //c.BindJSON(&searchBody) |
| | | //data := findEsData(searchBody) |
| | | |
| | | c.BindJSON(&searchBody) |
| | | var arg models.EsSearch |
| | | err := c.BindJSON(&arg) |
| | | if err !=nil || arg.Page <=0 && arg.Size<=0 { |
| | | util.ResponseFormat(c,code.RequestParamError,"参数有误") |
| | | return |
| | | } |
| | | data := findEsData(&arg) |
| | | |
| | | data := findEsData(searchBody) |
| | | util.ResponseFormat(c, code.Success, data) |
| | | } |
| | | |
| | | //获取监控等级 |
| | | func getAlarmLevel(alarmlevel []interface{}) []string { |
| | | func getAlarmLevel(alarmlevel []string) []string { |
| | | d := dbapi.DicApi{} |
| | | res, data := d.FindByType("ALARMLEVEL") |
| | | if data == nil { |
| | |
| | | } |
| | | alarmLevelRes := make([]string, len(alarmlevel)) |
| | | for i, v := range alarmlevel { |
| | | value := int(v.(float64)) |
| | | value,_ := strconv.Atoi(v) |
| | | if value < 0 { |
| | | alarmLevelRes[i] = "撤防" |
| | | } else { |
| | |
| | | return alarmLevelRes |
| | | } |
| | | |
| | | func findEsData(searchBody map[string]interface{}) map[string]interface{} { |
| | | webPage := int(searchBody["page"].(float64)) |
| | | func findEsData(searchBody *models.EsSearch) map[string]interface{} { |
| | | webPage := searchBody.Page |
| | | |
| | | webSize := int(searchBody["size"].(float64)) |
| | | webSize := searchBody.Size |
| | | from := strconv.Itoa((webPage - 1) * webSize) |
| | | //esFrom := strconv.Itoa(from) |
| | | //esSize := strconv.Itoa(webSize) |
| | |
| | | //请求索引 |
| | | index := config.EsInfo.EsIndex.VideoPersons.IndexName + "," + config.EsInfo.EsIndex.Personaction.IndexName |
| | | queryStr := "" |
| | | queryBody := searchBody["inputValue"].(string) |
| | | 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\"]," + |
| | | "\"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}}]," |
| | | } |
| | | |
| | | searchTime := searchBody["searchTime"].([]interface{}) |
| | | if searchBody["searchTime"] == nil || len(searchTime) < 2 { |
| | | searchTime := searchBody.SearchTime |
| | | if searchTime == nil || len(searchTime) < 2 { |
| | | info := make(map[string]interface{}, 0) |
| | | info["err"] = "请输入时间范围" |
| | | return info |
| | | } |
| | | |
| | | gteDate := searchTime[0].(string) |
| | | lteDate := searchTime[1].(string) |
| | | gteDate := searchTime[0] |
| | | lteDate := searchTime[1] |
| | | //判断任务ID |
| | | taskIdStr := "" |
| | | taskId := searchBody["tasks"].([]interface{}) |
| | | taskId := searchBody.Tasks |
| | | if taskId != nil && len(taskId) > 0 { |
| | | esTaskId := strings.Replace(strings.Trim(fmt.Sprint(taskId), "[]"), " ", "\",\"", -1) |
| | | taskIdStr = "{\"terms\":{\"taskId\":[\"" + esTaskId + "\"]}}," |
| | | } |
| | | //判断摄像机ID |
| | | cameraIdStr := "" |
| | | cameraId := searchBody["treeNodes"].([]interface{}) |
| | | cameraId := searchBody.TreeNodes |
| | | if cameraId != nil && len(cameraId) > 0 { |
| | | esCameraId := strings.Replace(strings.Trim(fmt.Sprint(cameraId), "[]"), " ", "\",\"", -1) |
| | | cameraIdStr = "{\"terms\":{\"cameraId\":[\"" + esCameraId + "\"]}}," |
| | | } |
| | | |
| | | //判断库表ID |
| | | tableId := searchBody["tabs"].([]interface{}) |
| | | tableId := searchBody.Tabs |
| | | esTableId := "" |
| | | esTableIdStr := "" |
| | | if tableId != nil && len(tableId) > 0 { |
| | |
| | | } |
| | | //判断收藏状态 |
| | | isCollectStr := "" |
| | | isCollect := searchBody["collection"].(string) |
| | | isCollect := searchBody.Collection |
| | | if isCollect != "" { |
| | | isCollectStr = "{\"term\":{\"isCollect\":\"" + isCollect + "\"}}," |
| | | } |
| | | //判断布防等级id |
| | | alarmLevelId := searchBody["alarmlevel"].([]interface{}) |
| | | alarmLevelId := searchBody.AlarmLevel |
| | | alarmLevelStr := "" |
| | | if len(alarmLevelId) > 0 { |
| | | alarmLevelTypes := strings.Replace(strings.Trim(fmt.Sprint(getAlarmLevel(alarmLevelId)), "[]"), " ", "\",\"", -1) |