From b5e4aea1dc1f09669fe6de6b45d045697a63bcb6 Mon Sep 17 00:00:00 2001 From: junjun Date: Wed, 22 Jun 2022 19:59:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=A7=86=E5=9B=BE=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/dataset/DataSetTableService.java | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index d286c58787..0b6a050ca6 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -533,7 +533,7 @@ public class DataSetTableService { .checked(Boolean.TRUE).build(); List fields = dataSetTableFieldsService.list(datasetTableField); if (CollectionUtils.isNotEmpty(extFields)) { - fields.addAll(extFields); + fields = extFields; } if (CollectionUtils.isEmpty(fields)) { map.put("fields", fields); @@ -628,7 +628,6 @@ public class DataSetTableService { datasourceRequest.setQuery( qp.createQueryTableWithPage(table, fields, page, pageSize, realSize, false, ds, customFilter)); map.put("sql", datasourceRequest.getQuery()); - logger.error(datasourceRequest.getQuery()); try { data.addAll(jdbcProvider.getData(datasourceRequest)); } catch (Exception e) { @@ -750,7 +749,7 @@ public class DataSetTableService { conditionEntities.add(entity2); request.setConditions(conditionEntities); List dataSetTaskLogDTOS = dataSetTableTaskLogService.listTaskLog(request, "excel"); - if(CollectionUtils.isNotEmpty(dataSetTaskLogDTOS)){ + if (CollectionUtils.isNotEmpty(dataSetTaskLogDTOS)) { dataSetTaskLogDTOS.get(0).getStatus().equalsIgnoreCase(JobStatus.Underway.name()); sycnStatus = dataSetTaskLogDTOS.get(0).getStatus(); } @@ -944,14 +943,15 @@ public class DataSetTableService { List sqlVariableDetails = new ArrayList<>(); datasetTables.forEach(datasetTable -> { if (StringUtils.isNotEmpty(datasetTable.getSqlVariableDetails())) { - sqlVariableDetails.addAll(new Gson().fromJson(datasetTable.getSqlVariableDetails(), new TypeToken>() {}.getType())); + sqlVariableDetails.addAll(new Gson().fromJson(datasetTable.getSqlVariableDetails(), new TypeToken>() { + }.getType())); } }); return sqlVariableDetails; } - public String handleVariableDefaultValue(String sql, String sqlVariableDetails){ + public String handleVariableDefaultValue(String sql, String sqlVariableDetails) { if (StringUtils.isEmpty(sql)) { DataEaseException.throwException(Translator.get("i18n_sql_not_empty")); } @@ -959,7 +959,8 @@ public class DataSetTableService { Matcher matcher = pattern.matcher(sql); while (matcher.find()) { SqlVariableDetails defaultsSqlVariableDetail = null; - List defaultsSqlVariableDetails = new Gson().fromJson(sqlVariableDetails, new TypeToken>() {}.getType()); + List defaultsSqlVariableDetails = new Gson().fromJson(sqlVariableDetails, new TypeToken>() { + }.getType()); for (SqlVariableDetails sqlVariableDetail : defaultsSqlVariableDetails) { if (matcher.group().substring(2, matcher.group().length() - 1).equalsIgnoreCase(sqlVariableDetail.getVariableName())) { defaultsSqlVariableDetail = sqlVariableDetail; @@ -970,11 +971,11 @@ public class DataSetTableService { sql = sql.replace(matcher.group(), defaultsSqlVariableDetail.getDefaultValue()); } } - try { - sql = removeVariables(sql); - }catch (Exception e){ - e.printStackTrace(); - } + try { + sql = removeVariables(sql); + } catch (Exception e) { + e.printStackTrace(); + } return sql; } @@ -986,7 +987,7 @@ public class DataSetTableService { hasVariables = true; sql = sql.replace(matcher.group(), SubstitutedParams); } - if(!hasVariables){ + if (!hasVariables) { return sql; } CCJSqlParserUtil.parse(sql, parser -> parser.withSquareBracketQuotation(true)); @@ -994,15 +995,15 @@ public class DataSetTableService { Select select = (Select) statement; PlainSelect plainSelect = ((PlainSelect) select.getSelectBody()); Expression expr = plainSelect.getWhere(); - if(expr == null){ + if (expr == null) { return sql; } StringBuilder stringBuilder = new StringBuilder(); - BinaryExpression binaryExpression = (BinaryExpression)expr; + BinaryExpression binaryExpression = (BinaryExpression) expr; - if(!(binaryExpression.getLeftExpression() instanceof BinaryExpression) && !(binaryExpression.getRightExpression() instanceof BinaryExpression) && hasVarible(binaryExpression.toString())){ + if (!(binaryExpression.getLeftExpression() instanceof BinaryExpression) && !(binaryExpression.getRightExpression() instanceof BinaryExpression) && hasVarible(binaryExpression.toString())) { stringBuilder.append(SubstitutedSql); - }else { + } else { expr.accept(getExpressionDeParser(stringBuilder)); } plainSelect.setWhere(CCJSqlParserUtil.parseCondExpression(stringBuilder.toString())); @@ -2627,6 +2628,7 @@ public class DataSetTableService { }; return expressionDeParser; } + static private boolean hasVarible(String sql) { return sql.contains(SubstitutedParams); }