You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

196 lines
5.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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