package io.dataease.provider; import io.dataease.base.domain.DatasetTableField; import io.dataease.controller.request.chart.ChartExtFilterRequest; import io.dataease.dto.chart.ChartCustomFilterDTO; import io.dataease.dto.chart.ChartViewFieldDTO; import java.util.List; /** * @Author gin * @Date 2021/5/17 2:42 下午 */ public abstract class QueryProvider { public abstract Integer transFieldType(String field); public abstract String createQueryCountSQL(String table); public abstract String createQueryCountSQLAsTmp(String sql); public abstract String createSQLPreview(String sql, String orderBy); public abstract String createQuerySQL(String table, List fields); public abstract String createQuerySQLAsTmp(String sql, List fields); public abstract String createQuerySQLWithPage(String table, List fields, Integer page, Integer pageSize, Integer realSize); public abstract String createQueryTableWithLimit(String table, List fields, Integer limit); public abstract String createQuerySqlWithLimit(String sql, List fields, Integer limit); public abstract String createQuerySQLAsTmpWithPage(String sql, List fields, Integer page, Integer pageSize, Integer realSize); public abstract String getSQL(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList); public abstract String getSQLAsTmp(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList); public abstract String getSQLStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack); public abstract String getSQLAsTmpStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack); public abstract String searchTable(String table); public abstract String getSQLSummary(String table, List yAxis, List customFilter, List extFilterRequestList); /** * 单指标汇总 * * @param sql * @param yAxis * @param customFilter * @param extFilterRequestList * @return */ public abstract String getSQLSummaryAsTmp(String sql, List yAxis, List customFilter, List extFilterRequestList); public abstract String wrapSql(String sql); public abstract String createRawQuerySQL(String table, List fields); public abstract String createRawQuerySQLAsTmp(String sql, List fields); }