liuxiaolong
2019-08-24 f09171b2e465e54d4035896f817a47512067817e
fix esSearch params
1个文件已修改
69 ■■■■■ 已修改文件
controllers/esSearch.go 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/esSearch.go
@@ -1,18 +1,18 @@
    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{}
@@ -26,16 +26,23 @@
// @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 {
@@ -57,7 +64,7 @@
    }
    alarmLevelRes := make([]string, len(alarmlevel))
    for i, v := range alarmlevel {
        value := int(v.(float64))
        value,_ := strconv.Atoi(v)
        if value < 0 {
            alarmLevelRes[i] = "撤防"
        } else {
@@ -67,10 +74,10 @@
    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)
@@ -78,39 +85,39 @@
    //请求索引
    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 {
@@ -120,12 +127,12 @@
    }
    //判断收藏状态
    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)