|
|
package DatahyperService
|
|
|
|
|
|
import (
|
|
|
"dsDataex/MyHyper/DataHyper/DatahyperDAO"
|
|
|
"dsDataex/MyHyper/MySwagger"
|
|
|
"dsDataex/Utils/CommonUtil"
|
|
|
"strings"
|
|
|
)
|
|
|
|
|
|
func GetResults(raw MySwagger.DatahyperQuery) (bool, string, int, []map[string]interface{}, error) {
|
|
|
queryID := raw.QueryID
|
|
|
res, msg, sql, _ := DatahyperDAO.GetQuerySQL(queryID)
|
|
|
if res {
|
|
|
if len(raw.QueryCondition) > 0 {
|
|
|
condition := strings.Join(raw.QueryCondition, " AND ")
|
|
|
sql += " WHERE " + condition
|
|
|
}
|
|
|
|
|
|
if raw.QueryCombination != "" && len(raw.QueryCondition) > 0 {
|
|
|
sql += " AND " + raw.QueryCombination
|
|
|
}
|
|
|
|
|
|
if raw.QueryCombination != "" && len(raw.QueryCondition) == 0 {
|
|
|
sql += " WHERE " + raw.QueryCombination
|
|
|
}
|
|
|
|
|
|
if len(raw.QueryOrder) > 0 {
|
|
|
orderby := strings.Join(raw.QueryOrder, ", ")
|
|
|
sql += " ORDER BY " + orderby
|
|
|
}
|
|
|
|
|
|
//接收传入参数
|
|
|
var limit = raw.QueryPerPage
|
|
|
var offset = (raw.QueryPage - 1) * limit
|
|
|
|
|
|
switch raw.QueryFormat {
|
|
|
case "json":
|
|
|
res1, msg1, count, data, _ := DatahyperDAO.GetResults(sql, limit, offset)
|
|
|
if res1 {
|
|
|
if len(raw.QueryCols) > 0 {
|
|
|
for k, v := range data {
|
|
|
for kk, _ := range v {
|
|
|
if CommonUtil.StringArrayContain((raw.QueryCols), kk) == false {
|
|
|
delete(data[k], kk)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return res1, msg1, count, data, nil
|
|
|
} else {
|
|
|
return res1, msg1, 0, nil, nil
|
|
|
}
|
|
|
break
|
|
|
default:
|
|
|
break
|
|
|
}
|
|
|
return false, "查询Format参数错误,不支持此类型的数据格式转换", 0, nil, nil
|
|
|
} else {
|
|
|
return res, msg, 0, nil, nil
|
|
|
}
|
|
|
}
|
|
|
|
|
|
func GetRow(raw MySwagger.DatahyperQueryByID) (bool, string, map[string]interface{}, error) {
|
|
|
queryID := raw.QueryID
|
|
|
res, msg, sql, _ := DatahyperDAO.GetQuerySQL(queryID)
|
|
|
if res {
|
|
|
switch raw.QueryFormat {
|
|
|
case "json":
|
|
|
res1, msg1, data, _ := DatahyperDAO.GetRow(sql, raw.DataID)
|
|
|
if res1 {
|
|
|
if len(raw.QueryCols) > 0 {
|
|
|
for kk, _ := range data {
|
|
|
if CommonUtil.StringArrayContain((raw.QueryCols), kk) == false {
|
|
|
delete(data, kk)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return res1, msg1, data, nil
|
|
|
} else {
|
|
|
return res1, msg1, nil, nil
|
|
|
}
|
|
|
break
|
|
|
default:
|
|
|
break
|
|
|
}
|
|
|
return false, "查询Format参数错误,不支持此类型的数据格式转换", nil, nil
|
|
|
} else {
|
|
|
return res, msg, nil, nil
|
|
|
}
|
|
|
}
|
|
|
|
|
|
func GetResultsFE(raw MySwagger.DatahyperQueryFE) (bool, string, int, []map[string]interface{}, error) {
|
|
|
queryID := raw.QueryID
|
|
|
res, msg, sql, _ := DatahyperDAO.GetQuerySQL(queryID)
|
|
|
if res {
|
|
|
if len(raw.QueryCondition) > 0 {
|
|
|
condition := strings.Join(raw.QueryCondition, " AND ")
|
|
|
sql += " WHERE " + condition
|
|
|
}
|
|
|
|
|
|
if raw.QueryCombination != "" && len(raw.QueryCondition) > 0 {
|
|
|
sql += " AND " + raw.QueryCombination
|
|
|
}
|
|
|
|
|
|
if raw.QueryCombination != "" && len(raw.QueryCondition) == 0 {
|
|
|
sql += " WHERE " + raw.QueryCombination
|
|
|
}
|
|
|
|
|
|
if len(raw.QueryOrder) > 0 {
|
|
|
orderby := strings.Join(raw.QueryOrder, ", ")
|
|
|
sql += " ORDER BY " + orderby
|
|
|
}
|
|
|
|
|
|
//接收传入参数
|
|
|
var limit = raw.QueryPerPage
|
|
|
var offset = (raw.QueryPage - 1) * limit
|
|
|
|
|
|
switch raw.QueryFormat {
|
|
|
case "json":
|
|
|
res1, msg1, count, data, _ := DatahyperDAO.GetResults(sql, limit, offset)
|
|
|
if res1 {
|
|
|
if len(raw.QueryCols) > 0 {
|
|
|
for k, v := range data {
|
|
|
for kk, _ := range v {
|
|
|
if CommonUtil.StringArrayContain((raw.QueryCols), kk) == false {
|
|
|
delete(data[k], kk)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return res1, msg1, count, data, nil
|
|
|
} else {
|
|
|
return res1, msg1, 0, nil, nil
|
|
|
}
|
|
|
break
|
|
|
default:
|
|
|
break
|
|
|
}
|
|
|
return false, "查询Format参数错误,不支持此类型的数据格式转换", 0, nil, nil
|
|
|
} else {
|
|
|
return res, msg, 0, nil, nil
|
|
|
}
|
|
|
}
|
|
|
|
|
|
func GetRowFE(raw MySwagger.DatahyperQueryFEByID) (bool, string, map[string]interface{}, error) {
|
|
|
queryID := raw.QueryID
|
|
|
res, msg, sql, _ := DatahyperDAO.GetQuerySQL(queryID)
|
|
|
if res {
|
|
|
switch raw.QueryFormat {
|
|
|
case "json":
|
|
|
res1, msg1, data, _ := DatahyperDAO.GetRow(sql, raw.DataID)
|
|
|
if res1 {
|
|
|
if len(raw.QueryCols) > 0 {
|
|
|
for kk, _ := range data { //map[string]interface{}
|
|
|
if CommonUtil.StringArrayContain((raw.QueryCols), kk) == false {
|
|
|
delete(data, kk)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return res1, msg1, data, nil
|
|
|
} else {
|
|
|
return res1, msg1, nil, nil
|
|
|
}
|
|
|
break
|
|
|
default:
|
|
|
break
|
|
|
}
|
|
|
return false, "查询Format参数错误,不支持此类型的数据格式转换", nil, nil
|
|
|
} else {
|
|
|
return res, msg, nil, nil
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|