From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master
---
jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsMapper/DmsFolderMapper.java | 42 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 42 insertions(+), 0 deletions(-)
diff --git a/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsMapper/DmsFolderMapper.java b/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsMapper/DmsFolderMapper.java
new file mode 100644
index 0000000..20653d6
--- /dev/null
+++ b/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsMapper/DmsFolderMapper.java
@@ -0,0 +1,42 @@
+package jnpf.dmsMapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import jnpf.dmsEntity.permission.entity.DmsFolderEntity;
+import jnpf.dmsEntity.permission.model.DmsFolderAncestorRow;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+import java.util.UUID;
+
+@Mapper
+public interface DmsFolderMapper extends BaseMapper<DmsFolderEntity> {
+ @Select("SELECT id, tenant_id, parent_id, name, created_by, created_at "
+ + "FROM public.dms_folders WHERE tenant_id = #{tenantId} AND id = #{id}")
+ DmsFolderEntity selectByTenantAndId(@Param("tenantId") String tenantId, @Param("id") UUID id);
+
+ @Select({"<script>",
+ "SELECT id, tenant_id, parent_id, name, created_by, created_at",
+ "FROM public.dms_folders WHERE tenant_id = #{tenantId} AND id IN",
+ "<foreach collection='ids' item='id' open='(' separator=',' close=')'>#{id}</foreach>",
+ "</script>"})
+ List<DmsFolderEntity> selectByTenantAndIds(@Param("tenantId") String tenantId,
+ @Param("ids") List<UUID> ids);
+
+ @Select({"<script>",
+ "WITH RECURSIVE ancestors(start_folder_id, ancestor_folder_id, parent_id, depth) AS (",
+ "SELECT f.id, f.id, f.parent_id, 0 FROM public.dms_folders f",
+ "WHERE f.tenant_id = #{tenantId} AND f.id IN",
+ "<foreach collection='folderIds' item='id' open='(' separator=',' close=')'>#{id}</foreach>",
+ "UNION ALL",
+ "SELECT a.start_folder_id, p.id, p.parent_id, a.depth + 1",
+ "FROM ancestors a JOIN public.dms_folders p",
+ "ON p.tenant_id = #{tenantId} AND p.id = a.parent_id",
+ ")",
+ "SELECT start_folder_id, ancestor_folder_id, depth FROM ancestors",
+ "ORDER BY start_folder_id, depth",
+ "</script>"})
+ List<DmsFolderAncestorRow> selectAncestorRows(@Param("tenantId") String tenantId,
+ @Param("folderIds") List<UUID> folderIds);
+}
--
Gitblit v1.8.0