From 0ef2d5a09df20b49ddea40454703287101ee2a91 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期一, 05 二月 2024 10:10:08 +0800
Subject: [PATCH] 修改资料馆的元数据分页查询接口

---
 src/main/java/com/lf/server/service/show/DataLibService.java       |    8 ++++----
 src/main/java/com/lf/server/service/all/BaseQueryService.java      |    2 +-
 src/main/resources/mapper/all/BaseQueryMapper.xml                  |    2 +-
 src/main/java/com/lf/server/mapper/all/BaseQueryMapper.java        |    2 +-
 src/main/java/com/lf/server/controller/show/DataLibController.java |    3 ++-
 5 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/lf/server/controller/show/DataLibController.java b/src/main/java/com/lf/server/controller/show/DataLibController.java
index a98f2c6..4e7ee50 100644
--- a/src/main/java/com/lf/server/controller/show/DataLibController.java
+++ b/src/main/java/com/lf/server/controller/show/DataLibController.java
@@ -98,7 +98,8 @@
             if (pageSize < 1 || pageIndex < 1) {
                 return fail("姣忛〉椤垫暟鎴栧垎椤垫暟灏忎簬1", null);
             }
-            dirs = DataLibService.copeCodes(dirs, "dircode");
+            // dirs = DataLibService.copeCodes(dirs, "dircode")
+            dirs = dataLibService.getDirsByTypes(types, dirs, "dircode");
 
 
             int count = metaService.selectMetasForCount(depcode, dirs, name);
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 dab9b53..69cf2f8 100644
--- a/src/main/java/com/lf/server/mapper/all/BaseQueryMapper.java
+++ b/src/main/java/com/lf/server/mapper/all/BaseQueryMapper.java
@@ -109,7 +109,7 @@
      * @param dirs
      * @return
      */
-    public List<KeyValueEntity> selectDirsByTypes(String types, String dirs);
+    public List<KeyValueEntity> selectDirsByTypes(String[] types, String dirs);
 
     /**
      * 鏍规嵁琛ㄥ悕鏌ヨ闄勪欢
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 e8e8e7b..94a4e38 100644
--- a/src/main/java/com/lf/server/service/all/BaseQueryService.java
+++ b/src/main/java/com/lf/server/service/all/BaseQueryService.java
@@ -324,7 +324,7 @@
     }
 
     @Override
-    public List<KeyValueEntity> selectDirsByTypes(String types, String dirs) {
+    public List<KeyValueEntity> selectDirsByTypes(String[] types, String dirs) {
         return baseQueryMapper.selectDirsByTypes(types, dirs);
     }
 
diff --git a/src/main/java/com/lf/server/service/show/DataLibService.java b/src/main/java/com/lf/server/service/show/DataLibService.java
index 88f9bf4..e6f839b 100644
--- a/src/main/java/com/lf/server/service/show/DataLibService.java
+++ b/src/main/java/com/lf/server/service/show/DataLibService.java
@@ -393,7 +393,7 @@
         }
 
         if (!StringUtils.isEmpty(types)) {
-            List<KeyValueEntity> list = baseQueryService.selectDirsByTypes(types, dirs);
+            List<KeyValueEntity> list = baseQueryService.selectDirsByTypes(types.split(","), dirs);
             if (null == list || list.isEmpty()) {
                 return null;
             }
@@ -405,17 +405,17 @@
     }
 
     /**
-     * 澶勭悊鐩綍缂栫爜
+     * 澶勭悊鐩綍缂栫爜锛歞ircode ~ '^0A|^0E'
      */
     public static String copeDirs(List<KeyValueEntity> kvs, String field) {
         List<String> list = new ArrayList<>();
         for (KeyValueEntity kv : kvs) {
             String[] dirs = kv.getValue().split(",");
             for (String dir : dirs) {
-                list.add(String.format("%s like '%s%%'", field, dir));
+                list.add("^" + dir);
             }
         }
 
-        return "(" + StringHelper.join(list, " or ") + ")";
+        return field + " ~ '" + StringHelper.join(list, "|") + "'";
     }
 }
diff --git a/src/main/resources/mapper/all/BaseQueryMapper.xml b/src/main/resources/mapper/all/BaseQueryMapper.xml
index 4ee9e12..c1b9ef0 100644
--- a/src/main/resources/mapper/all/BaseQueryMapper.xml
+++ b/src/main/resources/mapper/all/BaseQueryMapper.xml
@@ -87,7 +87,7 @@
     </select>
 
     <select id="selectDirsByTypes" resultType="com.lf.server.entity.ctrl.KeyValueEntity">
-        select (select string_agg(code, ',') from lf.sys_dir where name = a.name) "key", name "value"
+        select name "key", (select string_agg(code, ',') from lf.sys_dir where name = a.name) "value"
         from lf.sys_dir a
         <where>
             1 = 1

--
Gitblit v1.9.3