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.
99 lines
2.4 KiB
99 lines
2.4 KiB
package DatahyperDAO
|
|
|
|
import (
|
|
"dsDataex/GenXorm/models"
|
|
"dsDataex/Utils/DbUtil"
|
|
"dsDataex/Utils/MariaDbUtil"
|
|
"encoding/json"
|
|
"fmt"
|
|
"github.com/xormplus/xorm"
|
|
"strconv"
|
|
)
|
|
|
|
// 基础数据库
|
|
var baseDb = DbUtil.Engine
|
|
// Maria数据库
|
|
var mariaYPTDb = MariaDbUtil.EngineYPT
|
|
var mariaXPTDb = MariaDbUtil.EngineXPT
|
|
|
|
func GetQuerySQL(platform string, queryID string) (bool, string, string, error) {
|
|
var platforms map[string]int
|
|
platforms = map[string]int{"ypt": 3, "xpt": 4}
|
|
queryType := platforms[platform]
|
|
|
|
sql := "SELECT * FROM t_report_sqlquery_old WHERE query_type='" + strconv.Itoa(queryType) + "' AND query_code='" + queryID + "'"
|
|
|
|
var sqlQuery models.TReportSqlquery
|
|
has, _ := baseDb.SQL(sql).Get(&sqlQuery)
|
|
|
|
if has {
|
|
m := make(map[string]interface{})
|
|
j, _ := json.Marshal(sqlQuery)
|
|
json.Unmarshal(j, &m)
|
|
|
|
return true, "ok", m["query_sql"].(string), nil
|
|
} else {
|
|
return false, "fail", "", nil
|
|
}
|
|
}
|
|
|
|
func SelectDB(db string) *xorm.Engine {
|
|
var engin *xorm.Engine
|
|
switch db {
|
|
case "ypt":
|
|
engin = mariaYPTDb
|
|
break
|
|
case "xpt":
|
|
engin = mariaXPTDb
|
|
break
|
|
default:
|
|
engin = mariaYPTDb
|
|
}
|
|
|
|
return engin
|
|
}
|
|
|
|
func GetRow(db string, sql string, dataID string) (bool, string, map[string]interface{}, error) {
|
|
mariaDb := SelectDB(db)
|
|
result, err := mariaDb.SQL(sql, dataID).Query().List()
|
|
//result = result[4 : len(result) - 2]
|
|
if result != nil {
|
|
return true, "数据查询成功", result[0], nil
|
|
} else {
|
|
if err == nil {
|
|
return false, "数据获取失败,数据不存在", nil, nil
|
|
} else {
|
|
return false, err.Error(), nil, nil
|
|
}
|
|
}
|
|
}
|
|
|
|
func GetResults(db string, sql string, params []interface{}, limit int, offset int) (bool, string, int, []map[string]interface{}, error) {
|
|
mariaDb := SelectDB(db)
|
|
|
|
//条件查询语句
|
|
conditionSql := fmt.Sprintf("%s", " limit ? offset ? ")
|
|
//分页的语句
|
|
pageSql := fmt.Sprintf("%s %s", sql, conditionSql)
|
|
//数据条数
|
|
count, err := mariaDb.SQL(sql, params...).Query().Count()
|
|
if count > 0 {
|
|
params = append(params, limit)
|
|
params = append(params, offset)
|
|
|
|
//分页数据
|
|
list, err := mariaDb.SQL(pageSql, params...).Query().List()
|
|
if err == nil {
|
|
return true, "数据获取成功", count, list, nil
|
|
} else {
|
|
return false, "数据获取失败,数据不存在", count, nil, nil
|
|
}
|
|
} else {
|
|
if err == nil {
|
|
return false, "数据获取失败,数据不存在", count, nil, nil
|
|
} else {
|
|
return false, err.Error(), count, nil, nil
|
|
}
|
|
}
|
|
}
|