From 07bc9f972be6765642339506e6e31bc23de75406 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期三, 28 六月 2023 12:47:33 +0800 Subject: [PATCH] 资料馆的数据库分页查询添加根据资料类别过滤功能 --- src/main/java/com/lf/server/service/all/BaseQueryService.java | 8 ++-- src/main/resources/mapper/all/BaseQueryMapper.xml | 6 +++ src/main/java/com/lf/server/controller/all/BaseQueryController.java | 50 +++++++++++++++++++++++- data/db_cx.sql | 5 +- src/main/java/com/lf/server/mapper/all/BaseQueryMapper.java | 20 +++++---- 5 files changed, 71 insertions(+), 18 deletions(-) diff --git a/data/db_cx.sql b/data/db_cx.sql index bfeb93d..4dfc794 100644 --- a/data/db_cx.sql +++ b/data/db_cx.sql @@ -66,8 +66,9 @@ select id,uid,uname,pwd from lf.sys_user order by uid; select * from lf.sys_meta where type='osgb' order by id desc limit 20; - - +select * from lf.sys_token where token ='c36e4f94-dfde-401e-9967-2c4a449f1300'; +select * from lf.sys_user where id=61; +select bak,count(*) from lf.sys_dict group by bak order by bak; diff --git a/src/main/java/com/lf/server/controller/all/BaseQueryController.java b/src/main/java/com/lf/server/controller/all/BaseQueryController.java index bedbf9b..4c47876 100644 --- a/src/main/java/com/lf/server/controller/all/BaseQueryController.java +++ b/src/main/java/com/lf/server/controller/all/BaseQueryController.java @@ -424,11 +424,12 @@ @ApiImplicitParam(name = "depcode", value = "鍗曚綅缂栫爜", dataType = "String", paramType = "query", example = "00"), @ApiImplicitParam(name = "dirs", value = "鐩綍缂栫爜", dataType = "String", paramType = "query", example = "00,01"), @ApiImplicitParam(name = "tab", value = "琛ㄥ悕", dataType = "String", paramType = "query", example = "dlg_"), + @ApiImplicitParam(name = "types", value = "绫诲埆", dataType = "String", paramType = "query", example = "娴嬬粯锛圗SV锛�"), @ApiImplicitParam(name = "hasGeom", value = "鍚湁Geom瀛楁", dataType = "Boolean", paramType = "query", example = "false"), @ApiImplicitParam(name = "pageSize", value = "姣忛〉鏉℃暟", dataType = "Integer", paramType = "query", example = "10"), @ApiImplicitParam(name = "pageIndex", value = "鍒嗛〉鏁帮紙浠�1寮�濮嬶級", dataType = "Integer", paramType = "query", example = "1") }) - public ResponseMsg<Object> selectTabsByPage(String depcode, String dirs, String tab, Boolean hasGeom, Integer pageSize, Integer pageIndex) { + public ResponseMsg<Object> selectTabsByPage(String depcode, String dirs, String tab, String types, Boolean hasGeom, Integer pageSize, Integer pageIndex) { try { if (pageSize < 1 || pageIndex < 1) { return fail("姣忛〉椤垫暟鎴栧垎椤垫暟灏忎簬1", null); @@ -445,14 +446,15 @@ if (dirs != null) { filters += String.format(" and %s", dirs); } + String typesFilter = getTypesFilter(types); String field = null == hasGeom || !hasGeom ? "gid" : "geom"; - int count = baseQueryService.selectTabsForCount(tab, field); + int count = baseQueryService.selectTabsForCount(tab, typesFilter, field); if (count == 0) { return success(0, null); } - List<TabEntity> rs = baseQueryService.selectTabsByPage(tab, field, filters, pageSize, pageSize * (pageIndex - 1)); + List<TabEntity> rs = baseQueryService.selectTabsByPage(tab, typesFilter, field, filters, pageSize, pageSize * (pageIndex - 1)); return success(count, rs); } catch (Exception ex) { @@ -460,6 +462,48 @@ } } + /** + * 鑾峰彇绫诲埆杩囨护鏉′欢 + */ + private String getTypesFilter(String types) { + if (StringHelper.isEmpty(types)) { + return null; + } + + List<String> list = new ArrayList<>(); + for (String type : types.split(StaticData.COMMA)) { + switch (type) { + case "娴嬬粯锛圗SV锛�": + list.add("bak like '宸ョ▼鏁版嵁/娴嬬粯%'"); + break; + case "鍕樺療锛圗GE锛�": + list.add("bak like '宸ョ▼鏁版嵁/鍕樺療%'"); + break; + case "鍦扮伨锛圗GD锛�": + list.add("bak like '宸ョ▼鏁版嵁/鍦扮伨%'"); + break; + case "娲炲簱锛圗GD锛�": + list.add("bak like '宸ョ▼鏁版嵁/娲炲簱%'"); + break; + case "鍩虹娴嬬粯": + list.add("bak like '鍩虹鏁版嵁/娴嬬粯%'"); + break; + case "鍩虹鍦扮伨": + list.add("bak like '鍩虹鏁版嵁/鍦扮伨%'"); + break; + case "鍩虹鍕樺療": + list.add("bak like '鍩虹鏁版嵁/鍕樺療%'"); + break; + case "鍚堣鏁版嵁": + case "绠$悊鏁版嵁": + default: + break; + } + } + + return list.isEmpty() ? null : StringHelper.join(list, " or "); + } + @SysLog() @ApiOperation(value = "鏌ヨ瀛楁淇℃伅") @ApiImplicitParams({ diff --git a/src/main/java/com/lf/server/mapper/all/BaseQueryMapper.java b/src/main/java/com/lf/server/mapper/all/BaseQueryMapper.java index 4b5f780..60a360a 100644 --- a/src/main/java/com/lf/server/mapper/all/BaseQueryMapper.java +++ b/src/main/java/com/lf/server/mapper/all/BaseQueryMapper.java @@ -37,23 +37,25 @@ /** * 鏍规嵁琛ㄥ悕鏌ヨ璁板綍鏁� * - * @param tab 琛ㄥ悕 - * @param field 瀛楁 + * @param tab 琛ㄥ悕 + * @param typesFilter 绫诲埆 + * @param field 瀛楁 * @return */ - public Integer selectTabsForCount(String tab, String field); + public Integer selectTabsForCount(String tab, String typesFilter, String field); /** * 鏍规嵁琛ㄥ悕鍒嗛〉鏌ヨ * - * @param tab 琛ㄥ悕 - * @param field 瀛楁 - * @param filters 杩囨护鏉′欢 - * @param limit 璁板綍鏁� - * @param offset 鍋忕Щ閲� + * @param tab 琛ㄥ悕 + * @param typesFilter 绫诲埆 + * @param field 瀛楁 + * @param filters 杩囨护鏉′欢 + * @param limit 璁板綍鏁� + * @param offset 鍋忕Щ閲� * @return */ - public List<TabEntity> selectTabsByPage(String tab, String field, String filters, Integer limit, Integer offset); + public List<TabEntity> selectTabsByPage(String tab, String typesFilter, String field, String filters, Integer limit, Integer offset); /** * 鏌ヨ瀛楁淇℃伅 diff --git a/src/main/java/com/lf/server/service/all/BaseQueryService.java b/src/main/java/com/lf/server/service/all/BaseQueryService.java index 7564465..5b2a31e 100644 --- a/src/main/java/com/lf/server/service/all/BaseQueryService.java +++ b/src/main/java/com/lf/server/service/all/BaseQueryService.java @@ -265,17 +265,17 @@ } @Override - public Integer selectTabsForCount(String tab, String field) { + public Integer selectTabsForCount(String tab, String typesFilter, String field) { tab = StringHelper.getLikeUpperStr(tab); - return baseQueryMapper.selectTabsForCount(tab, field); + return baseQueryMapper.selectTabsForCount(tab, typesFilter, field); } @Override - public List<TabEntity> selectTabsByPage(String tab, String field, String filters, Integer limit, Integer offset) { + public List<TabEntity> selectTabsByPage(String tab, String typesFilter, String field, String filters, Integer limit, Integer offset) { tab = StringHelper.getLikeUpperStr(tab); - return baseQueryMapper.selectTabsByPage(tab, field, filters, limit, offset); + return baseQueryMapper.selectTabsByPage(tab, typesFilter, field, filters, limit, offset); } @Override diff --git a/src/main/resources/mapper/all/BaseQueryMapper.xml b/src/main/resources/mapper/all/BaseQueryMapper.xml index 6b11f5d..b64a4c6 100644 --- a/src/main/resources/mapper/all/BaseQueryMapper.xml +++ b/src/main/resources/mapper/all/BaseQueryMapper.xml @@ -28,6 +28,9 @@ <if test="tab != null"> and upper(tab) like #{tab} or upper(tab_desc) like #{tab} </if> + <if test="typesFilter != null"> + and (${typesFilter}) + </if> </where> </select> @@ -39,6 +42,9 @@ <if test="tab != null"> and (upper(tab) like #{tab} or upper(tab_desc) like #{tab}) </if> + <if test="typesFilter != null"> + and (${typesFilter}) + </if> </where> order by id limit #{limit} offset #{offset}; -- Gitblit v1.9.3