From ce840d90cf4fab6fdda0cbd969b75cd7a47b03a8 Mon Sep 17 00:00:00 2001 From: junjun Date: Wed, 31 Aug 2022 11:26:55 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E9=9B=86):=20=E8=A7=A3?= =?UTF-8?q?=E5=86=B3sql=E5=8A=A0=E5=AF=86=E5=AF=BC=E8=87=B4=E6=8B=BC?= =?UTF-8?q?=E6=8E=A5=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/dataset/DataSetTableService.java | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 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 76ec446d36..523b8e987c 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -952,9 +952,10 @@ public class DataSetTableService { List sqlVariableNames = new ArrayList<>(); datasetTables.forEach(datasetTable -> { if (StringUtils.isNotEmpty(datasetTable.getSqlVariableDetails())) { - List sqlVariables = new Gson().fromJson(datasetTable.getSqlVariableDetails(), new TypeToken>() {}.getType()); + List sqlVariables = new Gson().fromJson(datasetTable.getSqlVariableDetails(), new TypeToken>() { + }.getType()); for (SqlVariableDetails sqlVariable : sqlVariables) { - if(!sqlVariableNames.contains(sqlVariable.getVariableName())){ + if (!sqlVariableNames.contains(sqlVariable.getVariableName())) { sqlVariableNames.add(sqlVariable.getVariableName()); sqlVariableDetails.add(sqlVariable); } @@ -1023,7 +1024,7 @@ public class DataSetTableService { if (fromItem instanceof SubSelect) { SelectBody selectBody = ((SubSelect) fromItem).getSelectBody(); SubSelect subSelect = new SubSelect(); - Select subSelectTmp = (Select)CCJSqlParserUtil.parse(removeVariables(selectBody.toString())); + Select subSelectTmp = (Select) CCJSqlParserUtil.parse(removeVariables(selectBody.toString())); PlainSelect subPlainSelect = ((PlainSelect) subSelectTmp.getSelectBody()); subSelect.setSelectBody(subPlainSelect); subSelect.setAlias(new Alias(fromItem.getAlias().toString())); @@ -1805,7 +1806,7 @@ public class DataSetTableService { DataTableInfoDTO dataTableInfoDTO = new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class); Map sqlMap = getUnionSQLDoris(dataTableInfoDTO); - String sql = (String) sqlMap.get("sql"); + String sql = new String(java.util.Base64.getDecoder().decode((String) sqlMap.get("sql"))); List fieldList = (List) sqlMap.get("field"); List join = (List) sqlMap.get("join"); @@ -2603,60 +2604,60 @@ public class DataSetTableService { @Override public void visit(Between between) { - if(hasVarible(between.getBetweenExpressionStart().toString()) || hasVarible(between.getBetweenExpressionEnd().toString())){ + if (hasVarible(between.getBetweenExpressionStart().toString()) || hasVarible(between.getBetweenExpressionEnd().toString())) { getBuffer().append(SubstitutedSql); - }else { + } else { getBuffer().append(between.getLeftExpression()).append(" BETWEEN ").append(between.getBetweenExpressionStart()).append(" AND ").append(between.getBetweenExpressionEnd()); } } @Override public void visit(MinorThan minorThan) { - if(hasVarible(minorThan.getLeftExpression().toString()) || hasVarible(minorThan.getRightExpression().toString())){ + if (hasVarible(minorThan.getLeftExpression().toString()) || hasVarible(minorThan.getRightExpression().toString())) { getBuffer().append(SubstitutedSql); return; } getBuffer().append(minorThan.getLeftExpression()); getBuffer().append(" < "); - getBuffer().append( minorThan.getRightExpression()); + getBuffer().append(minorThan.getRightExpression()); } @Override public void visit(MinorThanEquals minorThan) { - if(hasVarible(minorThan.getLeftExpression().toString()) || hasVarible(minorThan.getRightExpression().toString())){ + if (hasVarible(minorThan.getLeftExpression().toString()) || hasVarible(minorThan.getRightExpression().toString())) { getBuffer().append(SubstitutedSql); return; } getBuffer().append(minorThan.getLeftExpression()); getBuffer().append(" <= "); - getBuffer().append( minorThan.getRightExpression()); + getBuffer().append(minorThan.getRightExpression()); } @Override public void visit(GreaterThanEquals minorThan) { - if(hasVarible(minorThan.getLeftExpression().toString()) || hasVarible(minorThan.getRightExpression().toString())){ + if (hasVarible(minorThan.getLeftExpression().toString()) || hasVarible(minorThan.getRightExpression().toString())) { getBuffer().append(SubstitutedSql); return; } getBuffer().append(minorThan.getLeftExpression()); getBuffer().append(" >= "); - getBuffer().append( minorThan.getRightExpression()); + getBuffer().append(minorThan.getRightExpression()); } @Override public void visit(GreaterThan greaterThan) { - if(hasVarible(greaterThan.getLeftExpression().toString()) || hasVarible(greaterThan.getRightExpression().toString())){ + if (hasVarible(greaterThan.getLeftExpression().toString()) || hasVarible(greaterThan.getRightExpression().toString())) { getBuffer().append(SubstitutedSql); return; } getBuffer().append(greaterThan.getLeftExpression()); getBuffer().append(" > "); - getBuffer().append( greaterThan.getRightExpression()); + getBuffer().append(greaterThan.getRightExpression()); } @Override public void visit(ExpressionList expressionList) { - for (Iterator iter = expressionList.getExpressions().iterator(); iter.hasNext();) { + for (Iterator iter = expressionList.getExpressions().iterator(); iter.hasNext(); ) { Expression expression = iter.next(); expression.accept(this); if (iter.hasNext()) { @@ -2732,7 +2733,9 @@ public class DataSetTableService { try { BinaryExpression leftBinaryExpression = (BinaryExpression) expr.getLeftExpression(); hasSubBinaryExpression = leftBinaryExpression.getLeftExpression() instanceof BinaryExpression; - } catch (Exception e) {e.printStackTrace();} + } catch (Exception e) { + e.printStackTrace(); + } if (expr.getLeftExpression() instanceof BinaryExpression && !hasSubBinaryExpression && hasVarible(expr.getLeftExpression().toString())) { getBuffer().append(SubstitutedSql); @@ -2750,7 +2753,7 @@ public class DataSetTableService { } if (expr.getRightExpression() instanceof BinaryExpression && !hasSubBinaryExpression && hasVarible(expr.getRightExpression().toString())) { getBuffer().append(SubstitutedSql); - } else { + } else { expr.getRightExpression().accept(this); } }