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 /v1/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 /v1/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 /v1/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, }) } }