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.

376 lines
11 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 DataexOpenapi
import (
"dsDataex/MyService/Auth/AuthService"
"dsDataex/MyService/DataEX/DataexService"
"dsDataex/MyService/MySwagger"
"fmt"
"github.com/gin-gonic/gin"
"net/http"
"strings"
)
// @Summary 修改数据
// @Description 【数据交换平台】修改数据服务接口支持批量修改一个批次少于100条数据。
// @Tags dataex
// @Accept json
// @Produce json
// @Param input body MySwagger.DataIn true "修改数据"
// @Success 200 {object} MySwagger.DataInResult
// @Failure 400 {object} MySwagger.Result
// @Router /v1/dataex/DataexSet [post]
func DataexSet(c *gin.Context) {
var input MySwagger.DataIn
if err := c.ShouldBindJSON(&input); err != nil {
c.JSON(http.StatusBadRequest, MySwagger.Result{Success: false,Message: "接入系统JSON数据格式不正确"})
return
}
if input.SystemID == "" || input.AuthToken == "" {
fmt.Println("接入系统票据不能为空")
c.JSON(http.StatusBadRequest, MySwagger.Result{Success: false,Message: "接入系统票据不能为空"})
return
}
if len(input.Datas)==0 {
fmt.Println("接入系统JSON数据Datas不能为空")
c.JSON(http.StatusBadRequest, MySwagger.Result{Success: false,Message: "接入系统JSON数据Datas不能为空"})
return
}
flag,_,systemID:=AuthService.CheckToken(input.SystemID,input.AuthToken)
if flag==false {
fmt.Println("接入系统票据不正确")
c.JSON(http.StatusBadRequest, MySwagger.Result{Success: false,Message: "接入系统票据不正确"})
return
}
flag2,_,dataSource := DataexService.CheckDatasourceSet(systemID,input.DataSource)
if flag2==false {
fmt.Println("接入系统访问的数据源类型不正确")
c.JSON(http.StatusBadRequest, MySwagger.Result{Success: false,Message: "接入系统访问的数据源类型不正确"})
return
}
//success,result,successIDs,failResults:=DataexService.DataexSet(input.SystemID,input.Datas,dataSource)
success,result,successIDs,failResults:=DataexService.DataexSetBatch(input.SystemID,input.Datas,dataSource)
if success{
fmt.Println("DataexSet服务调用成功")
c.JSON(http.StatusOK, MySwagger.DataInResult{
Success: true,
Message: "DataexSet服务调用成功",
SuccessIDs: successIDs,
FailResults: failResults,
})
return
}else {
c.JSON(http.StatusOK, MySwagger.DataInResult{
Success: false,
Message: result,
})
return
}
}
// @Summary 汇集数据
// @Description 【数据交换平台】用户行为数据汇集服务接口支持用户事件批量入库一个批次少于100个事件数据。
// @Tags dataex
// @Accept json
// @Produce json
// @Param input body MySwagger.DataCollect true "汇集数据"
// @Success 200 {object} MySwagger.Result
// @Failure 400 {object} MySwagger.Result
// @Router /v1/dataex/DataexCollect [post]
func DataexCollect(c *gin.Context) {
var input MySwagger.DataCollect
if err := c.ShouldBindJSON(&input); err != nil {
c.JSON(http.StatusOK, MySwagger.Result{Success: false,Message: "接入系统数据JSON格式错误"})
return
}
if input.AccessToken == "" {
c.JSON(http.StatusOK, MySwagger.Result{Success: false,Message: "接入系统票据验证失败"})
return
}
if len(input.EventDatas)==0 {
c.JSON(http.StatusOK, MySwagger.Result{Success: false,Message: "接入系统JSON数据EventDatas不能为空"})
return
}
var temp=strings.Split(input.AccessToken,"##")
if len(temp)!=3{
c.JSON(http.StatusOK, MySwagger.Result{Success: false,Message: "接入系统票据格式不正确"})
return
}
flag,_,systemID:=AuthService.CheckAccessToken(temp[0],temp[1],temp[2])
if flag==false {
c.JSON(http.StatusOK, MySwagger.Result{Success: false,Message: "接入系统票据不正确"})
return
}
flag2,_,dataSource := DataexService.CheckDatasourceSet(systemID,input.DataSource)
if flag2==false {
c.JSON(http.StatusOK, MySwagger.Result{Success: false,Message: "接入系统访问的数据源类型不正确"})
return
}
var ip = c.ClientIP()
success,message:=DataexService.DataexCollect(temp[0],input.UserDatas,input.EventDatas,dataSource,ip)
if success{
c.JSON(http.StatusOK, MySwagger.Result{
Success: true,
Message: "DataexCollect服务调用成功",
})
return
}else {
c.JSON(http.StatusOK, MySwagger.Result{
Success: false,
Message: message,
})
return
}
return
}
// @Summary 获取数据
// @Description 【数据交换平台】获取数据服务接口。
// @Tags dataex
// @Accept json
// @Produce json
// @Param input body MySwagger.DataGet true "获取数据"
// @Success 200 {object} MySwagger.DataGetResult
// @Failure 400 {object} MySwagger.Result
// @Router /v1/dataex/DataexGet [post]
func DataexGet(c *gin.Context) {
var input MySwagger.DataGet
if err := c.ShouldBindJSON(&input); err != nil {
c.JSON(http.StatusBadRequest, MySwagger.Result{Success: false,Message: "接入系统数据JSON格式错误"})
return
}
if input.SystemID == "" || input.AuthToken == "" {
c.JSON(http.StatusUnauthorized, MySwagger.Result{Success: false,Message: "接入系统票据不能为空"})
return
}
if input.DataID=="" ||input.OrgID=="" || input.DataSource=="" {
c.JSON(http.StatusBadRequest, MySwagger.Result{Success: false,Message: "接入系统JSON数据字段不能为空"})
return
}
flag,_,systemID:=AuthService.CheckToken(input.SystemID,input.AuthToken)
if flag==false {
c.JSON(http.StatusBadRequest, MySwagger.Result{Success: false,Message: "接入系统票据不正确"})
return
}
flag2,_,dataSource2 := DataexService.CheckDatasourceSet(systemID,input.DataSource)
flag3,_,dataSource3 := DataexService.CheckDatasourceGet(systemID,input.DataSource)
if flag2==false && flag3==false {
c.JSON(http.StatusBadRequest, MySwagger.Result{Success: false,Message: "接入系统访问的数据源类型不正确"})
return
}
var getType int
var getOrgID string
if flag2{
getType =dataSource2.ProvideType
getOrgID =dataSource2.ProvideOrgid
}
if flag3{
getType=dataSource3.ConsumeType
getOrgID=dataSource3.ConsumeOrgid
}
flag4,result,data:=DataexService.DataexGet(input.DataSource,getType,getOrgID,input.OrgID,input.DataID)
if flag4{
c.JSON(http.StatusOK, MySwagger.DataGetResult{
Success: true,
Message: "DataexGet服务调用成功",
Datas: data,
})
return
}else {
c.JSON(http.StatusOK, MySwagger.DataGetResult{
Success: flag,
Message: result,
})
return
}
}
// @Summary 分页查询数据
// @Description 【数据交换平台】分页查询数据服务接口支持分页查询支持数据变更时间查询一个批次返回100条数据【query_page从0开始计数,query_time可以为空】。
// @Tags dataex
// @Accept json
// @Produce json
// @Param input body MySwagger.DataPage true "分页查询数据"
// @Success 200 {object} MySwagger.DataGetResult
// @Failure 400 {object} MySwagger.Result
// @Router /v1/dataex/DataexPage [post]
func DataexPage(c *gin.Context) {
var input MySwagger.DataPage
if err := c.ShouldBindJSON(&input); err != nil {
c.JSON(http.StatusBadRequest, MySwagger.Result{Success: false,Message: "接入系统数据JSON格式错误"})
return
}
if input.SystemID == "" || input.AuthToken == "" {
c.JSON(http.StatusUnauthorized, MySwagger.Result{Success: false,Message: "接入系统票据验证失败"})
return
}
if input.QueryPage <0 ||input.OrgID=="" || input.DataSource=="" {
c.JSON(http.StatusBadRequest, MySwagger.Result{Success: false,Message: "接入系统JSON数据字段不能为空"})
return
}
flag,_,systemID:=AuthService.CheckToken(input.SystemID,input.AuthToken)
if flag==false {
c.JSON(http.StatusBadRequest, MySwagger.Result{Success: false,Message: "接入系统票据不正确"})
return
}
flag2,_,dataSource2 := DataexService.CheckDatasourceSet(systemID,input.DataSource)
flag3,_,dataSource3 := DataexService.CheckDatasourceGet(systemID,input.DataSource)
if flag2==false && flag3==false {
c.JSON(http.StatusBadRequest, MySwagger.Result{Success: false,Message: "接入系统访问的数据源类型不正确"})
return
}
var getType int
var getOrgID string
if flag2{
getType =dataSource2.ProvideType
getOrgID =dataSource2.ProvideOrgid
}
if flag3{
getType=dataSource3.ConsumeType
getOrgID=dataSource3.ConsumeOrgid
}
flag4,result,data:=DataexService.DataexPage(input.DataSource,getType,getOrgID,input.OrgID,input.QueryPage,input.QueryTime)
if flag4{
c.JSON(http.StatusOK, MySwagger.DataGetResult{
Success: true,
Message: "DataexPage服务调用成功",
Datas: data,
})
return
}else {
c.JSON(http.StatusOK, MySwagger.DataGetResult{
Success: flag,
Message: result,
})
return
}
}
// @Summary 条件查询数据
// @Description 【数据交换平台】条件查询数据服务接口支持组合条件查询支持分页查询一个批次返回100条数据。
// @Tags dataex
// @Accept json
// @Produce json
// @Param input body MySwagger.DataQuery true "条件查询数据"
// @Success 200 {object} MySwagger.DataGetResult
// @Failure 400 {object} MySwagger.Result
// @Router /v1/dataex/DataexQuery [post]
func DataexQuery(c *gin.Context) {
var input MySwagger.DataQuery
if err := c.ShouldBindJSON(&input); err != nil {
c.JSON(http.StatusBadRequest, MySwagger.Result{Success: false,Message: "接入系统数据JSON格式错误"})
return
}
if input.SystemID == "" || input.AuthToken == "" {
c.JSON(http.StatusUnauthorized, MySwagger.Result{Success: false,Message: "接入系统票据不能为空"})
return
}
if input.QueryPage <0 ||input.OrgID=="" || input.DataSource=="" {
c.JSON(http.StatusBadRequest, MySwagger.Result{Success: false,Message: "接入系统JSON数据字段不能为空"})
return
}
flag,_,systemID:=AuthService.CheckToken(input.SystemID,input.AuthToken)
if flag==false {
c.JSON(http.StatusBadRequest, MySwagger.Result{Success: false,Message: "接入系统票据不正确"})
return
}
flag2,_,dataSource2 := DataexService.CheckDatasourceSet(systemID,input.DataSource)
flag3,_,dataSource3 := DataexService.CheckDatasourceGet(systemID,input.DataSource)
if flag2==false && flag3==false {
c.JSON(http.StatusBadRequest, MySwagger.Result{Success: false,Message: "接入系统访问的数据源类型不正确"})
return
}
var getType int
var getOrgID string
if flag2{
getType =dataSource2.ProvideType
getOrgID =dataSource2.ProvideOrgid
}
if flag3{
getType=dataSource3.ConsumeType
getOrgID=dataSource3.ConsumeOrgid
}
flag4,result,data:=DataexService.DataexQuery(input.DataSource,getType,getOrgID,input.OrgID,input.QueryPage,input.QueryConditions)
if flag4{
c.JSON(http.StatusOK, MySwagger.DataGetResult{
Success: true,
Message: "DataexQuery服务调用成功",
Datas: data,
})
return
}else {
c.JSON(http.StatusOK, MySwagger.DataGetResult{
Success: flag,
Message: result,
})
return
}
}