Merge pull request #5314 from dataease/pr@dev@fixdataset

fix: sqlserver 过滤中文
This commit is contained in:
taojinlong 2023-05-25 14:29:58 +08:00 committed by GitHub
commit 9624daf021
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -899,7 +899,7 @@ public class SqlserverQueryProvider extends QueryProvider {
} else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) {
if(field.getType().equals("NVARCHAR")){ if(field.getType().equalsIgnoreCase("NVARCHAR")){
whereValue = Arrays.asList(value.split(",")).stream().map(str ->{return "N"+ str;}).collect(Collectors.joining(",")); whereValue = Arrays.asList(value.split(",")).stream().map(str ->{return "N"+ str;}).collect(Collectors.joining(","));
}else { }else {
whereValue = "('" + String.join("','", value.split(",")) + "')"; whereValue = "('" + String.join("','", value.split(",")) + "')";
@ -907,7 +907,7 @@ public class SqlserverQueryProvider extends QueryProvider {
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) {
whereValue = "'%" + value + "%'"; whereValue = "'%" + value + "%'";
} else { } else {
if(field.getType().equals("NVARCHAR")){ if(field.getType().equalsIgnoreCase("NVARCHAR")){
whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE_CH, value); whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE_CH, value);
}else { }else {
whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE, value); whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE, value);
@ -1034,7 +1034,7 @@ public class SqlserverQueryProvider extends QueryProvider {
} else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) { } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in") || StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "not in")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in") || StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "not in")) {
if(field.getType().equals("NVARCHAR")){ if(field.getType().equalsIgnoreCase("NVARCHAR")){
whereValue = Arrays.asList(value.split(",")).stream().map(str ->{return "N"+ str;}).collect(Collectors.joining(",")); whereValue = Arrays.asList(value.split(",")).stream().map(str ->{return "N"+ str;}).collect(Collectors.joining(","));
}else { }else {
whereValue = "('" + String.join("','", value.split(",")) + "')"; whereValue = "('" + String.join("','", value.split(",")) + "')";
@ -1042,7 +1042,7 @@ public class SqlserverQueryProvider extends QueryProvider {
} else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) {
whereValue = "'%" + value + "%'"; whereValue = "'%" + value + "%'";
} else { } else {
if(field.getType().equals("NVARCHAR")){ if(field.getType().equalsIgnoreCase("NVARCHAR")){
whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE_CH, value); whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE_CH, value);
}else { }else {
whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE, value); whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE, value);
@ -1146,7 +1146,7 @@ public class SqlserverQueryProvider extends QueryProvider {
String whereValue = ""; String whereValue = "";
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
if(request.getDatasetTableField().getType().equals("NVARCHAR")){ if(request.getDatasetTableField().getType().equalsIgnoreCase("NVARCHAR")){
whereValue = value.stream().map(str ->{return "N"+ str;}).collect(Collectors.joining(",")); whereValue = value.stream().map(str ->{return "N"+ str;}).collect(Collectors.joining(","));
}else { }else {
whereValue = "('" + StringUtils.join(value, "','") + "')"; whereValue = "('" + StringUtils.join(value, "','") + "')";
@ -1166,7 +1166,7 @@ public class SqlserverQueryProvider extends QueryProvider {
} }
} else { } else {
if(request.getDatasetTableField().getType().equals("NVARCHAR")){ if(request.getDatasetTableField().getType().equalsIgnoreCase("NVARCHAR")){
whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE_CH, value.get(0)); whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE_CH, value.get(0));
}else { }else {
whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE, value.get(0)); whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE, value.get(0));
@ -1328,7 +1328,7 @@ public class SqlserverQueryProvider extends QueryProvider {
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) { } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
whereValue = "''"; whereValue = "''";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
if(y.getType().equals("NVARCHAR")){ if(y.getType().equalsIgnoreCase("NVARCHAR")){
whereValue = Arrays.asList(f.getValue().split(",")).stream().map(str ->{return "N"+ str;}).collect(Collectors.joining(",")); whereValue = Arrays.asList(f.getValue().split(",")).stream().map(str ->{return "N"+ str;}).collect(Collectors.joining(","));
}else { }else {
whereValue = "('" + String.join("','", f.getValue().split(",")) + "')"; whereValue = "('" + String.join("','", f.getValue().split(",")) + "')";
@ -1336,7 +1336,7 @@ public class SqlserverQueryProvider extends QueryProvider {
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
whereValue = "'%" + f.getValue() + "%'"; whereValue = "'%" + f.getValue() + "%'";
} else { } else {
if(y.getType().equals("NVARCHAR")){ if(y.getType().equalsIgnoreCase("NVARCHAR")){
whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE_CH, f.getValue()); whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE_CH, f.getValue());
}else { }else {
whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE, f.getValue()); whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE, f.getValue());