From e658dd996f75f4636dd9eb3c728d4dc57f15b29d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Wed, 30 Oct 2024 14:19:41 +0800 Subject: [PATCH] 'commit' --- .../Res/Controller/ResourceController.java | 5 +-- .../resource/Res/Model/ResourceModel.java | 35 ++++++++++++++++--- dsRes/src/main/resources/Sql/Resource.sql | 32 +++++++++++++++++ 3 files changed, 66 insertions(+), 6 deletions(-) create mode 100644 dsRes/src/main/resources/Sql/Resource.sql diff --git a/dsRes/src/main/java/com/dsideal/resource/Res/Controller/ResourceController.java b/dsRes/src/main/java/com/dsideal/resource/Res/Controller/ResourceController.java index 6de6fe0d..5a092d41 100644 --- a/dsRes/src/main/java/com/dsideal/resource/Res/Controller/ResourceController.java +++ b/dsRes/src/main/java/com/dsideal/resource/Res/Controller/ResourceController.java @@ -142,8 +142,9 @@ public class ResourceController extends Controller { */ @Before({GET.class}) @JwtCheckInterface({}) - public void getResourceBaseList(int pageNum, int pageSize) { - Page listPage = rm.getResourceBaseList(pageNum, pageSize); + @IsNumericInterface({"pageNum", "pageSize"}) + public void getResourceBaseList(int stage_id, int scheme_id, int subject_id, int structure_id, String keyword, int pageNum, int pageSize) { + Page listPage = rm.getResourceBaseList(stage_id,scheme_id,subject_id,structure_id,keyword,pageNum, pageSize); renderJson(RetKit.renderSuccess(listPage)); } } diff --git a/dsRes/src/main/java/com/dsideal/resource/Res/Model/ResourceModel.java b/dsRes/src/main/java/com/dsideal/resource/Res/Model/ResourceModel.java index 898e1281..b551f126 100644 --- a/dsRes/src/main/java/com/dsideal/resource/Res/Model/ResourceModel.java +++ b/dsRes/src/main/java/com/dsideal/resource/Res/Model/ResourceModel.java @@ -1,9 +1,15 @@ package com.dsideal.resource.Res.Model; import cn.hutool.core.date.DateTime; +import com.jfinal.kit.Kv; +import com.jfinal.kit.StrKit; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Page; import com.jfinal.plugin.activerecord.Record; +import com.jfinal.plugin.activerecord.SqlPara; + +import java.util.ArrayList; +import java.util.List; public class ResourceModel { /** @@ -88,16 +94,37 @@ public class ResourceModel { return Db.findFirst(sql, resource_id_int); } + /** + * 获取树形结构 + * + * @param structure_id + * @return + */ + public List getStructureTree(int structure_id) { + SqlPara sqlPara = Db.getSqlPara("Resource.getStructureTree", Kv.by("structure_id", structure_id)); + return Db.find(sqlPara); + } + /** * 分页查询 * * @param pageNum 当前页码 * @param pageSize 每页显示条数 */ - public Page getResourceBaseList(int pageNum, int pageSize) { - String sql1 = "select * "; - String sql2 = " from t_resource_base"; - return Db.paginate(pageNum, pageSize, sql1, sql2); + public Page getResourceBaseList(int stage_id, int scheme_id, int subject_id, int structure_id, String keyword, int pageNum, int pageSize) { + Kv kv = Kv.create(); + if (stage_id > 0) kv.set("stage_id", stage_id); + if (scheme_id > 0) kv.set("scheme_id", scheme_id); + if (subject_id > 0) kv.set("subject_id", subject_id); + if (!StrKit.isBlank(keyword)) kv.set("keyword", keyword); + List childTree = getStructureTree(structure_id); + List ids = new ArrayList<>(); + for (Record record : childTree) { + ids.add(record.getInt("structure_id")); + } + kv.set("ids", ids); + SqlPara sqlPara = Db.getSqlPara("Resource.getResourceBaseList", kv); + return Db.paginate(pageNum, pageSize, sqlPara); } /** diff --git a/dsRes/src/main/resources/Sql/Resource.sql b/dsRes/src/main/resources/Sql/Resource.sql new file mode 100644 index 00000000..379c763b --- /dev/null +++ b/dsRes/src/main/resources/Sql/Resource.sql @@ -0,0 +1,32 @@ +#namespace("Resource") + -- 获取指定节点为根的子树 + #sql("getStructureTree") + SELECT structure_id, parent_id FROM t_resource_structure WHERE parent_id = #para(ParentID) + UNION ALL + SELECT b.structure_id, b.parent_id FROM t_resource_structure b + JOIN (SELECT structure_id FROM t_resource_structure WHERE parent_id = #para(ParentID)) AS a ON b.parent_id = a.structure_id + UNION ALL + SELECT b.structure_id, b.parent_id FROM t_resource_structure b + JOIN (SELECT structure_id FROM t_resource_structure WHERE parent_id IN (SELECT structure_id FROM t_resource_base WHERE parent_id = #para(ParentID))) + AS a ON b.parent_id = a.structure_id + #end + -- 资源查询列表 + #sql("getResourceBaseList") + select * from t_resource_base as t1 where 1=1 + #if(stage_id) + and t1.stage_id = #para(stage_id) + #end + #if(scheme_id) + and t1.scheme_id = #para(scheme_id) + #end + #if(subject_id) + and t1.subject_id = #para(subject_id) + #end + #if(keyword) + and t1.resource_name like concat('%',#para(keyword),'%') + #end + #if(ids) + and t1.structure_id in ( #(ids) ) + #end + #end +#end \ No newline at end of file