From bf2639e4821122e0bf2d8b25b1de74e75bb6cff5 Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Mon, 09 Mar 2026 14:30:01 +0800
Subject: [PATCH] 2026-03-09 标记功能接口调整: 1、目录表增加is_delete字段,用于标记目录是否可以删除;只要true/false; 2、目录数据库中增加“默认文件夹”数据,不可被删除;在删除目录中判断固定id为default_directory_00000001的数据不可删除。

---
 ard-sample/src/main/java/com/ard/sample/annotation/model/entity/AnnotationDirectoryEntity.java      |    8 +++++++-
 ard-sample/src/main/java/com/ard/sample/annotation/model/dto/AnnotationDTO.java                     |    2 +-
 ard-sample/src/main/java/com/ard/sample/annotation/model/dto/AnnotationDirectoryDTO.java            |    7 ++++++-
 ard-sample/src/main/java/com/ard/sample/annotation/service/impl/AnnotationDirectoryServiceImpl.java |    7 ++++++-
 ard-sample/src/main/java/com/ard/sample/annotation/model/entity/AnnotationEntity.java               |    2 +-
 5 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/ard-sample/src/main/java/com/ard/sample/annotation/model/dto/AnnotationDTO.java b/ard-sample/src/main/java/com/ard/sample/annotation/model/dto/AnnotationDTO.java
index f341ba5..415c79f 100644
--- a/ard-sample/src/main/java/com/ard/sample/annotation/model/dto/AnnotationDTO.java
+++ b/ard-sample/src/main/java/com/ard/sample/annotation/model/dto/AnnotationDTO.java
@@ -31,7 +31,7 @@
     private String drawer;
 
     /**
-     * 是否可见:0=可见,1=不可见(默认0)
+     * 是否可见:true(1)=可见,false(0)=不可见(默认true)
      */
     private Boolean isTrue; // 显式设置默认值,避免空值
 
diff --git a/ard-sample/src/main/java/com/ard/sample/annotation/model/dto/AnnotationDirectoryDTO.java b/ard-sample/src/main/java/com/ard/sample/annotation/model/dto/AnnotationDirectoryDTO.java
index 618f958..dc8461d 100644
--- a/ard-sample/src/main/java/com/ard/sample/annotation/model/dto/AnnotationDirectoryDTO.java
+++ b/ard-sample/src/main/java/com/ard/sample/annotation/model/dto/AnnotationDirectoryDTO.java
@@ -22,7 +22,7 @@
     private String directoryName;
 
     /**
-     * 是否可见:0=可见,1=不可见(默认0)
+     * 是否可见:true(1)=可见,false(0)=不可见(默认true)
      */
     private Boolean isTrue;
 
@@ -33,4 +33,9 @@
     private Long createTime;
 
     private Long updateTime;
+
+    /**
+     * 是否可以删除,默认值为true(1),表示可以删除,只有默认文件夹为false(0),表示不可以删除
+     * */
+    private Boolean isDeleted;   // 显式设置默认值,避免空值
 }
diff --git a/ard-sample/src/main/java/com/ard/sample/annotation/model/entity/AnnotationDirectoryEntity.java b/ard-sample/src/main/java/com/ard/sample/annotation/model/entity/AnnotationDirectoryEntity.java
index 1cd1e9e..a940e03 100644
--- a/ard-sample/src/main/java/com/ard/sample/annotation/model/entity/AnnotationDirectoryEntity.java
+++ b/ard-sample/src/main/java/com/ard/sample/annotation/model/entity/AnnotationDirectoryEntity.java
@@ -28,7 +28,7 @@
     private String directoryName;
 
     /**
-     * 是否可见:true=可见,false=不可见(默认true)
+     * 是否可见:true(1)=可见,false(0)=不可见(默认true)
      */
     @TableField(value = "is_true")
     private Boolean isTrue = true; // 显式设置默认值,避免空值
@@ -51,4 +51,10 @@
     @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
     private Long updateTime;
 
+    /**
+     * 是否可以删除,默认值为true(1),表示可以删除,只有默认文件夹为false(0),表示不可以删除
+     * */
+    @TableField(value = "is_deleted")
+    private Boolean isDeleted = true;   // 显式设置默认值,避免空值
+
 }
diff --git a/ard-sample/src/main/java/com/ard/sample/annotation/model/entity/AnnotationEntity.java b/ard-sample/src/main/java/com/ard/sample/annotation/model/entity/AnnotationEntity.java
index ff8e91d..c6a9165 100644
--- a/ard-sample/src/main/java/com/ard/sample/annotation/model/entity/AnnotationEntity.java
+++ b/ard-sample/src/main/java/com/ard/sample/annotation/model/entity/AnnotationEntity.java
@@ -63,7 +63,7 @@
     private String drawer;
 
     /**
-     * 是否可见:true=可见,false=不可见(默认true)
+     * 是否可见:true(1)=可见,false(0)=不可见(默认true)
      */
     @TableField(value = "is_true")
     private Boolean isTrue = true; // 显式设置默认值,避免空值
diff --git a/ard-sample/src/main/java/com/ard/sample/annotation/service/impl/AnnotationDirectoryServiceImpl.java b/ard-sample/src/main/java/com/ard/sample/annotation/service/impl/AnnotationDirectoryServiceImpl.java
index ada036c..577addc 100644
--- a/ard-sample/src/main/java/com/ard/sample/annotation/service/impl/AnnotationDirectoryServiceImpl.java
+++ b/ard-sample/src/main/java/com/ard/sample/annotation/service/impl/AnnotationDirectoryServiceImpl.java
@@ -63,10 +63,15 @@
     @Override
     @Transactional(rollbackFor = Exception.class) // 事务保证级联删除
     public boolean deleteDirectory(String id) {
-        if (id == null) {
+        if (id == null || id.isEmpty()) {
             log.error("删除目录失败:ID为空");
             return false;
         }
+        // ====================== 关键:不允许删除默认文件夹 ======================
+        if ("default_directory_00000001".equals(id)) {
+            log.error("删除目录失败:默认文件夹不允许删除");
+            throw new RuntimeException("默认文件夹不允许删除");
+        }
         // 1. 删除目录下所有标记
         annotationMapper.deleteByMap(Map.of("directory_id", id));
         // 2. 删除目录

--
Gitblit v1.9.3