package ESSqlOpenapi import ( "dsDataex/MyReport/ESSql/ESSqlService" "dsDataex/MyReport/MySwagger" "dsDataex/MyService/Auth/AuthService" "dsDataex/MyService/DataEX/DataexService" "github.com/gin-gonic/gin" "net/http" "strings" ) // @Summary ES-SQL数据查询 // @Description 【统计分析平台】ES-SQL数据简单查询接口,使用接入系统自定义的查询,返回查询结果数据。 // @Tags report // @Accept json // @Produce json // @Param input body MySwagger.QuerySimple true "简单查询数据" // @Success 200 {object} MySwagger.DataResult // @Failure 400 {object} MySwagger.DataResult // @Router /dataex/report/QuerySimple [post] func QuerySimple(c *gin.Context) { var input MySwagger.QuerySimple if err := c.ShouldBindJSON(&input); err != nil { c.JSON(http.StatusOK, MySwagger.DataResult{Success: false, Message: "简单查询数据JSON格式错误"}) return } if input.Query.QueryID == "" { c.JSON(http.StatusOK, MySwagger.DataResult{Success: false, Message: "简单查询数据QueryID不能为空"}) return } //TODO:数据查询权限验证 !!! var temp = strings.Split(input.AccessToken, "##") if len(temp) != 3 { c.JSON(http.StatusOK, MySwagger.DataResult{Success: false, Message: "接入系统票据格式不正确"}) return } flag, _, systemID := AuthService.CheckAccessToken(temp[0], temp[1], temp[2]) if flag == false { //c.JSON(http.StatusOK, MySwagger.DataResult{Success: false,Message: "接入系统票据不正确"}) //return } flag2, _ := DataexService.CheckDatasourceSql(systemID, input.Query.QueryID) if flag2 == false { //c.JSON(http.StatusOK, MySwagger.DataResult{Success: false,Message: "接入系统ES-SQL查询权限验证失败"}) //return } res, msg, data := ESSqlService.QuerySimple(input.Query.QueryID, input.Query.QueryParam, input.QueryGroup, input.QueryCount, input.QueryFormat) if res { c.JSON(http.StatusOK, MySwagger.DataResult{ Success: true, Message: msg, Result: data, }) } else { c.JSON(http.StatusOK, MySwagger.DataResult{ Success: false, Message: msg, }) } } // @Summary ES-SQL数据关联查询 // @Description 【统计分析平台】ES-SQL数据关联查询接口,使用接入系统自定义的查询,与基础数据关联后【左关联】,返回查询结果数据。 // @Tags report // @Accept json // @Produce json // @Param input body MySwagger.QueryJoin true "关联查询数据" // @Success 200 {object} MySwagger.DataResult // @Failure 400 {object} MySwagger.DataResult // @Router /dataex/report/QueryJoin [post] func QueryJoin(c *gin.Context) { var input MySwagger.QueryJoin if err := c.ShouldBindJSON(&input); err != nil { c.JSON(http.StatusBadRequest, MySwagger.DataResult{Success: false, Message: "关联查询数据JSON格式错误"}) return } if input.Query.QueryID == "" { c.JSON(http.StatusBadRequest, MySwagger.DataResult{Success: false, Message: "关联查询数据QueryID不能为空"}) return } if input.QueryJoin.JoinID == "" { c.JSON(http.StatusBadRequest, MySwagger.DataResult{Success: false, Message: "关联查询数据JoinID不能为空"}) return } //TODO:数据查询权限验证 !!! var temp = strings.Split(input.AccessToken, "##") if len(temp) != 3 { c.JSON(http.StatusOK, MySwagger.DataResult{Success: false, Message: "接入系统票据格式不正确"}) return } flag, _, systemID := AuthService.CheckAccessToken(temp[0], temp[1], temp[2]) if flag == false { c.JSON(http.StatusOK, MySwagger.DataResult{Success: false, Message: "接入系统票据不正确"}) return } flag2, _ := DataexService.CheckDatasourceSql(systemID, input.Query.QueryID) if flag2 == false { c.JSON(http.StatusOK, MySwagger.DataResult{Success: false, Message: "接入系统ES-SQL查询权限验证失败"}) return } res, msg, data := ESSqlService.QueryJoin(input.Query.QueryID, input.Query.QueryParam, input.QueryJoin.JoinID, input.QueryJoin.JoinParam, input.QueryGroup, input.QueryCount, input.QueryFormat) if res { c.JSON(http.StatusOK, MySwagger.DataResult{ Success: true, Message: msg, Result: data, }) } else { c.JSON(http.StatusOK, MySwagger.DataResult{ Success: false, Message: msg, }) } } // @Summary ES-SQL数据合并查询 // @Description 【统计分析平台】ES-SQL数据合并查询接口,使用接入系统自定义的查询【支持多个查询】,与基础数据关联后【支持多次左关联】,返回查询结果数据。 // @Tags report // @Accept json // @Produce json // @Param input body MySwagger.QueryUnion true "合并查询数据" // @Success 200 {object} MySwagger.DataResult // @Failure 400 {object} MySwagger.DataResult // @Router /dataex/report/QueryUnion [post] func QueryUnion(c *gin.Context) { var input MySwagger.QueryUnion if err := c.ShouldBindJSON(&input); err != nil { c.JSON(http.StatusBadRequest, MySwagger.DataResult{Success: false, Message: "合并查询数据JSON格式错误"}) return } if len(input.QueryList) == 0 { c.JSON(http.StatusBadRequest, MySwagger.DataResult{Success: false, Message: "合并查询数据QueryList不能为空"}) return } var temp = strings.Split(input.AccessToken, "##") if len(temp) != 3 { c.JSON(http.StatusOK, MySwagger.DataResult{Success: false, Message: "接入系统票据格式不正确"}) return } flag, _, systemID := AuthService.CheckAccessToken(temp[0], temp[1], temp[2]) if flag == false { c.JSON(http.StatusOK, MySwagger.DataResult{Success: false, Message: "接入系统票据不正确"}) return } flag2, _ := DataexService.CheckDatasourceSql(systemID, input.QueryList[0].QueryID) if flag2 == false { c.JSON(http.StatusOK, MySwagger.DataResult{Success: false, Message: "接入系统ES-SQL查询权限验证失败"}) return } res, msg, data := ESSqlService.QueryUnion(input.QueryList, input.JoinList, input.QueryGroup, input.QueryCount, input.QueryFormat) if res { c.JSON(http.StatusOK, MySwagger.DataResult{ Success: true, Message: msg, Result: data, }) } else { c.JSON(http.StatusOK, MySwagger.DataResult{ Success: false, Message: msg, }) } }