|
|
package GPSqlOpenapi
|
|
|
|
|
|
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 GP-SQL数据查询
|
|
|
// @Description 【统计分析平台】GP-SQL数据简单查询接口,使用接入系统自定义的查询,返回查询结果数据。
|
|
|
// @Tags report
|
|
|
// @Accept json
|
|
|
// @Produce json
|
|
|
// @Param input body MySwagger.QuerySimpleGP true "简单查询数据"
|
|
|
// @Success 200 {object} MySwagger.DataResult
|
|
|
// @Failure 400 {object} MySwagger.DataResult
|
|
|
// @Router /dataex/report/QuerySimpleGP [post]
|
|
|
func QuerySimpleGP(c *gin.Context) {
|
|
|
|
|
|
var input MySwagger.QuerySimpleGP
|
|
|
|
|
|
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: "接入系统GP-SQL查询权限验证失败"})
|
|
|
//return
|
|
|
}
|
|
|
|
|
|
//TODO:输入参数 SQL注入检测
|
|
|
if len(input.Query.QueryParam) > 0 {
|
|
|
|
|
|
}
|
|
|
|
|
|
//TODO: 缓存数据
|
|
|
if input.QueryCache == 1 || input.QueryCache == 2 {
|
|
|
|
|
|
}
|
|
|
|
|
|
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,
|
|
|
})
|
|
|
}
|
|
|
}
|