From b672d835f9314c10a8fd949e309816ee766df22b Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期四, 27 七月 2023 10:49:50 +0800
Subject: [PATCH] 修改发布清单的分页查询接口,添加数据目录、数据类别参数

---
 src/main/java/com/lf/server/service/data/PublishService.java       |   10 +++--
 src/main/java/com/lf/server/controller/data/PublishController.java |   39 ++++++++++++++++++-
 src/main/java/com/lf/server/mapper/data/PublishMapper.java         |   16 +++++---
 src/main/resources/mapper/data/PublishMapper.xml                   |   18 ++++++++-
 4 files changed, 68 insertions(+), 15 deletions(-)

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 137c5ed..7d45cc5 100644
--- a/src/main/java/com/lf/server/controller/data/PublishController.java
+++ b/src/main/java/com/lf/server/controller/data/PublishController.java
@@ -133,22 +133,25 @@
     @ApiOperation(value = "鍒嗛〉鏌ヨ骞惰繑鍥炶褰曟暟")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "name", value = "鍚嶇О", dataType = "String", paramType = "query", example = ""),
+            @ApiImplicitParam(name = "dircode", value = "鐩綍", dataType = "String", paramType = "query", example = ""),
+            @ApiImplicitParam(name = "type", value = "绫诲埆", dataType = "String", paramType = "query", example = ""),
             @ApiImplicitParam(name = "pageSize", value = "姣忛〉鏉℃暟", dataType = "Integer", paramType = "query", example = "10"),
             @ApiImplicitParam(name = "pageIndex", value = "鍒嗛〉鏁帮紙浠�1寮�濮嬶級", dataType = "Integer", paramType = "query", example = "1")
     })
     @GetMapping(value = "/selectByPageAndCount")
-    public ResponseMsg<List<PublishEntity>> selectByPageAndCount(String name, Integer pageSize, Integer pageIndex) {
+    public ResponseMsg<List<PublishEntity>> selectByPageAndCount(String name, String dircode, String type, Integer pageSize, Integer pageIndex) {
         try {
             if (pageSize < 1 || pageIndex < 1) {
                 return fail("姣忛〉椤垫暟鎴栧垎椤垫暟灏忎簬1", null);
             }
+            type = getPubType(type);
 
-            int count = publishService.selectCount(name);
+            int count = publishService.selectCount(name, dircode, type);
             if (count == 0) {
                 return success(0, null);
             }
 
-            List<PublishEntity> rs = publishService.selectByPage(name, pageSize, pageSize * (pageIndex - 1));
+            List<PublishEntity> rs = publishService.selectByPage(name, dircode, type, pageSize, pageSize * (pageIndex - 1));
 
             return success(count, rs);
         } catch (Exception ex) {
@@ -156,6 +159,36 @@
         }
     }
 
+    /**
+     * 鑾峰彇鍙戝竷绫诲瀷
+     */
+    private String getPubType(String type) {
+        if (StringHelper.isEmpty(type)) {
+            return null;
+        }
+
+        switch (type) {
+            case "DOM":
+                return "type = 'DOM'";
+            case "DEM":
+                return "type = 'DEM'";
+            case "MPT":
+                return "type = 'mpt'";
+            case "3DML":
+                return "type = '3dml'";
+            case "CPT":
+                return "type = 'cpt'";
+            case "BIM":
+                return "type in ('ifc', 'fbx', 'rvt')";
+            case "LAS":
+                return "type in ('las', 'laz')";
+            case "OSGB":
+                return "type = 'osgb'";
+            default:
+                return null;
+        }
+    }
+
     @SysLog()
     @ApiOperation(value = "鏍规嵁ID鏌ヨ")
     @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 042f634..1086c56 100644
--- a/src/main/java/com/lf/server/mapper/data/PublishMapper.java
+++ b/src/main/java/com/lf/server/mapper/data/PublishMapper.java
@@ -17,20 +17,24 @@
     /**
      * 鏌ヨ璁板綍鏁�
      *
-     * @param name 鍚嶇О
+     * @param name    鍚嶇О
+     * @param dircode 鐩綍缂栫爜
+     * @param type    绫诲埆
      * @return 璁板綍鏁�
      */
-    public Integer selectCount(String name);
+    public Integer selectCount(String name, String dircode, String type);
 
     /**
      * 鍒嗛〉鏌ヨ
      *
-     * @param name   鍚嶇О
-     * @param limit  璁板綍鏁�
-     * @param offset 鍋忕Щ閲�
+     * @param name    鍚嶇О
+     * @param dircode 鐩綍缂栫爜
+     * @param type    绫诲埆
+     * @param limit   璁板綍鏁�
+     * @param offset  鍋忕Щ閲�
      * @return 鍒楄〃
      */
-    public List<PublishEntity> selectByPage(String name, Integer limit, Integer offset);
+    public List<PublishEntity> selectByPage(String name, String dircode, String type, Integer limit, Integer offset);
 
     /**
      * 鏌ヨ鎵�鏈�
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 3ea8815..5137f56 100644
--- a/src/main/java/com/lf/server/service/data/PublishService.java
+++ b/src/main/java/com/lf/server/service/data/PublishService.java
@@ -47,17 +47,19 @@
     private final static Log log = LogFactory.getLog(PublishService.class);
 
     @Override
-    public Integer selectCount(String name) {
+    public Integer selectCount(String name, String dircode, String type) {
         name = StringHelper.getLikeUpperStr(name);
+        dircode = StringHelper.getRightLike(dircode);
 
-        return publishMapper.selectCount(name);
+        return publishMapper.selectCount(name, dircode, type);
     }
 
     @Override
-    public List<PublishEntity> selectByPage(String name, Integer limit, Integer offset) {
+    public List<PublishEntity> selectByPage(String name, String dircode, String type, Integer limit, Integer offset) {
         name = StringHelper.getLikeUpperStr(name);
+        dircode = StringHelper.getRightLike(dircode);
 
-        return publishMapper.selectByPage(name, limit, offset);
+        return publishMapper.selectByPage(name, dircode, type, limit, offset);
     }
 
     @Override
diff --git a/src/main/resources/mapper/data/PublishMapper.xml b/src/main/resources/mapper/data/PublishMapper.xml
index 17ce303..2b0d68a 100644
--- a/src/main/resources/mapper/data/PublishMapper.xml
+++ b/src/main/resources/mapper/data/PublishMapper.xml
@@ -48,8 +48,15 @@
     <select id="selectCount" resultType="java.lang.Integer">
         select count(*) from lf.sys_publish
         <where>
+            1 = 1
             <if test="name != null">
-                upper(name) like #{name}
+                and upper(name) like #{name}
+            </if>
+            <if test="dircode != null">
+                and dirid like #{dircode}
+            </if>
+            <if test="type != null">
+                and ${type}
             </if>
         </where>
     </select>
@@ -58,8 +65,15 @@
         select ST_AsText(geom) "geom", a.*, fn_get_fullname(a.depid, 1) depName, fn_get_fullname(a.dirid, 2) dirName, fn_uname(create_user) createName, fn_uname(update_user) updateName
         from lf.sys_publish a
         <where>
+            1 = 1
             <if test="name != null">
-                upper(name) like #{name}
+                and upper(name) like #{name}
+            </if>
+            <if test="dircode != null">
+                and dirid like #{dircode}
+            </if>
+            <if test="type != null">
+                and ${type}
             </if>
         </where>
         order by id desc

--
Gitblit v1.9.3