diff --git a/README.md b/README.md index 88e71059b3..23b8992d1b 100644 --- a/README.md +++ b/README.md @@ -90,7 +90,7 @@ curl -sSL https://dataease.oss-cn-hangzhou.aliyuncs.com/quick_start.sh | sh **加入微信交流群** - + ## DataEase 的技术栈 diff --git a/backend/pom.xml b/backend/pom.xml index 26483f8851..a4dfbe8c94 100644 --- a/backend/pom.xml +++ b/backend/pom.xml @@ -185,7 +185,7 @@ org.testng testng - 6.8 + 7.7.0 test diff --git a/backend/src/main/java/io/dataease/auth/aop/SqlInjectAop.java b/backend/src/main/java/io/dataease/auth/aop/SqlInjectAop.java index 56f92e2633..add12ab202 100644 --- a/backend/src/main/java/io/dataease/auth/aop/SqlInjectAop.java +++ b/backend/src/main/java/io/dataease/auth/aop/SqlInjectAop.java @@ -46,7 +46,7 @@ public class SqlInjectAop { String[] value = annotation.value(); boolean illegal = isIllegal(value, request.getOrders()); if (illegal) { - DEException.throwException("Illegal order exp"); + DEException.throwException("Illegal sort exp"); } return point.proceed(args); } catch (Throwable e) { diff --git a/backend/src/main/java/io/dataease/controller/sys/request/MsgRequest.java b/backend/src/main/java/io/dataease/controller/sys/request/MsgRequest.java index 3e5ac7f497..a06787bd9e 100644 --- a/backend/src/main/java/io/dataease/controller/sys/request/MsgRequest.java +++ b/backend/src/main/java/io/dataease/controller/sys/request/MsgRequest.java @@ -1,15 +1,15 @@ package io.dataease.controller.sys.request; +import io.dataease.controller.sys.base.BaseGridRequest; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; -import java.util.List; @Data @ApiModel("消息条件") -public class MsgRequest implements Serializable { +public class MsgRequest extends BaseGridRequest implements Serializable { private static final long serialVersionUID = 1920091635946508658L; @@ -19,6 +19,4 @@ public class MsgRequest implements Serializable { @ApiModelProperty("是否订阅") private Boolean status; - @ApiModelProperty("排序描述") - private List orders; } diff --git a/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlDDLProvider.java b/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlDDLProvider.java index 259169b614..cd9ff9f1b8 100644 --- a/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlDDLProvider.java +++ b/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlDDLProvider.java @@ -4,9 +4,12 @@ import io.dataease.plugins.common.base.domain.DatasetTableField; import io.dataease.plugins.common.base.domain.Datasource; import io.dataease.commons.utils.TableUtils; import io.dataease.provider.DDLProviderImpl; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import java.util.Arrays; import java.util.List; +import java.util.UUID; /** * @Author gin @@ -25,6 +28,30 @@ public class MysqlDDLProvider extends DDLProviderImpl { return "CREATE or replace view " + name + " AS (" + viewSQL + ")"; } + @Override + public String insertSql(String name, List dataList, int page, int pageNumber) { + String insertSql = "INSERT INTO TABLE_NAME VALUES ".replace("TABLE_NAME", name); + StringBuffer values = new StringBuffer(); + + Integer realSize = page * pageNumber < dataList.size() ? page * pageNumber : dataList.size(); + for (String[] strings : dataList.subList((page - 1) * pageNumber, realSize)) { + String[] strings1 = new String[strings.length]; + for (int i = 0; i < strings.length; i++) { + if (StringUtils.isEmpty(strings[i])) { + strings1[i] = null; + } else { + strings1[i] = strings[i].replace("'", "\\'"); + } + } + values.append("('").append(UUID.randomUUID()) + .append("','").append(String.join("','", Arrays.asList(strings1))) + .append("'),"); + } + return (insertSql + values.substring(0, values.length() - 1)).replaceAll(",'null'", ",null"); + } + + + @Override public String dropTable(String name) { return "DROP TABLE IF EXISTS " + name; @@ -67,7 +94,7 @@ public class MysqlDDLProvider extends DDLProviderImpl { } break; case 2: - Column_Fields.append("varchar(100)").append(",`"); + Column_Fields.append("bigint(20)").append(",`"); break; case 3: Column_Fields.append("varchar(100)").append(",`"); diff --git a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index e56116cbad..70da2f8f21 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -882,7 +882,7 @@ public class ChartViewService { Map dimValMap = head.getDimensionList().stream().collect(Collectors.toMap(ChartDimensionDTO::getId, ChartDimensionDTO::getValue)); Map fieldMap = Stream.of(xAxisBase, xAxisExt, extStack). flatMap(Collection::stream). - collect(Collectors.toMap(ChartViewFieldDTO::getId, o -> o)); + collect(Collectors.toMap(ChartViewFieldDTO::getId, o -> o, ((p, n) -> p))); for (int i = 0; i < drillRequestList.size(); i++) { ChartDrillRequest request = drillRequestList.get(i); ChartViewFieldDTO chartViewFieldDTO = drill.get(i); @@ -893,6 +893,7 @@ public class ChartViewService { fieldsToFilter.add(chartViewFieldDTO); dimValMap.put(requestDimension.getId(), requestDimension.getValue()); if (!checkDrillExist(xAxis, extStack, requestDimension.getId(), view)) { + fieldMap.put(chartViewFieldDTO.getId(), chartViewFieldDTO); xAxis.add(chartViewFieldDTO); } if (i == drillRequestList.size() - 1) { diff --git a/frontend/src/views/dataset/add/AddSQL.vue b/frontend/src/views/dataset/add/AddSQL.vue index a5860f5e15..3bdb286885 100644 --- a/frontend/src/views/dataset/add/AddSQL.vue +++ b/frontend/src/views/dataset/add/AddSQL.vue @@ -927,7 +927,6 @@ export default { ).sql } this.variables = JSON.parse(table.sqlVariableDetails) - this.getSQLPreview() }) } },