Merge branch 'CodePhiliaX:dev' into dev

This commit is contained in:
玦尘
2024-10-15 22:23:44 +08:00
committed by GitHub
8 changed files with 303 additions and 4 deletions

View File

@ -5,6 +5,7 @@ import java.io.PrintWriter;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import ai.chat2db.spi.SqlBuilder;
@ -84,7 +85,7 @@ public class RdbDmlExportController {
ExportTypeEnum exportType = EasyEnumUtils.getEnum(ExportTypeEnum.class, request.getExportType());
String sql;
if (exportSize == ExportSizeEnum.CURRENT_PAGE) {
sql = request.getSql();
sql = request.getOriginalSql() + " LIMIT " + request.getPageSize() + " OFFSET " + (request.getPageNo() - 1) * request.getPageSize();
} else {
sql = request.getOriginalSql();
}
@ -154,12 +155,20 @@ public class RdbDmlExportController {
SqlBuilder sqlBuilder = Chat2DBContext.getMetaData().getSqlBuilder();
try (PrintWriter printWriter = response.getWriter()) {
List<String> headerColumns = Lists.newArrayList();
List<SQLIdentifierExpr> headers = new ArrayList<>();
InsertWrapper insertWrapper = new InsertWrapper();
SQLExecutor.getInstance().execute(Chat2DBContext.getConnection(), sql,
headerList -> {
headerList.forEach(sqlIdentifierExpr -> headerColumns.add(sqlIdentifierExpr.getName()));
}
, dataList -> {
for (String header : headerColumns) {
SQLIdentifierExpr expr = new SQLIdentifierExpr(header);
expr.setName(header);
headers.add(expr);
}
insertWrapper.setHeaderList(headers);
SQLInsertStatement sqlInsertStatement = new SQLInsertStatement();
sqlInsertStatement.setDbType(dbType);
sqlInsertStatement.setTableSource(new SQLExprTableSource(tableName));

View File

@ -23,6 +23,9 @@ public class DataExportRequest extends DataSourceBaseRequest {
*/
private String originalSql;
private Integer pageNo;
private Integer pageSize;
/**
* export type
*