From 82d0bf5ec3e196b1b171b730bc0a27cb121c12b4 Mon Sep 17 00:00:00 2001
From: Raod <1130305001@qq.com>
Date: Wed, 30 Jun 2021 16:20:40 +0800
Subject: [PATCH 1/3] DataSource
---
doc/docs/guide/README.md | 2 +-
doc/docs/guide/datasource.md | 8 +++++++-
doc/docs/picture/{ => datasource}/img.png | Bin
doc/docs/picture/datasource/kudu-impala-lib.png | Bin 0 -> 36792 bytes
4 files changed, 8 insertions(+), 2 deletions(-)
rename doc/docs/picture/{ => datasource}/img.png (100%)
create mode 100644 doc/docs/picture/datasource/kudu-impala-lib.png
diff --git a/doc/docs/guide/README.md b/doc/docs/guide/README.md
index 3422216f..9310ab2c 100644
--- a/doc/docs/guide/README.md
+++ b/doc/docs/guide/README.md
@@ -9,7 +9,7 @@
内置的基础功能包括数据源,数据集,报表管理,项目部分截图如下。
##数据流程图
-
+
## 打包目录
```
diff --git a/doc/docs/guide/datasource.md b/doc/docs/guide/datasource.md
index 1fccaef1..ed3a89ac 100644
--- a/doc/docs/guide/datasource.md
+++ b/doc/docs/guide/datasource.md
@@ -16,10 +16,16 @@
- 只有测试通过的数据源才可以保存
-
+
+## 扩展
+- 以kudu impala 为例,在lib文件夹下加入kudu impala相关的JDBC连接相关的包,如图
+- 在数据库中新增数据源类型,参考数据源类型(上方)
+
+
+
diff --git a/doc/docs/picture/img.png b/doc/docs/picture/datasource/img.png
similarity index 100%
rename from doc/docs/picture/img.png
rename to doc/docs/picture/datasource/img.png
diff --git a/doc/docs/picture/datasource/kudu-impala-lib.png b/doc/docs/picture/datasource/kudu-impala-lib.png
new file mode 100644
index 0000000000000000000000000000000000000000..21a8e0ed967f293d52d0569449a209a53054e439
GIT binary patch
literal 36792
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
literal 0
HcmV?d00001
From 5c28dcddb1752474eda37585f7306729e6ba12ae Mon Sep 17 00:00:00 2001
From: Raod <1130305001@qq.com>
Date: Wed, 30 Jun 2021 16:55:02 +0800
Subject: [PATCH 2/3] guest
---
.../gaea/business/filter/TokenFilter.java | 20 +++++++++++++++++++
report-ui/config/dev.env.js | 4 ++--
2 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/filter/TokenFilter.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/filter/TokenFilter.java
index dd9e186b..1656bd23 100644
--- a/report-core/src/main/java/com/anjiplus/template/gaea/business/filter/TokenFilter.java
+++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/filter/TokenFilter.java
@@ -57,6 +57,26 @@ public class TokenFilter implements Filter {
//延长有效期
cacheHelper.stringSetExpire(username, authorization, 3600);
+
+
+ //在线体验版本
+ if (username.equals("guest")
+ && !uri.endsWith("/dataSet/testTransform")
+ && !uri.endsWith("/reportDashboard/getData")
+ && !uri.startsWith("/dict")
+ && !uri.startsWith("/dict")
+ ) {
+ //不允许删除
+ String method = request.getMethod();
+ if ("post".equalsIgnoreCase(method)
+ || "put".equalsIgnoreCase(method)
+ || "delete".equalsIgnoreCase(method)
+ ) {
+ ResponseBean responseBean = ResponseBean.builder().code("50001").message("在线体验版本,不允许此操作。请自行下载本地运行").build();
+ response.getWriter().print(JSONObject.toJSONString(responseBean));
+ return;
+ }
+ }
}
//执行
diff --git a/report-ui/config/dev.env.js b/report-ui/config/dev.env.js
index f50fc84e..ee3d90dc 100644
--- a/report-ui/config/dev.env.js
+++ b/report-ui/config/dev.env.js
@@ -4,6 +4,6 @@ const prodEnv = require('./prod.env')
module.exports = merge(prodEnv, {
NODE_ENV: '"development"',
- // BASE_API: '"http://127.0.0.1:9095"'
- BASE_API: '"http://10.108.26.197:9095"'
+ BASE_API: '"http://127.0.0.1:9095"'
+ // BASE_API: '"http://10.108.26.197:9095"'
})
From aa3c906a1885530868f0de4f6f90c65351d7cebf Mon Sep 17 00:00:00 2001
From: Raod <1130305001@qq.com>
Date: Wed, 30 Jun 2021 16:59:11 +0800
Subject: [PATCH 3/3] report
---
.../dashboard/service/impl/ReportDashboardServiceImpl.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dashboard/service/impl/ReportDashboardServiceImpl.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dashboard/service/impl/ReportDashboardServiceImpl.java
index de232e15..6fef3da1 100644
--- a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dashboard/service/impl/ReportDashboardServiceImpl.java
+++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dashboard/service/impl/ReportDashboardServiceImpl.java
@@ -67,7 +67,9 @@ public class ReportDashboardServiceImpl implements ReportDashboardService, Initi
ReportDashboardObjectDto result = new ReportDashboardObjectDto();
ReportDashboardDto reportDashboardDto = new ReportDashboardDto();
ReportDashboard reportDashboard = this.selectOne("report_code", reportCode);
- GaeaAssert.notNull(reportDashboard, ResponseCode.RULE_CONTENT_NOT_EXIST, "reportDashboard");
+ if (null == reportDashboard) {
+ return new ReportDashboardObjectDto();
+ }
GaeaBeanUtils.copyAndFormatter(reportDashboard, reportDashboardDto);
List list = reportDashboardWidgetService.list(