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