diff --git a/src/main/java/com/dsideal/base/Res/Controller/ResourceController.java b/src/main/java/com/dsideal/base/Res/Controller/ResourceController.java index d9d40b7d..43d91821 100644 --- a/src/main/java/com/dsideal/base/Res/Controller/ResourceController.java +++ b/src/main/java/com/dsideal/base/Res/Controller/ResourceController.java @@ -23,12 +23,21 @@ public class ResourceController extends Controller { /** * 获取知识库分页数据 * + * @param type_id 文档类型,1:文档 (word,ppt,pdf等),2:数据库(excel) + * @param keyword 搜索关键词 * @param pageNum 第几页 * @param pageSize 每页几条 */ @Before(GET.class) - public void getZskPage(int pageNum, int pageSize) { - Page page = rm.getZskPage(pageNum, pageSize); + public void getZskPage(int type_id,String keyword, int pageNum, int pageSize) { + //根据上传人员ID获取他所隶属的行政区划ID + String person_id = getCookie("person_id"); + //身份ID + int identity_id = Integer.parseInt(getCookie("identity_id")); + //行政区划码 + String area_code = rm.getAreaCode(identity_id, person_id); + + Page page = rm.getZskPage(type_id,keyword,area_code, pageNum, pageSize); renderJson(CommonUtil.renderJsonForLayUI(page)); } diff --git a/src/main/java/com/dsideal/base/Res/Model/ResourceModel.java b/src/main/java/com/dsideal/base/Res/Model/ResourceModel.java index 31b27d08..5c52e025 100644 --- a/src/main/java/com/dsideal/base/Res/Model/ResourceModel.java +++ b/src/main/java/com/dsideal/base/Res/Model/ResourceModel.java @@ -1,11 +1,18 @@ package com.dsideal.base.Res.Model; +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.SqlPara; import com.jfinal.plugin.activerecord.Record; +import java.util.ArrayList; +import java.util.List; + public class ResourceModel { + //云南省 + public final String YUNNAN = "530000"; /** * 功能:获取行政区划code @@ -28,7 +35,7 @@ public class ResourceModel { public String getAreaCode(int identity_id, String person_id) { String area_code = ""; //省管理员,直接返回云南省的code - if (identity_id == 1) area_code = "530000"; + if (identity_id == 1) area_code = YUNNAN; //如果是市州用户,直接返回市州用户的行政区划 String sql = "select * from t_sys_loginperson where person_id=?"; Record record = Db.findFirst(sql, person_id); @@ -49,10 +56,32 @@ public class ResourceModel { * @param pageNum * @param pageSize */ - public Page getZskPage(int pageNum, int pageSize) { - SqlPara sqlPara = Db.getSqlPara("YltWxGzh.getZskPage"); - Page page = Db.paginate(pageNum, pageSize, sqlPara); - return page; + public Page getZskPage(int type_id, String keyword, String area_code, int pageNum, int pageSize) { + List idList = new ArrayList<>(); + + //1、如果是云南省:查看所有自己发布的文档,不管是省,市,县,都能看到全省的文档 + idList.add(YUNNAN); + + //如果是省管理员 + if (area_code.equals(YUNNAN)) { + //什么也不做 + } + //2、如果是市州,查看省发布的+自己本市州发布的文档,市州的判断条件是6位的area_code,最后两位是00 + else if (area_code.substring(area_code.length() - 2, area_code.length()).equals("00")) { + idList.add(area_code);//只添加市 + } else { + //县区管理员 + idList.add(area_code.substring(0, 4) + "00");//市 + idList.add(area_code);//县区 + } + Kv kv = new Kv(); + kv.set("type_id", type_id); + kv.set("idList", idList); + if (!StrKit.isBlank(keyword)) { + kv.set("keyword", keyword); + } + SqlPara sqlPara = Db.getSqlPara("Resource.getZskPage"); + return Db.paginate(pageNum, pageSize, sqlPara); } @@ -68,6 +97,7 @@ public class ResourceModel { /** * 功能:上传知识库文档 + * * @param name * @param file_name * @param type_id diff --git a/src/main/resources/Sql/Resource.sql b/src/main/resources/Sql/Resource.sql new file mode 100644 index 00000000..1dcc783b --- /dev/null +++ b/src/main/resources/Sql/Resource.sql @@ -0,0 +1,10 @@ +#namespace("Resource") + #sql("getZskPage") + select * from ds_db.t_zsk_files where type_id=#para(type_id) + #if(keyword) + and (name like concat('%',#para(keyword),'%') + #end + and area_code in #para(idList, "in") + order by create_time desc + #end +#end \ No newline at end of file