2026-03-09 标记功能接口调整:
1、目录表增加is_delete字段,用于标记目录是否可以删除;只要true/false;
2、目录数据库中增加“默认文件夹”数据,不可被删除;在删除目录中判断固定id为default_directory_00000001的数据不可删除。
5 files modified
26 ■■■■■ changed files
ard-sample/src/main/java/com/ard/sample/annotation/model/dto/AnnotationDTO.java 2 ●●●●● patch | view | raw | blame | history
ard-sample/src/main/java/com/ard/sample/annotation/model/dto/AnnotationDirectoryDTO.java 7 ●●●●● patch | view | raw | blame | history
ard-sample/src/main/java/com/ard/sample/annotation/model/entity/AnnotationDirectoryEntity.java 8 ●●●●● patch | view | raw | blame | history
ard-sample/src/main/java/com/ard/sample/annotation/model/entity/AnnotationEntity.java 2 ●●●●● patch | view | raw | blame | history
ard-sample/src/main/java/com/ard/sample/annotation/service/impl/AnnotationDirectoryServiceImpl.java 7 ●●●●● patch | view | raw | blame | history
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; // 显式设置默认值,避免空值
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;   // 显式设置默认值,避免空值
}
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;   // 显式设置默认值,避免空值
}
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; // 显式设置默认值,避免空值
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. 删除目录