From a4e74d2684146cb5e3790fddc6d077e52e71205e Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期三, 28 六月 2023 18:31:47 +0800 Subject: [PATCH] 发布管理的查询元数据信息时添加DOM和DEM的目录过滤功能 --- src/main/java/com/lf/server/service/data/PublishService.java | 5 ++ src/main/java/com/lf/server/controller/data/PublishController.java | 36 ++++++++++++++++-- src/main/java/com/lf/server/mapper/data/PublishMapper.java | 9 ++++ data/db_cx.sql | 2 + src/main/resources/mapper/data/PublishMapper.xml | 19 +++++++++ 5 files changed, 67 insertions(+), 4 deletions(-) diff --git a/data/db_cx.sql b/data/db_cx.sql index 4dfc794..006c9e6 100644 --- a/data/db_cx.sql +++ b/data/db_cx.sql @@ -84,6 +84,8 @@ + + ---------------------------------------------------------------------------------------------- -- update lf.sys_publish a set geom = ST_GeomFromText('POINT Z (31.231025 113.223529 12)') where id = 1; select id from lf.sys_layer where cn_name = '涓夌淮鍦拌川妯″瀷' and pid = (select id from lf.sys_layer where cn_name = '鍕樺療' order by pid limit 1); diff --git a/src/main/java/com/lf/server/controller/data/PublishController.java b/src/main/java/com/lf/server/controller/data/PublishController.java index b2ab5fb..1fc3076 100644 --- a/src/main/java/com/lf/server/controller/data/PublishController.java +++ b/src/main/java/com/lf/server/controller/data/PublishController.java @@ -56,7 +56,7 @@ return fail("鏁版嵁绫诲埆涓虹┖", null); } - String types = getType(type); + String types = getType(dircode, type); int count = publishService.selectMetasByCount(depcode, dircode, verid, types, name); if (count == 0) { return success(0, null); @@ -73,12 +73,12 @@ /** * 鑾峰彇绫诲瀷 */ - private String getType(String type) throws Exception { + private String getType(String dircode, String type) throws Exception { switch (type) { case "DOM": - return "type in ('tif', 'tiff', 'img')"; + return "type in ('tif', 'tiff', 'img')" + getFilter(dircode, type); case "DEM": - return "type in ('tif', 'tiff')"; + return "type in ('tif', 'tiff')" + getFilter(dircode, type); case "MPT": return "type = 'mpt'"; case "3DML": @@ -96,6 +96,34 @@ } } + /** + * 鑾峰彇杩囨护鏉′欢 + */ + private String getFilter(String dircode, String type) { + dircode = StringHelper.isEmpty(dircode) ? "" : StringHelper.getRightLike(dircode); + + List<String> list = null; + switch (type) { + case "DOM": + list = publishService.selectCodesForDir(dircode, 0); + break; + case "DEM": + list = publishService.selectCodesForDir(dircode, 1); + break; + default: + break; + } + if (null == list || list.isEmpty()) { + return ""; + } + + for (int i = 0, c = list.size(); i < c; i++) { + list.set(i, "'" + list.get(i) + "'"); + } + + return " and dircode not in (" + StringHelper.join(list, ",") + ")"; + } + @SysLog() @ApiOperation(value = "鍒嗛〉鏌ヨ骞惰繑鍥炶褰曟暟") @ApiImplicitParams({ diff --git a/src/main/java/com/lf/server/mapper/data/PublishMapper.java b/src/main/java/com/lf/server/mapper/data/PublishMapper.java index 2801eb5..042f634 100644 --- a/src/main/java/com/lf/server/mapper/data/PublishMapper.java +++ b/src/main/java/com/lf/server/mapper/data/PublishMapper.java @@ -56,6 +56,15 @@ public List<PublishEntity> selectByIds(String ids); /** + * 鏍规嵁鐩綍鏌ヨDOM鍜孌EM鐨勭紪鐮� + * + * @param dircode 鐩綍 + * @param isDom 1-DOM锛�0-DEM + * @return + */ + public List<String> selectCodesForDir(String dircode, Integer isDom); + + /** * 鎻掑叆涓�鏉� * * @param entity diff --git a/src/main/java/com/lf/server/service/data/PublishService.java b/src/main/java/com/lf/server/service/data/PublishService.java index 03f592c..5462dc2 100644 --- a/src/main/java/com/lf/server/service/data/PublishService.java +++ b/src/main/java/com/lf/server/service/data/PublishService.java @@ -72,6 +72,11 @@ } @Override + public List<String> selectCodesForDir(String dircode, Integer isDom) { + return publishMapper.selectCodesForDir(dircode, isDom); + } + + @Override public Integer insert(PublishEntity entity) { return publishMapper.insert(entity); } diff --git a/src/main/resources/mapper/show/PublishMapper.xml b/src/main/resources/mapper/data/PublishMapper.xml similarity index 90% rename from src/main/resources/mapper/show/PublishMapper.xml rename to src/main/resources/mapper/data/PublishMapper.xml index 70e49d6..17ce303 100644 --- a/src/main/resources/mapper/show/PublishMapper.xml +++ b/src/main/resources/mapper/data/PublishMapper.xml @@ -80,6 +80,25 @@ select * from lf.sys_publish where id in (${ids}) order by id desc; </select> + <select id="selectCodesForDir" resultType="java.lang.String"> + select code + from lf.sys_dir + <where> + <choose> + <when test="isDom > 0"> + name in ('DOM', '鏁板瓧姝e皠褰卞儚鍥�') + </when> + <otherwise> + name in ('DEM', '鏁板瓧楂樼▼妯″瀷') + </otherwise> + </choose> + <if test="dircode != null"> + and code like #{dircode} + </if> + </where> + order by code; + </select> + <insert id="insert" parameterType="com.lf.server.entity.data.PublishEntity"> insert into lf.sys_publish (regid,name,url,path,type,status,dirid,depid,min,max,json,create_user,create_time,bak) -- Gitblit v1.9.3