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