From 77e6ff872d2e34f069d5ecc36ad5eab57715adad Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Tue, 3 Jun 2025 14:22:49 +0800 Subject: [PATCH 1/6] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20neatlogic=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=BB=93=E5=BA=93=E6=94=AF=E6=8C=81=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=96=B9=E6=95=B0=E6=8D=AE=E5=BA=93=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1432467032998096]neatlogic数据仓库支持配置第三方数据库获取数据 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1432467032998096 --- .../api/datawarehouse/DeleteDataBaseApi.java | 60 +++++++++++++++ .../api/datawarehouse/GetDataBaseApi.java | 68 ++++++++++++++++ .../api/datawarehouse/SavaDataBaseApi.java | 76 ++++++++++++++++++ .../api/datawarehouse/SaveDataSourceApi.java | 4 +- .../api/datawarehouse/SearchDataBaseApi.java | 77 +++++++++++++++++++ 5 files changed, 284 insertions(+), 1 deletion(-) create mode 100644 src/main/java/neatlogic/module/tenant/api/datawarehouse/DeleteDataBaseApi.java create mode 100644 src/main/java/neatlogic/module/tenant/api/datawarehouse/GetDataBaseApi.java create mode 100644 src/main/java/neatlogic/module/tenant/api/datawarehouse/SavaDataBaseApi.java create mode 100644 src/main/java/neatlogic/module/tenant/api/datawarehouse/SearchDataBaseApi.java diff --git a/src/main/java/neatlogic/module/tenant/api/datawarehouse/DeleteDataBaseApi.java b/src/main/java/neatlogic/module/tenant/api/datawarehouse/DeleteDataBaseApi.java new file mode 100644 index 00000000..af11c0f5 --- /dev/null +++ b/src/main/java/neatlogic/module/tenant/api/datawarehouse/DeleteDataBaseApi.java @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2025 深圳极向量科技有限公司 All Rights Reserved. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package neatlogic.module.tenant.api.datawarehouse; + +import com.alibaba.fastjson.JSONObject; +import neatlogic.framework.auth.core.AuthAction; +import neatlogic.framework.auth.label.DATA_WAREHOUSE_MODIFY; +import neatlogic.framework.common.constvalue.ApiParamType; +import neatlogic.framework.datawarehouse.dao.mapper.DataBaseMapper; +import neatlogic.framework.restful.annotation.*; +import neatlogic.framework.restful.constvalue.OperationTypeEnum; +import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +@AuthAction(action = DATA_WAREHOUSE_MODIFY.class) +@OperationType(type = OperationTypeEnum.OPERATE) +public class DeleteDataBaseApi extends PrivateApiComponentBase { + + @Resource + private DataBaseMapper dataBaseMapper; + + @Override + public String getName() { + return "nmtad.deletedatabaseapi.getname"; + } + + @Input({ + @Param(name = "id", type = ApiParamType.LONG, isRequired = true, desc = "common.id") + }) + @Output({}) + @Description(desc = "nmtad.deletedatabaseapi.getname") + @Override + public Object myDoService(JSONObject paramObj) throws Exception { + Long id = paramObj.getLong("id"); + return dataBaseMapper.deleteDataBaseById(id); + } + + @Override + public String getToken() { + return "database/delete"; + } +} diff --git a/src/main/java/neatlogic/module/tenant/api/datawarehouse/GetDataBaseApi.java b/src/main/java/neatlogic/module/tenant/api/datawarehouse/GetDataBaseApi.java new file mode 100644 index 00000000..0ac1671d --- /dev/null +++ b/src/main/java/neatlogic/module/tenant/api/datawarehouse/GetDataBaseApi.java @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2025 深圳极向量科技有限公司 All Rights Reserved. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package neatlogic.module.tenant.api.datawarehouse; + +import com.alibaba.fastjson.JSONObject; +import neatlogic.framework.auth.core.AuthAction; +import neatlogic.framework.auth.label.DATA_WAREHOUSE_MODIFY; +import neatlogic.framework.common.constvalue.ApiParamType; +import neatlogic.framework.datawarehouse.dao.mapper.DataBaseMapper; +import neatlogic.framework.datawarehouse.dto.DatabaseVo; +import neatlogic.framework.datawarehouse.exceptions.DatabaseNotFoundException; +import neatlogic.framework.restful.annotation.*; +import neatlogic.framework.restful.constvalue.OperationTypeEnum; +import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +@AuthAction(action = DATA_WAREHOUSE_MODIFY.class) +@OperationType(type = OperationTypeEnum.OPERATE) +public class GetDataBaseApi extends PrivateApiComponentBase { + + @Resource + private DataBaseMapper dataBaseMapper; + + @Override + public String getName() { + return "nmtad.getdatabaseapi.getname"; + } + + @Input({ + @Param(name = "id", type = ApiParamType.LONG, isRequired = true, desc = "common.id") + }) + @Output({ + @Param(explode = DatabaseVo.class, desc = "common.tbodylist") + }) + @Description(desc = "nmtad.getdatabaseapi.getname") + @Override + public Object myDoService(JSONObject paramObj) throws Exception { + Long id = paramObj.getLong("id"); + DatabaseVo databaseVo = dataBaseMapper.getDataBaseById(id); + if (databaseVo == null) { + throw new DatabaseNotFoundException(id); + } + return databaseVo; + } + + @Override + public String getToken() { + return "database/get"; + } +} diff --git a/src/main/java/neatlogic/module/tenant/api/datawarehouse/SavaDataBaseApi.java b/src/main/java/neatlogic/module/tenant/api/datawarehouse/SavaDataBaseApi.java new file mode 100644 index 00000000..757e8828 --- /dev/null +++ b/src/main/java/neatlogic/module/tenant/api/datawarehouse/SavaDataBaseApi.java @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2025 深圳极向量科技有限公司 All Rights Reserved. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package neatlogic.module.tenant.api.datawarehouse; + +import com.alibaba.fastjson.JSONObject; +import neatlogic.framework.auth.core.AuthAction; +import neatlogic.framework.auth.label.DATA_WAREHOUSE_MODIFY; +import neatlogic.framework.common.constvalue.ApiParamType; +import neatlogic.framework.datawarehouse.dao.mapper.DataBaseMapper; +import neatlogic.framework.datawarehouse.dto.DatabaseVo; +import neatlogic.framework.restful.annotation.*; +import neatlogic.framework.restful.constvalue.OperationTypeEnum; +import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; +import neatlogic.framework.util.SnowflakeUtil; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; + +@Service +@AuthAction(action = DATA_WAREHOUSE_MODIFY.class) +@OperationType(type = OperationTypeEnum.OPERATE) +@Transactional +public class SavaDataBaseApi extends PrivateApiComponentBase { + + @Resource + private DataBaseMapper dataBaseMapper; + + @Override + public String getName() { + return "nmtad.savadatabaseapi.getname"; + } + + @Input({ + @Param(name = "id", type = ApiParamType.LONG, desc = "common.id"), + @Param(name = "name", type = ApiParamType.STRING, isRequired = true, desc = "common.name"), + @Param(name = "type", type = ApiParamType.STRING, isRequired = true, desc = "common.type"), + @Param(name = "config", type = ApiParamType.JSONOBJECT, isRequired = true, desc = "common.config"), + }) + @Output({ + @Param(name = "id", type = ApiParamType.LONG, isRequired = true, desc = "common.id") + }) + @Description(desc = "nmtad.savadatabaseapi.getname") + @Override + public Object myDoService(JSONObject paramObj) throws Exception { + DatabaseVo dataBaseVo = paramObj.toJavaObject(DatabaseVo.class); + Long id = paramObj.getLong("id"); + if (id == null) { + dataBaseVo.setId(SnowflakeUtil.uniqueLong()); + } + dataBaseMapper.insertDataBase(dataBaseVo); + JSONObject resultObj = new JSONObject(); + resultObj.put("id", dataBaseVo.getId()); + return resultObj; + } + + @Override + public String getToken() { + return "database/save"; + } +} diff --git a/src/main/java/neatlogic/module/tenant/api/datawarehouse/SaveDataSourceApi.java b/src/main/java/neatlogic/module/tenant/api/datawarehouse/SaveDataSourceApi.java index c982c946..07a4a234 100644 --- a/src/main/java/neatlogic/module/tenant/api/datawarehouse/SaveDataSourceApi.java +++ b/src/main/java/neatlogic/module/tenant/api/datawarehouse/SaveDataSourceApi.java @@ -75,7 +75,9 @@ public class SaveDataSourceApi extends PrivateApiComponentBase { @Param(name = "expireCount", type = ApiParamType.INTEGER, desc = "有效期时间"), @Param(name = "expireUnit", type = ApiParamType.ENUM, rule = "minute,hour,day", desc = "有效期单位"), @Param(name = "expireUnit", type = ApiParamType.ENUM, rule = "minute,hour,day", desc = "有效期单位"), - @Param(name = "dbType", type = ApiParamType.STRING, isRequired = true, desc = "数据库类型")}) + @Param(name = "dbType", type = ApiParamType.STRING, isRequired = true, desc = "数据库类型"), + @Param(name = "databaseId", type = ApiParamType.LONG, desc = "数据源id") + }) @Description(desc = "保存数据仓库数据源接口") @Override public Object myDoService(JSONObject jsonObj) throws Exception { diff --git a/src/main/java/neatlogic/module/tenant/api/datawarehouse/SearchDataBaseApi.java b/src/main/java/neatlogic/module/tenant/api/datawarehouse/SearchDataBaseApi.java new file mode 100644 index 00000000..40941331 --- /dev/null +++ b/src/main/java/neatlogic/module/tenant/api/datawarehouse/SearchDataBaseApi.java @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2025 深圳极向量科技有限公司 All Rights Reserved. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package neatlogic.module.tenant.api.datawarehouse; + +import com.alibaba.fastjson.JSONObject; +import neatlogic.framework.auth.core.AuthAction; +import neatlogic.framework.auth.label.DATA_WAREHOUSE_MODIFY; +import neatlogic.framework.common.constvalue.ApiParamType; +import neatlogic.framework.common.dto.BasePageVo; +import neatlogic.framework.datawarehouse.dao.mapper.DataBaseMapper; +import neatlogic.framework.datawarehouse.dto.DatabaseVo; +import neatlogic.framework.restful.annotation.*; +import neatlogic.framework.restful.constvalue.OperationTypeEnum; +import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; +import neatlogic.framework.util.TableResultUtil; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +@Service +@AuthAction(action = DATA_WAREHOUSE_MODIFY.class) +@OperationType(type = OperationTypeEnum.OPERATE) +public class SearchDataBaseApi extends PrivateApiComponentBase { + + @Resource + private DataBaseMapper dataBaseMapper; + + @Override + public String getName() { + return "nmtad.searchdatabaseapi.getname"; + } + + @Input({ + @Param(name = "keyword", type = ApiParamType.STRING, desc = "common.keyword"), + @Param(name = "type", type = ApiParamType.STRING, desc = "common.type"), + @Param(name = "currentPage", type = ApiParamType.INTEGER, desc = "common.currentpage"), + @Param(name = "pageSize", type = ApiParamType.INTEGER, desc = "common.pagesize"), + }) + @Output({ + @Param(name = "tbodyList", explode = DatabaseVo[].class, desc = "common.tbodylist"), + @Param(explode = BasePageVo.class) + }) + @Description(desc = "nmtad.searchdatabaseapi.getname") + @Override + public Object myDoService(JSONObject paramObj) throws Exception { + DatabaseVo searchVo = paramObj.toJavaObject(DatabaseVo.class); + List tbodyList = new ArrayList<>(); + int rowNum = dataBaseMapper.getDataBaseCount(searchVo); + if (rowNum > 0) { + searchVo.setRowNum(rowNum); + tbodyList = dataBaseMapper.getDataBaseList(searchVo); + } + return TableResultUtil.getResult(tbodyList, searchVo); + } + + @Override + public String getToken() { + return "database/search"; + } +} -- Gitee From c97c3f8c23330cc273f3b2d3008717d5bdad0781 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Tue, 3 Jun 2025 16:08:20 +0800 Subject: [PATCH 2/6] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20neatlogic=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=BB=93=E5=BA=93=E6=94=AF=E6=8C=81=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=96=B9=E6=95=B0=E6=8D=AE=E5=BA=93=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1432467032998096]neatlogic数据仓库支持配置第三方数据库获取数据 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1432467032998096 --- .../module/tenant/api/datawarehouse/SaveDataSourceApi.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/neatlogic/module/tenant/api/datawarehouse/SaveDataSourceApi.java b/src/main/java/neatlogic/module/tenant/api/datawarehouse/SaveDataSourceApi.java index 07a4a234..24a3bf08 100644 --- a/src/main/java/neatlogic/module/tenant/api/datawarehouse/SaveDataSourceApi.java +++ b/src/main/java/neatlogic/module/tenant/api/datawarehouse/SaveDataSourceApi.java @@ -76,7 +76,7 @@ public class SaveDataSourceApi extends PrivateApiComponentBase { @Param(name = "expireUnit", type = ApiParamType.ENUM, rule = "minute,hour,day", desc = "有效期单位"), @Param(name = "expireUnit", type = ApiParamType.ENUM, rule = "minute,hour,day", desc = "有效期单位"), @Param(name = "dbType", type = ApiParamType.STRING, isRequired = true, desc = "数据库类型"), - @Param(name = "databaseId", type = ApiParamType.LONG, desc = "数据源id") + @Param(name = "databaseId", type = ApiParamType.LONG, desc = "数据库Id") }) @Description(desc = "保存数据仓库数据源接口") @Override -- Gitee From 7811c0c82f04fafc8eba29552c07b8e5a048bdb4 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Tue, 3 Jun 2025 16:10:39 +0800 Subject: [PATCH 3/6] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20neatlogic=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=BB=93=E5=BA=93=E6=94=AF=E6=8C=81=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=96=B9=E6=95=B0=E6=8D=AE=E5=BA=93=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1432467032998096]neatlogic数据仓库支持配置第三方数据库获取数据 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1432467032998096 --- .../api/{datawarehouse => database}/DeleteDataBaseApi.java | 2 +- .../tenant/api/{datawarehouse => database}/GetDataBaseApi.java | 2 +- .../tenant/api/{datawarehouse => database}/SavaDataBaseApi.java | 2 +- .../api/{datawarehouse => database}/SearchDataBaseApi.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) rename src/main/java/neatlogic/module/tenant/api/{datawarehouse => database}/DeleteDataBaseApi.java (97%) rename src/main/java/neatlogic/module/tenant/api/{datawarehouse => database}/GetDataBaseApi.java (97%) rename src/main/java/neatlogic/module/tenant/api/{datawarehouse => database}/SavaDataBaseApi.java (98%) rename src/main/java/neatlogic/module/tenant/api/{datawarehouse => database}/SearchDataBaseApi.java (98%) diff --git a/src/main/java/neatlogic/module/tenant/api/datawarehouse/DeleteDataBaseApi.java b/src/main/java/neatlogic/module/tenant/api/database/DeleteDataBaseApi.java similarity index 97% rename from src/main/java/neatlogic/module/tenant/api/datawarehouse/DeleteDataBaseApi.java rename to src/main/java/neatlogic/module/tenant/api/database/DeleteDataBaseApi.java index af11c0f5..9bf3fa2d 100644 --- a/src/main/java/neatlogic/module/tenant/api/datawarehouse/DeleteDataBaseApi.java +++ b/src/main/java/neatlogic/module/tenant/api/database/DeleteDataBaseApi.java @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package neatlogic.module.tenant.api.datawarehouse; +package neatlogic.module.tenant.api.database; import com.alibaba.fastjson.JSONObject; import neatlogic.framework.auth.core.AuthAction; diff --git a/src/main/java/neatlogic/module/tenant/api/datawarehouse/GetDataBaseApi.java b/src/main/java/neatlogic/module/tenant/api/database/GetDataBaseApi.java similarity index 97% rename from src/main/java/neatlogic/module/tenant/api/datawarehouse/GetDataBaseApi.java rename to src/main/java/neatlogic/module/tenant/api/database/GetDataBaseApi.java index 0ac1671d..7afeed0a 100644 --- a/src/main/java/neatlogic/module/tenant/api/datawarehouse/GetDataBaseApi.java +++ b/src/main/java/neatlogic/module/tenant/api/database/GetDataBaseApi.java @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package neatlogic.module.tenant.api.datawarehouse; +package neatlogic.module.tenant.api.database; import com.alibaba.fastjson.JSONObject; import neatlogic.framework.auth.core.AuthAction; diff --git a/src/main/java/neatlogic/module/tenant/api/datawarehouse/SavaDataBaseApi.java b/src/main/java/neatlogic/module/tenant/api/database/SavaDataBaseApi.java similarity index 98% rename from src/main/java/neatlogic/module/tenant/api/datawarehouse/SavaDataBaseApi.java rename to src/main/java/neatlogic/module/tenant/api/database/SavaDataBaseApi.java index 757e8828..d6a346ec 100644 --- a/src/main/java/neatlogic/module/tenant/api/datawarehouse/SavaDataBaseApi.java +++ b/src/main/java/neatlogic/module/tenant/api/database/SavaDataBaseApi.java @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package neatlogic.module.tenant.api.datawarehouse; +package neatlogic.module.tenant.api.database; import com.alibaba.fastjson.JSONObject; import neatlogic.framework.auth.core.AuthAction; diff --git a/src/main/java/neatlogic/module/tenant/api/datawarehouse/SearchDataBaseApi.java b/src/main/java/neatlogic/module/tenant/api/database/SearchDataBaseApi.java similarity index 98% rename from src/main/java/neatlogic/module/tenant/api/datawarehouse/SearchDataBaseApi.java rename to src/main/java/neatlogic/module/tenant/api/database/SearchDataBaseApi.java index 40941331..2962079b 100644 --- a/src/main/java/neatlogic/module/tenant/api/datawarehouse/SearchDataBaseApi.java +++ b/src/main/java/neatlogic/module/tenant/api/database/SearchDataBaseApi.java @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package neatlogic.module.tenant.api.datawarehouse; +package neatlogic.module.tenant.api.database; import com.alibaba.fastjson.JSONObject; import neatlogic.framework.auth.core.AuthAction; -- Gitee From 251191fa4990948bad3191b7f53312734c16b533 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Tue, 3 Jun 2025 16:36:04 +0800 Subject: [PATCH 4/6] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20neatlogic=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=BB=93=E5=BA=93=E6=94=AF=E6=8C=81=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=96=B9=E6=95=B0=E6=8D=AE=E5=BA=93=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1432467032998096]neatlogic数据仓库支持配置第三方数据库获取数据 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1432467032998096 --- .../api/database/DeleteDataBaseApi.java | 6 +- .../tenant/api/database/GetDataBaseApi.java | 6 +- .../tenant/api/database/SavaDataBaseApi.java | 6 +- .../api/database/SearchDataBaseApi.java | 8 +- .../tenant/api/database/TestDataBaseApi.java | 73 +++++++++++++++++++ 5 files changed, 86 insertions(+), 13 deletions(-) create mode 100644 src/main/java/neatlogic/module/tenant/api/database/TestDataBaseApi.java diff --git a/src/main/java/neatlogic/module/tenant/api/database/DeleteDataBaseApi.java b/src/main/java/neatlogic/module/tenant/api/database/DeleteDataBaseApi.java index 9bf3fa2d..d65e666e 100644 --- a/src/main/java/neatlogic/module/tenant/api/database/DeleteDataBaseApi.java +++ b/src/main/java/neatlogic/module/tenant/api/database/DeleteDataBaseApi.java @@ -21,7 +21,7 @@ import com.alibaba.fastjson.JSONObject; import neatlogic.framework.auth.core.AuthAction; import neatlogic.framework.auth.label.DATA_WAREHOUSE_MODIFY; import neatlogic.framework.common.constvalue.ApiParamType; -import neatlogic.framework.datawarehouse.dao.mapper.DataBaseMapper; +import neatlogic.framework.datawarehouse.dao.mapper.DatabaseMapper; import neatlogic.framework.restful.annotation.*; import neatlogic.framework.restful.constvalue.OperationTypeEnum; import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; @@ -35,7 +35,7 @@ import javax.annotation.Resource; public class DeleteDataBaseApi extends PrivateApiComponentBase { @Resource - private DataBaseMapper dataBaseMapper; + private DatabaseMapper databaseMapper; @Override public String getName() { @@ -50,7 +50,7 @@ public class DeleteDataBaseApi extends PrivateApiComponentBase { @Override public Object myDoService(JSONObject paramObj) throws Exception { Long id = paramObj.getLong("id"); - return dataBaseMapper.deleteDataBaseById(id); + return databaseMapper.deleteDataBaseById(id); } @Override diff --git a/src/main/java/neatlogic/module/tenant/api/database/GetDataBaseApi.java b/src/main/java/neatlogic/module/tenant/api/database/GetDataBaseApi.java index 7afeed0a..bac8dcf2 100644 --- a/src/main/java/neatlogic/module/tenant/api/database/GetDataBaseApi.java +++ b/src/main/java/neatlogic/module/tenant/api/database/GetDataBaseApi.java @@ -21,7 +21,7 @@ import com.alibaba.fastjson.JSONObject; import neatlogic.framework.auth.core.AuthAction; import neatlogic.framework.auth.label.DATA_WAREHOUSE_MODIFY; import neatlogic.framework.common.constvalue.ApiParamType; -import neatlogic.framework.datawarehouse.dao.mapper.DataBaseMapper; +import neatlogic.framework.datawarehouse.dao.mapper.DatabaseMapper; import neatlogic.framework.datawarehouse.dto.DatabaseVo; import neatlogic.framework.datawarehouse.exceptions.DatabaseNotFoundException; import neatlogic.framework.restful.annotation.*; @@ -37,7 +37,7 @@ import javax.annotation.Resource; public class GetDataBaseApi extends PrivateApiComponentBase { @Resource - private DataBaseMapper dataBaseMapper; + private DatabaseMapper databaseMapper; @Override public String getName() { @@ -54,7 +54,7 @@ public class GetDataBaseApi extends PrivateApiComponentBase { @Override public Object myDoService(JSONObject paramObj) throws Exception { Long id = paramObj.getLong("id"); - DatabaseVo databaseVo = dataBaseMapper.getDataBaseById(id); + DatabaseVo databaseVo = databaseMapper.getDataBaseById(id); if (databaseVo == null) { throw new DatabaseNotFoundException(id); } diff --git a/src/main/java/neatlogic/module/tenant/api/database/SavaDataBaseApi.java b/src/main/java/neatlogic/module/tenant/api/database/SavaDataBaseApi.java index d6a346ec..1cff065b 100644 --- a/src/main/java/neatlogic/module/tenant/api/database/SavaDataBaseApi.java +++ b/src/main/java/neatlogic/module/tenant/api/database/SavaDataBaseApi.java @@ -21,7 +21,7 @@ import com.alibaba.fastjson.JSONObject; import neatlogic.framework.auth.core.AuthAction; import neatlogic.framework.auth.label.DATA_WAREHOUSE_MODIFY; import neatlogic.framework.common.constvalue.ApiParamType; -import neatlogic.framework.datawarehouse.dao.mapper.DataBaseMapper; +import neatlogic.framework.datawarehouse.dao.mapper.DatabaseMapper; import neatlogic.framework.datawarehouse.dto.DatabaseVo; import neatlogic.framework.restful.annotation.*; import neatlogic.framework.restful.constvalue.OperationTypeEnum; @@ -39,7 +39,7 @@ import javax.annotation.Resource; public class SavaDataBaseApi extends PrivateApiComponentBase { @Resource - private DataBaseMapper dataBaseMapper; + private DatabaseMapper databaseMapper; @Override public String getName() { @@ -63,7 +63,7 @@ public class SavaDataBaseApi extends PrivateApiComponentBase { if (id == null) { dataBaseVo.setId(SnowflakeUtil.uniqueLong()); } - dataBaseMapper.insertDataBase(dataBaseVo); + databaseMapper.insertDataBase(dataBaseVo); JSONObject resultObj = new JSONObject(); resultObj.put("id", dataBaseVo.getId()); return resultObj; diff --git a/src/main/java/neatlogic/module/tenant/api/database/SearchDataBaseApi.java b/src/main/java/neatlogic/module/tenant/api/database/SearchDataBaseApi.java index 2962079b..958c97c4 100644 --- a/src/main/java/neatlogic/module/tenant/api/database/SearchDataBaseApi.java +++ b/src/main/java/neatlogic/module/tenant/api/database/SearchDataBaseApi.java @@ -22,7 +22,7 @@ import neatlogic.framework.auth.core.AuthAction; import neatlogic.framework.auth.label.DATA_WAREHOUSE_MODIFY; import neatlogic.framework.common.constvalue.ApiParamType; import neatlogic.framework.common.dto.BasePageVo; -import neatlogic.framework.datawarehouse.dao.mapper.DataBaseMapper; +import neatlogic.framework.datawarehouse.dao.mapper.DatabaseMapper; import neatlogic.framework.datawarehouse.dto.DatabaseVo; import neatlogic.framework.restful.annotation.*; import neatlogic.framework.restful.constvalue.OperationTypeEnum; @@ -40,7 +40,7 @@ import java.util.List; public class SearchDataBaseApi extends PrivateApiComponentBase { @Resource - private DataBaseMapper dataBaseMapper; + private DatabaseMapper databaseMapper; @Override public String getName() { @@ -62,10 +62,10 @@ public class SearchDataBaseApi extends PrivateApiComponentBase { public Object myDoService(JSONObject paramObj) throws Exception { DatabaseVo searchVo = paramObj.toJavaObject(DatabaseVo.class); List tbodyList = new ArrayList<>(); - int rowNum = dataBaseMapper.getDataBaseCount(searchVo); + int rowNum = databaseMapper.getDataBaseCount(searchVo); if (rowNum > 0) { searchVo.setRowNum(rowNum); - tbodyList = dataBaseMapper.getDataBaseList(searchVo); + tbodyList = databaseMapper.getDataBaseList(searchVo); } return TableResultUtil.getResult(tbodyList, searchVo); } diff --git a/src/main/java/neatlogic/module/tenant/api/database/TestDataBaseApi.java b/src/main/java/neatlogic/module/tenant/api/database/TestDataBaseApi.java new file mode 100644 index 00000000..e254d47a --- /dev/null +++ b/src/main/java/neatlogic/module/tenant/api/database/TestDataBaseApi.java @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2025 深圳极向量科技有限公司 All Rights Reserved. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package neatlogic.module.tenant.api.database; + +import com.alibaba.fastjson.JSONObject; +import neatlogic.framework.auth.core.AuthAction; +import neatlogic.framework.auth.label.DATA_WAREHOUSE_MODIFY; +import neatlogic.framework.common.constvalue.ApiParamType; +import neatlogic.framework.datawarehouse.dto.DatabaseVo; +import neatlogic.framework.datawarehouse.service.DatabaseService; +import neatlogic.framework.restful.annotation.*; +import neatlogic.framework.restful.constvalue.OperationTypeEnum; +import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.net.URLClassLoader; +import java.sql.Connection; + +@Service +@AuthAction(action = DATA_WAREHOUSE_MODIFY.class) +@OperationType(type = OperationTypeEnum.OPERATE) +public class TestDataBaseApi extends PrivateApiComponentBase { + + @Resource + private DatabaseService databaseService; + + @Override + public String getName() { + return "nmtad.testdatabaseapi.getname"; + } + + @Input({ + @Param(name = "id", type = ApiParamType.LONG, isRequired = true, desc = "common.id") + }) + @Output({ + @Param(explode = DatabaseVo.class, desc = "common.tbodylist") + }) + @Description(desc = "nmtad.testdatabaseapi.getname") + @Override + public Object myDoService(JSONObject paramObj) throws Exception { + Long id = paramObj.getLong("id"); + Connection conn = databaseService.getConnectionByDatabaseId(id); + if (conn != null) { + ClassLoader classLoader = conn.getClass().getClassLoader(); + conn.close(); + if (classLoader instanceof URLClassLoader) { + ((URLClassLoader) classLoader).close(); + } + } + return null; + } + + @Override + public String getToken() { + return "database/test"; + } +} -- Gitee From 232cb877091fc8a735a671cd443f254bfab835ed Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Tue, 3 Jun 2025 18:28:58 +0800 Subject: [PATCH 5/6] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20neatlogic=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=BB=93=E5=BA=93=E6=94=AF=E6=8C=81=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=96=B9=E6=95=B0=E6=8D=AE=E5=BA=93=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1432467032998096]neatlogic数据仓库支持配置第三方数据库获取数据 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1432467032998096 --- .../tenant/api/database/SavaDataBaseApi.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/java/neatlogic/module/tenant/api/database/SavaDataBaseApi.java b/src/main/java/neatlogic/module/tenant/api/database/SavaDataBaseApi.java index 1cff065b..a09f2ae6 100644 --- a/src/main/java/neatlogic/module/tenant/api/database/SavaDataBaseApi.java +++ b/src/main/java/neatlogic/module/tenant/api/database/SavaDataBaseApi.java @@ -23,8 +23,11 @@ import neatlogic.framework.auth.label.DATA_WAREHOUSE_MODIFY; import neatlogic.framework.common.constvalue.ApiParamType; import neatlogic.framework.datawarehouse.dao.mapper.DatabaseMapper; import neatlogic.framework.datawarehouse.dto.DatabaseVo; +import neatlogic.framework.datawarehouse.exceptions.DatabaseNameRepeatException; +import neatlogic.framework.dto.FieldValidResultVo; import neatlogic.framework.restful.annotation.*; import neatlogic.framework.restful.constvalue.OperationTypeEnum; +import neatlogic.framework.restful.core.IValid; import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; import neatlogic.framework.util.SnowflakeUtil; import org.springframework.stereotype.Service; @@ -73,4 +76,15 @@ public class SavaDataBaseApi extends PrivateApiComponentBase { public String getToken() { return "database/save"; } + + public IValid name() { + return paramObj -> { + DatabaseVo dataBaseVo = paramObj.toJavaObject(DatabaseVo.class); + int count = databaseMapper.checkDatabaseNameIsRepeat(dataBaseVo); + if (count > 0) { + return new FieldValidResultVo(new DatabaseNameRepeatException(dataBaseVo.getName())); + } + return new FieldValidResultVo(); + }; + } } -- Gitee From fed0b82727320227ec820d96c21dd217e57a1e98 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Wed, 4 Jun 2025 11:31:42 +0800 Subject: [PATCH 6/6] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20neatlogic=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=BB=93=E5=BA=93=E6=94=AF=E6=8C=81=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=96=B9=E6=95=B0=E6=8D=AE=E5=BA=93=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1432467032998096]neatlogic数据仓库支持配置第三方数据库获取数据 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1432467032998096 --- .../tenant/api/database/GetDataBaseApi.java | 15 +++++++++++++++ .../tenant/api/database/SavaDataBaseApi.java | 1 + 2 files changed, 16 insertions(+) diff --git a/src/main/java/neatlogic/module/tenant/api/database/GetDataBaseApi.java b/src/main/java/neatlogic/module/tenant/api/database/GetDataBaseApi.java index bac8dcf2..ee44bd47 100644 --- a/src/main/java/neatlogic/module/tenant/api/database/GetDataBaseApi.java +++ b/src/main/java/neatlogic/module/tenant/api/database/GetDataBaseApi.java @@ -24,12 +24,17 @@ import neatlogic.framework.common.constvalue.ApiParamType; import neatlogic.framework.datawarehouse.dao.mapper.DatabaseMapper; import neatlogic.framework.datawarehouse.dto.DatabaseVo; import neatlogic.framework.datawarehouse.exceptions.DatabaseNotFoundException; +import neatlogic.framework.file.dao.mapper.FileMapper; +import neatlogic.framework.file.dto.FileVo; import neatlogic.framework.restful.annotation.*; import neatlogic.framework.restful.constvalue.OperationTypeEnum; import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; @Service @AuthAction(action = DATA_WAREHOUSE_MODIFY.class) @@ -39,6 +44,9 @@ public class GetDataBaseApi extends PrivateApiComponentBase { @Resource private DatabaseMapper databaseMapper; + @Resource + private FileMapper fileMapper; + @Override public String getName() { return "nmtad.getdatabaseapi.getname"; @@ -58,6 +66,13 @@ public class GetDataBaseApi extends PrivateApiComponentBase { if (databaseVo == null) { throw new DatabaseNotFoundException(id); } + List fileIdList = databaseVo.getFileIdList(); + if (CollectionUtils.isNotEmpty(fileIdList)) { + List fileList = fileMapper.getFileListByIdList(fileIdList); + databaseVo.setFileList(fileList); + } else { + databaseVo.setFileList(new ArrayList<>()); + } return databaseVo; } diff --git a/src/main/java/neatlogic/module/tenant/api/database/SavaDataBaseApi.java b/src/main/java/neatlogic/module/tenant/api/database/SavaDataBaseApi.java index a09f2ae6..df9775e1 100644 --- a/src/main/java/neatlogic/module/tenant/api/database/SavaDataBaseApi.java +++ b/src/main/java/neatlogic/module/tenant/api/database/SavaDataBaseApi.java @@ -54,6 +54,7 @@ public class SavaDataBaseApi extends PrivateApiComponentBase { @Param(name = "name", type = ApiParamType.STRING, isRequired = true, desc = "common.name"), @Param(name = "type", type = ApiParamType.STRING, isRequired = true, desc = "common.type"), @Param(name = "config", type = ApiParamType.JSONOBJECT, isRequired = true, desc = "common.config"), + @Param(name = "fileIdList", type = ApiParamType.JSONARRAY, isRequired = true, desc = "common.fileidlist"), }) @Output({ @Param(name = "id", type = ApiParamType.LONG, isRequired = true, desc = "common.id") -- Gitee