diff --git a/src/main/java/com/dsideal/base/YunXiao/Controller/YunXiaoController.java b/src/main/java/com/dsideal/base/YunXiao/Controller/YunXiaoController.java index 521e9958..b1eb662f 100644 --- a/src/main/java/com/dsideal/base/YunXiao/Controller/YunXiaoController.java +++ b/src/main/java/com/dsideal/base/YunXiao/Controller/YunXiaoController.java @@ -1,15 +1,12 @@ package com.dsideal.base.YunXiao.Controller; import com.dsideal.base.Interceptor.IsLoginInterface; -import com.dsideal.base.Interceptor.IsNumericInterface; import com.dsideal.base.Util.CommonUtil; -import com.dsideal.base.Util.SqlInjectionUtils; import com.dsideal.base.YunXiao.Model.YunXiaoModel; import com.jfinal.aop.Before; import com.jfinal.core.Controller; import com.jfinal.ext.interceptor.GET; import com.jfinal.ext.interceptor.POST; -import com.jfinal.kit.StrKit; import com.jfinal.plugin.activerecord.Page; import com.jfinal.plugin.activerecord.Record; import io.github.yedaxia.apidocs.ApiDoc; @@ -22,40 +19,29 @@ public class YunXiaoController extends Controller { YunXiaoModel ym = new YunXiaoModel(); /** - * 可以维护的数据集名称 + * 获取数据集树 */ - // http://10.10.21.20:9000/dsBase/yx/getDataSet - @Before({GET.class}) + @Before(GET.class) @IsLoginInterface({}) - public void getDataSet() { - List list = ym.getDataSet(); + public void getDatasetTree() { + List list = ym.getDatasetTree(); renderJson(CommonUtil.renderJsonForLayUI(list)); } /** * 获取数据集下的数据表 - * - * @param id 数据集id - * @param pageNumber 第几页 - * @param keyword 关键字 - * @param pageSize 每页多少条数据 + * @param datasetId 数据集id + * @param page 第几页 + * @param limit 每页显示多少条数据 */ @Before(GET.class) @IsLoginInterface({}) - @IsNumericInterface({"id"}) - public void getDataSetContent(int id, String keyword, int pageNumber, int pageSize) { - if (StrKit.isBlank(keyword)) keyword = ""; - if (pageNumber == 0) pageNumber = 1; - if (pageSize == 0) pageSize = 20; - if (SqlInjectionUtils.hasSqlInjectionRisk(keyword)) { - renderJson("输入的查询关键字存在SQL注入攻击,无法执行!"); - return; - } - - Page pageList = ym.getDataSetContent(id, keyword, pageNumber, pageSize); - renderJson(CommonUtil.renderJsonForLayUI(pageList)); + public void getDataSetContent(long datasetId, int page, int limit) { + Page p = ym.getDataSetContent(datasetId, page, limit); + renderJson(CommonUtil.renderJsonForLayUI(p)); } + /** * 保存数据集下的数据表 * diff --git a/src/main/java/com/dsideal/base/YunXiao/Model/YunXiaoModel.java b/src/main/java/com/dsideal/base/YunXiao/Model/YunXiaoModel.java index 30fadf5d..baf1b717 100644 --- a/src/main/java/com/dsideal/base/YunXiao/Model/YunXiaoModel.java +++ b/src/main/java/com/dsideal/base/YunXiao/Model/YunXiaoModel.java @@ -226,14 +226,14 @@ public class YunXiaoModel { /** * 获取数据集对应的表 * - * @param id 数据集id * @return */ - public Page getDataSetContent(int id, String keyword, int pageNumber, int pageSize) { - Record record = Db.findById("t_dp_yx_dataset", "id", id); + public Page getDataSetContent(long datasetId, int pageNumber, int pageSize) { + String sql = "select * from t_dp_yx_dataset where dataset_group_id=?"; + Record record = Db.findFirst(sql, datasetId); String tableName = record.getStr("table_name"); Page p = Db.paginate(pageNumber, pageSize, - "SELECT *", "from " + DB_NAME + ".`" + tableName + "` where `行政区划` like '%" + keyword + "%'"); + "SELECT *", "from " + DB_NAME + ".`" + tableName); return p; } @@ -256,4 +256,14 @@ public class YunXiaoModel { if (parent_id == null) return null; return getAreaById(parent_id).getStr("area_name"); } + + /** + * 获取数据集树结构 + * + * @return + */ + public List getDatasetTree() { + SqlPara sqlPara = Db.getSqlPara("YunXiao.datasetTree"); + return Db.find(sqlPara); + } } diff --git a/src/main/resources/Sql/YunXiao.sql b/src/main/resources/Sql/YunXiao.sql new file mode 100644 index 00000000..91e78d84 --- /dev/null +++ b/src/main/resources/Sql/YunXiao.sql @@ -0,0 +1,16 @@ +#namespace("YunXiao") + #sql("datasetTree") + WITH RECURSIVE tree_cte AS ( + SELECT * + FROM dataease.core_dataset_group + WHERE id = 1072161072829566976 -- 上线 + UNION ALL + SELECT c.* + FROM dataease.core_dataset_group c + INNER JOIN tree_cte t ON c.pid = t.id + ) + SELECT t1.id ,t1.name ,t1.pid,t1.node_type,t2.name as parent_name FROM tree_cte as t1 + inner join dataease.core_dataset_group as t2 + on t1.pid=t2.id + #end +#end \ No newline at end of file