From 554fc3840af14cb0fd0de66e2844c6a84a8cfa5d Mon Sep 17 00:00:00 2001 From: taojinlong Date: Mon, 18 Oct 2021 17:45:43 +0800 Subject: [PATCH 1/7] =?UTF-8?q?fix:=20=E8=AF=86=E5=88=AB=20ck=20=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/io/dataease/provider/ck/CKQueryProvider.java | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/src/main/java/io/dataease/provider/ck/CKQueryProvider.java b/backend/src/main/java/io/dataease/provider/ck/CKQueryProvider.java index d56a56afc8..d46df961d1 100644 --- a/backend/src/main/java/io/dataease/provider/ck/CKQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/ck/CKQueryProvider.java @@ -39,6 +39,7 @@ public class CKQueryProvider extends QueryProvider { @Override public Integer transFieldType(String field) { + field = field.toUpperCase(); if (field.indexOf("ARRAY") > -1) { field = "ARRAY"; } From 72292055c6473663798f4714212a07d2427df9c1 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Mon, 18 Oct 2021 18:52:57 +0800 Subject: [PATCH 2/7] =?UTF-8?q?fix:=20=E8=AF=86=E5=88=AB=20ck=20=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/io/dataease/provider/ck/CKQueryProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/main/java/io/dataease/provider/ck/CKQueryProvider.java b/backend/src/main/java/io/dataease/provider/ck/CKQueryProvider.java index d46df961d1..5f2088f5e6 100644 --- a/backend/src/main/java/io/dataease/provider/ck/CKQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/ck/CKQueryProvider.java @@ -727,7 +727,7 @@ public class CKQueryProvider extends QueryProvider { @Override public String convertTableToSql(String tableName, Datasource ds) { - return "SELECT * FROM " + String.format(CKConstants.KEYWORD_TABLE, tableName); + return createSQLPreview("SELECT * FROM " + String.format(CKConstants.KEYWORD_TABLE, tableName), null); } public String transMysqlFilterTerm(String term) { From c1d9756b23158eb65b94e25615b7519a628798a2 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Tue, 19 Oct 2021 16:10:42 +0800 Subject: [PATCH 3/7] =?UTF-8?q?refactor:=E6=96=87=E5=AD=97=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=EF=BC=8Ctab=E7=BB=84=E4=BB=B6=EF=BC=8C=E8=83=8C?= =?UTF-8?q?=E6=99=AF=E9=80=8F=E6=98=8E=E5=86=85=E5=AE=B9=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E4=B8=8D=E9=80=8F=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/Editor/ComponentWrapper.vue | 4 +- frontend/src/components/canvas/utils/style.js | 40 +++++++++++++++++-- 2 files changed, 39 insertions(+), 5 deletions(-) diff --git a/frontend/src/components/canvas/components/Editor/ComponentWrapper.vue b/frontend/src/components/canvas/components/Editor/ComponentWrapper.vue index 6ef9450aaf..9d9de220ca 100644 --- a/frontend/src/components/canvas/components/Editor/ComponentWrapper.vue +++ b/frontend/src/components/canvas/components/Editor/ComponentWrapper.vue @@ -85,7 +85,7 @@ export default { result[attr] = style[attr] + 'px' }) result['rotate'] = style['rotate'] - result['opacity'] = style['opacity'] + // result['opacity'] = style['opacity'] return result // return style @@ -93,6 +93,8 @@ export default { getComponentStyleDefault(style) { return getStyle(style, ['top', 'left', 'width', 'height', 'rotate']) + // console.log('styleInfo', JSON.stringify(styleInfo)) + // return styleInfo // return style }, diff --git a/frontend/src/components/canvas/utils/style.js b/frontend/src/components/canvas/utils/style.js index 810cca2702..5d557f0316 100644 --- a/frontend/src/components/canvas/utils/style.js +++ b/frontend/src/components/canvas/utils/style.js @@ -17,16 +17,22 @@ export function getStyle(style, filter = []) { if (!filter.includes(key)) { if (key !== 'rotate') { result[key] = style[key] - - if (needUnit.includes(key)) { - result[key] += 'px' + if (key) { + if (key === 'backgroundColor') { + result[key] = colorRgb(style[key], style.opacity) + } + if (needUnit.includes(key)) { + result[key] += 'px' + } } } else { result.transform = key + '(' + style[key] + 'deg)' } } }) - + if (result.backgroundColor && (result.opacity || result.opacity === 0)) { + delete result.opacity + } return result } @@ -53,3 +59,29 @@ export function getComponentRotatedStyle(style) { return style } + +export function colorRgb(color, opacity) { + var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/ + var sColor = color.toLowerCase() + if (sColor && reg.test(sColor)) { + if (sColor.length === 4) { + var sColorNew = '#' + for (var i = 1; i < 4; i += 1) { + sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1)) + } + sColor = sColorNew + } + // 处理六位的颜色值 + var sColorChange = [] + for (var i = 1; i < 7; i += 2) { + sColorChange.push(parseInt('0x' + sColor.slice(i, i + 2))) + } + if (opacity || opacity === 0) { + return 'rgba(' + sColorChange.join(',') + ',' + opacity + ')' + } else { + return 'rgba(' + sColorChange.join(',') + ')' + } + } else { + return sColor + } +} From 38c3d8fd7e153107b8247c01315efab875ccec72 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Tue, 19 Oct 2021 18:14:13 +0800 Subject: [PATCH 4/7] =?UTF-8?q?fix:=20=E8=AF=86=E5=88=AB=20es=20=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataease/datasource/provider/EsProvider.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/backend/src/main/java/io/dataease/datasource/provider/EsProvider.java b/backend/src/main/java/io/dataease/datasource/provider/EsProvider.java index 69948926f0..6d8b4f0150 100644 --- a/backend/src/main/java/io/dataease/datasource/provider/EsProvider.java +++ b/backend/src/main/java/io/dataease/datasource/provider/EsProvider.java @@ -231,17 +231,15 @@ public class EsProvider extends DatasourceProvider { throw new Exception(JSONObject.parseObject(response).getJSONObject("error").getString("reason")); } String version = JSONObject.parseObject(response).getJSONObject("version").getString("number"); + String[] versionList = version.split("\\."); + if(Integer.valueOf(versionList[0]) < 7 && Integer.valueOf(versionList[1]) < 3){ + throw new Exception(Translator.get("i18n_es_limit")); + } - if(Integer.valueOf(version.split("\\.")[0]) < 6 ){ - throw new Exception(Translator.get("i18n_es_limit")); - } - if(Integer.valueOf(version.split("\\.")[1]) < 3 ){ - throw new Exception(Translator.get("i18n_es_limit")); - } - if(Integer.valueOf(version.split("\\.")[0]) == 6 ) { + if(Integer.valueOf(versionList[0]) == 6 ) { esConfiguration.setUri("_xpack/sql"); } - if(Integer.valueOf(version.split("\\.")[0]) == 7 ) { + if(Integer.valueOf(versionList[0]) == 7 ) { esConfiguration.setUri("_sql"); } datasourceRequest.getDatasource().setConfiguration(new Gson().toJson(esConfiguration)); From a59712e6a02634e6f1bb7751c900459dd87537b3 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 20 Oct 2021 17:44:16 +0800 Subject: [PATCH 5/7] =?UTF-8?q?fix:=20pg=20=E6=97=B6=E9=97=B4=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E5=8C=96=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/provider/pg/PgConstants.java | 4 ++-- .../dataease/provider/pg/PgQueryProvider.java | 18 +++++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/backend/src/main/java/io/dataease/provider/pg/PgConstants.java b/backend/src/main/java/io/dataease/provider/pg/PgConstants.java index 1fcf7f0d8e..760717d5e2 100644 --- a/backend/src/main/java/io/dataease/provider/pg/PgConstants.java +++ b/backend/src/main/java/io/dataease/provider/pg/PgConstants.java @@ -15,7 +15,7 @@ public class PgConstants extends SQLConstants { public static final String UNIX_TIMESTAMP = "floor(extract(epoch from(( %s - timestamp '1970-01-01 00:00:00')*1000))) "; - public static final String DATE_FORMAT = "to_char(%s, %s)"; + public static final String DATE_FORMAT = "to_char(%s, '%s')"; public static final String FROM_UNIXTIME = "to_timestamp(%s)"; @@ -23,7 +23,7 @@ public class PgConstants extends SQLConstants { public static final String CAST = "CAST(%s AS %s)"; - public static final String DEFAULT_DATE_FORMAT = "'YYYY-MM-DD HH24:MI:SS'"; + public static final String DEFAULT_DATE_FORMAT = "YYYY-MM-DD HH24:MI:SS"; public static final String DEFAULT_INT_FORMAT = "numeric(18,0)"; diff --git a/backend/src/main/java/io/dataease/provider/pg/PgQueryProvider.java b/backend/src/main/java/io/dataease/provider/pg/PgQueryProvider.java index 307635698b..e99f5b666d 100644 --- a/backend/src/main/java/io/dataease/provider/pg/PgQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/pg/PgQueryProvider.java @@ -908,24 +908,24 @@ public class PgQueryProvider extends QueryProvider { } if (StringUtils.isEmpty(dateStyle)) { - return "'YYYY-MM-DD HH24:MI:SS'"; + return "YYYY-MM-DD HH24:MI:SS"; } switch (dateStyle) { case "y": - return "'YYYY'"; + return "YYYY"; case "y_M": - return "'YYYY" + split + "MM'"; + return "YYYY" + split + "MM"; case "y_M_d": - return "'YYYY" + split + "MM" + split + "DD'"; + return "YYYY" + split + "MM" + split + "DD"; case "H_m_s": - return "'HH24:MI:SS'"; + return "HH24:MI:SS"; case "y_M_d_H_m": - return "'YYYY" + split + "MM" + split + "DD" + " HH24:MI'"; + return "YYYY" + split + "MM" + split + "DD" + " HH24:MI"; case "y_M_d_H_m_s": - return "'YYYY" + split + "MM" + split + "DD" + " HH24:MI:SS'"; + return "YYYY" + split + "MM" + split + "DD" + " HH24:MI:SS"; default: - return "'YYYY-MM-DD HH24:MI:SS'"; + return "YYYY-MM-DD HH24:MI:SS"; } } @@ -944,7 +944,7 @@ public class PgQueryProvider extends QueryProvider { if (x.getDeType() == DeTypeConstants.DE_TIME) { String format = transDateFormat(x.getDateStyle(), x.getDatePattern()); if (x.getDeExtractType() == DeTypeConstants.DE_STRING) { - fieldName = String.format(PgConstants.DATE_FORMAT, originField, format); + fieldName = String.format(PgConstants.DATE_FORMAT, String.format(PgConstants.TO_DATE, originField, "YYYY-MM-DD HH24:MI:SS"), format); } else { String cast = String.format(PgConstants.CAST, originField, "bigint"); String from_unixtime = String.format(PgConstants.FROM_UNIXTIME, cast); From e347ef31ff83c3f347aa377fd45b48b129a5cda5 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Thu, 21 Oct 2021 12:37:17 +0800 Subject: [PATCH 6/7] =?UTF-8?q?fix:=20es=20=E6=94=AF=E6=8C=81https?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/utils/HttpClientUtil.java | 28 ++++++++++++------- .../datasource/provider/EsProvider.java | 2 ++ 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/backend/src/main/java/io/dataease/commons/utils/HttpClientUtil.java b/backend/src/main/java/io/dataease/commons/utils/HttpClientUtil.java index ac6e4552fc..8454df061b 100755 --- a/backend/src/main/java/io/dataease/commons/utils/HttpClientUtil.java +++ b/backend/src/main/java/io/dataease/commons/utils/HttpClientUtil.java @@ -7,22 +7,26 @@ import org.apache.http.client.entity.EntityBuilder; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; +import org.apache.http.config.Registry; +import org.apache.http.config.RegistryBuilder; +import org.apache.http.conn.HttpClientConnectionManager; +import org.apache.http.conn.socket.ConnectionSocketFactory; +import org.apache.http.conn.socket.PlainConnectionSocketFactory; import org.apache.http.conn.ssl.NoopHostnameVerifier; -import org.apache.http.conn.ssl.TrustSelfSignedStrategy; -import org.apache.http.conn.ssl.TrustStrategy; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.entity.ContentType; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.impl.client.HttpClients; +import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; -import org.apache.http.ssl.SSLContexts; +import org.apache.http.ssl.SSLContextBuilder; import org.apache.http.util.EntityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.net.ssl.HostnameVerifier; -import javax.net.ssl.SSLContext; +import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -42,11 +46,15 @@ public class HttpClientUtil { private static CloseableHttpClient buildHttpClient(String url) { try { if (url.startsWith(HTTPS)) { - // https 增加信任设置 - TrustStrategy trustStrategy = new TrustSelfSignedStrategy(); - SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(trustStrategy).build(); - HostnameVerifier hostnameVerifier = NoopHostnameVerifier.INSTANCE; - return HttpClients.custom().setSSLContext(sslContext).setSSLHostnameVerifier(hostnameVerifier).build(); + SSLContextBuilder builder = new SSLContextBuilder(); + builder.loadTrustMaterial(null, (X509Certificate[] x509Certificates, String s) -> true); + SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(builder.build(), new String[]{"TLSv1.1", "TLSv1.2", "SSLv3"}, null, NoopHostnameVerifier.INSTANCE); + Registry registry = RegistryBuilder.create() + .register("http", new PlainConnectionSocketFactory()) + .register("https", socketFactory).build(); + HttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(registry); + CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connManager).build(); + return httpClient; } else { // http return HttpClientBuilder.create().build(); diff --git a/backend/src/main/java/io/dataease/datasource/provider/EsProvider.java b/backend/src/main/java/io/dataease/datasource/provider/EsProvider.java index 6d8b4f0150..017e6eee20 100644 --- a/backend/src/main/java/io/dataease/datasource/provider/EsProvider.java +++ b/backend/src/main/java/io/dataease/datasource/provider/EsProvider.java @@ -20,6 +20,7 @@ import org.springframework.stereotype.Service; import java.nio.charset.StandardCharsets; import java.util.*; +import java.util.stream.Collectors; @Service("es") public class EsProvider extends DatasourceProvider { @@ -181,6 +182,7 @@ public class EsProvider extends DatasourceProvider { try { String response = exexQuery(datasourceRequest, "show tables", "?format=json"); tables = fetchTables(response); + tables = tables.stream().filter(table -> !table.startsWith(".")).collect(Collectors.toList()); } catch (Exception e) { DataEaseException.throwException(e); } From ce9127be33243382795529d9ec1d9c011565e562 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Sun, 31 Oct 2021 02:26:19 +0800 Subject: [PATCH 7/7] =?UTF-8?q?fix:=20=E5=85=AC=E5=85=B1=E9=93=BE=E6=8E=A5?= =?UTF-8?q?=E5=BC=B9=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/dataease/auth/service/impl/ShiroServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java b/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java index aecb307469..66ec3351ff 100644 --- a/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java +++ b/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java @@ -45,6 +45,8 @@ public class ShiroServiceImpl implements ShiroService { //验证链接 filterChainDefinitionMap.put("/api/link/validate**", ANON); filterChainDefinitionMap.put("/api/map/areaEntitys/**", ANON); + filterChainDefinitionMap.put("/dataset/field/fieldValues/**", ANON); + //未读消息数量 filterChainDefinitionMap.put("/api/sys_msg/unReadCount", ANON);