Skip to content

Commit 8e2f1d4

Browse files
authored
Merge pull request #1124 from xiaohuangdou666/develop
feat: download image and pdf
2 parents bcd09c3 + 8c815df commit 8e2f1d4

File tree

24 files changed

+659
-243
lines changed

24 files changed

+659
-243
lines changed

core/src/main/java/datart/core/base/consts/AttachmentType.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,23 @@
22

33
public enum AttachmentType {
44

5-
EXCEL,
5+
EXCEL(".xlsx"),
66

7-
IMAGE
7+
IMAGE(".png"),
88

9+
PDF(".pdf");
10+
11+
private String suffix;
12+
13+
AttachmentType(String suffix) {
14+
this.suffix = suffix;
15+
}
16+
17+
public void setSuffix(String suffix) {
18+
this.suffix = suffix;
19+
}
20+
21+
public String getSuffix() {
22+
return suffix;
23+
}
924
}

core/src/main/java/datart/core/common/Application.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ public static <T> T getBean(Class<T> t) {
5151
return context.getBean(t);
5252
}
5353

54+
public static <T> T getBean(String beanName, Class<T> t) {
55+
return context.getBean(beanName, t);
56+
}
57+
5458
public static String getProperty(String key) {
5559
return context.getEnvironment().getProperty(key);
5660
}

core/src/main/java/datart/core/common/FileUtils.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,11 @@ public static void mkdirParentIfNotExist(String path) {
5555
}
5656

5757
public static String withBasePath(String path) {
58-
return concatPath(Application.getFileBasePath(), path);
58+
String fileBasePath = Application.getFileBasePath();
59+
if (path.startsWith(fileBasePath)) {
60+
return path;
61+
}
62+
return concatPath(fileBasePath, path);
5963
}
6064

6165
public static void delete(String path) {

data-providers/jdbc-data-provider/src/main/java/datart/data/provider/JdbcDataProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ private static List<JdbcDriverInfo> loadDriverInfoFromResource() {
299299
log.error("DbType " + entry.getKey() + " driver read Exception", e);
300300
}
301301
return null;
302-
}).filter(Objects::nonNull).collect(Collectors.toList());
302+
}).filter(Objects::nonNull).sorted(Comparator.comparing(JdbcDriverInfo::getDbType)).collect(Collectors.toList());
303303
}
304304

305305
private static Map<String, Map<String, String>> loadYml(String file) {
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package datart.data.provider.jdbc.adapters;
2+
3+
import org.apache.commons.lang3.StringUtils;
4+
5+
import java.sql.Connection;
6+
import java.sql.DatabaseMetaData;
7+
import java.sql.ResultSet;
8+
import java.sql.SQLException;
9+
import java.util.HashSet;
10+
import java.util.Set;
11+
12+
public class MsSqlDataProviderAdapter extends JdbcDataProviderAdapter {
13+
14+
@Override
15+
public Set<String> readAllDatabases() throws SQLException {
16+
String databaseName = StringUtils.substringAfterLast(jdbcProperties.getUrl().toLowerCase(), "databasename=");
17+
databaseName = StringUtils.substringBefore(databaseName, ";");
18+
if (StringUtils.isBlank(databaseName)) {
19+
Set<String> catalogs = new HashSet<>();
20+
try (Connection conn = getConn()) {
21+
DatabaseMetaData metadata = conn.getMetaData();
22+
try (ResultSet rs = metadata.getCatalogs()) {
23+
while (rs.next()) {
24+
String catalogName = rs.getString(1);
25+
catalogs.add(catalogName);
26+
}
27+
}
28+
return catalogs;
29+
}
30+
}
31+
return super.readAllDatabases();
32+
}
33+
34+
}
Lines changed: 107 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,129 +1,166 @@
11
ACCESS:
22
db-type: ACCESS
33
name: ACCESS
4-
driver-class:
5-
url-prefix:
4+
driver-class: net.ucanaccess.jdbc.UcanaccessDriver
5+
url-prefix: jdbc:ucanaccess://
66

77
BIG_QUERY:
88
db-type: BIG_QUERY
99
name: BIG_QUERY
10-
driver-class:
11-
url-prefix:
10+
driver-class: com.simba.googlebigquery.jdbc.Driver
11+
url-prefix: jdbc:bigquery://
1212

1313
CALCITE:
1414
db-type: CALCITE
1515
name: CALCITE
16-
driver-class:
17-
url-prefix:
16+
driver-class: org.apache.calcite.avatica.remote.Driver
17+
url-prefix: jdbc:avatica:remote
1818

1919
CLICKHOUSE:
2020
db-type: CLICKHOUSE
2121
name: CLICKHOUSE
22-
driver-class:
23-
url-prefix:
22+
driver-class: com.clickhouse.jdbc.ClickHouseDriver
23+
url-prefix: jdbc:clickhouse://
2424
sql-dialect: datart.data.provider.calcite.dialect.ClickHouseSqlDialectSupport
2525

26-
MSSQL:
27-
db-type: MSSQL
28-
name: MSSQL
29-
sql-dialect: datart.data.provider.calcite.dialect.MsSqlStdOperatorSupport
30-
driver-class: com.microsoft.sqlserver.jdbc.SQLServerDriver
31-
url-prefix: jdbc:sqlserver://
32-
33-
MYSQL:
34-
db-type: MYSQL
35-
name: MYSQL
36-
driver-class: com.mysql.cj.jdbc.Driver
37-
url-prefix: jdbc:mysql://
38-
sql-dialect: datart.data.provider.calcite.dialect.MysqlSqlStdOperatorSupport
39-
40-
ORACLE:
41-
db-type: ORACLE
42-
name: ORACLE
43-
driver-class: oracle.jdbc.driver.OracleDriver
44-
adapter-class: datart.data.provider.jdbc.adapters.OracleDataProviderAdapter
45-
url-prefix: jdbc:oracle:thin:@
46-
sql-dialect: datart.data.provider.calcite.dialect.OracleSqlStdOperatorSupport
47-
4826
DERBY:
4927
db-type: DERBY
5028
name: DERBY
51-
driver-class:
52-
url-prefix:
29+
driver-class: org.apache.derby.client.ClientAutoloadedDriver
30+
url-prefix: jdbc:derby://
5331

5432
DB2:
5533
db-type: DB2
5634
name: DB2
57-
driver-class: com.ibm.db2.jdbc.app.DB2Driver
35+
driver-class: com.ibm.db2.jdbc.jcc.DB2Driver
5836
url-prefix: jdbc:db2://
5937

6038
FIREBIRD:
6139
db-type: FIREBIRD
6240
name: FIREBIRD
63-
driver-class:
64-
url-prefix:
41+
driver-class: org.firebirdsql.jdbc.FBDriver
42+
url-prefix: jdbc:firebirdsql://
43+
6544
H2:
6645
db-type: H2
6746
name: H2
6847
driver-class: org.h2.Driver
6948
url-prefix: jdbc:h2
7049
sql-dialect: datart.data.provider.calcite.dialect.H2Dialect
50+
7151
HIVE:
7252
db-type: HIVE
7353
name: HIVE
74-
driver-class:
75-
url-prefix:
54+
driver-class: org.apache.hive.jdbc.HiveDriver
55+
url-prefix: jdbc:hive2://
56+
57+
HSQLDB:
58+
db-type: HSQLDB
59+
name: HSQLDB
60+
driver-class: org.hsqldb.jdbcDriver
61+
url-prefix: jdbc:hsqldb
62+
63+
INFOBRIGHT:
64+
db-type: INFOBRIGHT
65+
name: INFOBRIGHT
66+
driver-class: com.mysql.cj.jdbc.Driver
67+
url-prefix: jdbc:mysql://
68+
7669
INFORMIX:
7770
db-type: INFORMIX
7871
name: INFORMIX
7972
driver-class: com.informix.jdbc.IfxDriver
8073
url-prefix: jdbc:informix-sqli://
74+
8175
INGRES:
8276
db-type: INGRES
8377
name: INGRES
84-
driver-class:
85-
url-prefix:
78+
driver-class: com.ingres.jdbc.IngresDriver
79+
url-prefix: jdbc:ingres://
80+
81+
INTERBASE:
82+
db-type: INTERBASE
83+
name: INTERBASE
84+
driver-class: interbase.interclient.Driver
85+
url-prefix: jdbc:interbase://
86+
8687
JETHRO:
8788
db-type: JETHRO
8889
name: JETHRO
89-
driver-class:
90-
url-prefix:
90+
driver-class: com.jethrodata.JethroDriver
91+
url-prefix: jdbc:JethroData://
92+
9193
LUCIDDB:
9294
db-type: LUCIDDB
9395
name: LUCIDDB
94-
driver-class:
95-
url-prefix:
96-
INTERBASE:
97-
db-type: INTERBASE
98-
name: INTERBASE
99-
driver-class:
100-
url-prefix:
96+
driver-class: org.luciddb.jdbc.LucidDbClientDriver
97+
url-prefix: jdbc:luciddb
98+
99+
MSSQL:
100+
db-type: MSSQL
101+
name: MSSQL
102+
sql-dialect: datart.data.provider.calcite.dialect.MsSqlStdOperatorSupport
103+
adapter-class: datart.data.provider.jdbc.adapters.MsSqlDataProviderAdapter
104+
driver-class: com.microsoft.sqlserver.jdbc.SQLServerDriver
105+
url-prefix: jdbc:sqlserver://
106+
107+
MYSQL:
108+
db-type: MYSQL
109+
name: MYSQL
110+
driver-class: com.mysql.cj.jdbc.Driver
111+
url-prefix: jdbc:mysql://
112+
sql-dialect: datart.data.provider.calcite.dialect.MysqlSqlStdOperatorSupport
113+
114+
NEOVIEW:
115+
db-type: NEOVIEW
116+
name: NEOVIEW
117+
driver-class: com.hp.t4jdbc.HPT4Driver
118+
url-prefix: jdbc:hpt4jdbc://
119+
120+
NETEZZA:
121+
db-type: NETEZZA
122+
name: NETEZZA
123+
driver-class: org.netezza.Driver
124+
url-prefix: jdbc:netezza://
125+
126+
ORACLE:
127+
db-type: ORACLE
128+
name: ORACLE
129+
driver-class: oracle.jdbc.driver.OracleDriver
130+
adapter-class: datart.data.provider.jdbc.adapters.OracleDataProviderAdapter
131+
url-prefix: jdbc:oracle:thin:@
132+
sql-dialect: datart.data.provider.calcite.dialect.OracleSqlStdOperatorSupport
133+
101134
PHOENIX:
102135
db-type: PHOENIX
103136
name: PHOENIX
104-
driver-class:
105-
url-prefix:
137+
driver-class: org.apache.phoenix.jdbc.PhoenixDriver
138+
url-prefix: jdbc:phoenix
139+
140+
POSTGRESQL:
141+
db-type: POSTGRESQL
142+
name: POSTGRESQL
143+
driver-class: org.postgresql.Driver
144+
url-prefix: jdbc:postgresql://
145+
106146
PRESTO:
107147
db-type: PRESTO
108148
name: PRESTO
109149
driver-class: io.prestosql.jdbc.PrestoDriver
110150
url-prefix: jdbc:presto://
111151

112-
NETEZZA:
113-
db-type: NETEZZA
114-
name: NETEZZA
115-
driver-class:
116-
url-prefix:
117-
INFOBRIGHT:
118-
db-type: INFOBRIGHT
119-
name: INFOBRIGHT
120-
driver-class:
121-
url-prefix:
122-
NEOVIEW:
123-
db-type: NEOVIEW
124-
name: NEOVIEW
125-
driver-class:
126-
url-prefix:
152+
SPARK:
153+
db-type: SPARK
154+
name: SPARK
155+
driver-class: org.apache.hive.jdbc.HiveDriver
156+
url-prefix: jdbc:hive2://
157+
158+
SQLSTREAM:
159+
db-type: SQLSTREAM
160+
name: SQLSTREAM
161+
driver-class: com.sqlstream.jdbc.Driver
162+
url-prefix: jdbc:sqlstream://
163+
127164
SYBASE:
128165
db-type: SYBASE
129166
name: SYBASE
@@ -133,32 +170,13 @@ SYBASE:
133170
TERADATA:
134171
db-type: TERADATA
135172
name: TERADATA
136-
driver-class:
137-
url-prefix:
138-
HSQLDB:
139-
db-type: HSQLDB
140-
name: HSQLDB
141-
driver-class:
142-
url-prefix:
173+
driver-class: com.teradata.jdbc.TeraDriver
174+
url-prefix: jdbc:teradata://
175+
143176
VERTICA:
144177
db-type: VERTICA
145178
name: VERTICA
146-
driver-class:
147-
url-prefix:
148-
SQLSTREAM:
149-
db-type: SQLSTREAM
150-
name: SQLSTREAM
151-
driver-class:
152-
url-prefix:
153-
SPARK:
154-
db-type: SPARK
155-
name: SPARK
156-
driver-class:
157-
url-prefix:
179+
driver-class: com.vertica.jdbc.Driver
180+
url-prefix: jdbc:vertica://
158181

159-
POSTGRESQL:
160-
db-type: POSTGRESQL
161-
name: POSTGRESQL
162-
driver-class: org.postgresql.Driver
163-
url-prefix: jdbc:postgresql://
164182

security/src/main/java/datart/security/base/ResourceType.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,28 @@ public enum ResourceType {
55
SOURCE,
66
VIEW,
77

8-
DATACHART,
9-
DASHBOARD,
8+
DATACHART("shareChart"),
9+
WIDGET,
10+
DASHBOARD("shareDashboard"),
1011
FOLDER,
11-
STORYBOARD,
12+
STORYBOARD("shareStoryPlayer"),
1213
VIZ,
1314

1415
SCHEDULE,
1516

1617
ROLE,
17-
USER,
18+
USER;
1819

20+
private String shareRoute;
21+
22+
ResourceType() {
23+
}
24+
25+
ResourceType(String shareRoute) {
26+
this.shareRoute = shareRoute;
27+
}
28+
29+
public String getShareRoute() {
30+
return shareRoute;
31+
}
1932
}

0 commit comments

Comments
 (0)