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