From 9f3cd3d14b2025c79296ff6cbc49d7efe3302ec5 Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Wed, 05 Nov 2025 16:58:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 ard-route/src/main/java/com/ard/route/service/impl/ArdRouteFolderServiceImpl.java |   34 ++++++++++++++++++++++++++++------
 1 files changed, 28 insertions(+), 6 deletions(-)

diff --git a/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteFolderServiceImpl.java b/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteFolderServiceImpl.java
index fcd9df0..1625807 100644
--- a/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteFolderServiceImpl.java
+++ b/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteFolderServiceImpl.java
@@ -1,5 +1,6 @@
 package com.ard.route.service.impl;
 
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -79,6 +80,9 @@
     public int insertArdRouteFolder(ArdRouteFolder ardRouteFolder) {
         ardRouteFolder.setId(IdUtils.simpleUUID());
         ardRouteFolder.setCreateTime(DateUtils.getNowDate());
+        // 获取当前数据条数
+        int count = ardRouteFolderMapper.selectArdRouteFolderList(null).size();
+        ardRouteFolder.setSerialNumber(count + 1);
         return ardRouteFolderMapper.insertArdRouteFolder(ardRouteFolder);
     }
 
@@ -90,6 +94,10 @@
      */
     @Override
     public int updateArdRouteFolder(ArdRouteFolder ardRouteFolder) {
+        // 不能修改默认文件夹
+        if ("0".equals(ardRouteFolder.getId())) {
+            throw new RuntimeException("不能修改默认文件夹");
+        }
         ardRouteFolder.setUpdateTime(DateUtils.getNowDate());
         return ardRouteFolderMapper.updateArdRouteFolder(ardRouteFolder);
     }
@@ -103,13 +111,27 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Map<String, Integer> deleteArdRouteFolderByIds(String[] ids) {
+        // 检查是否包含默认文件夹,不能删除默认文件夹
+        for (String id : ids) {
+            if ("0".equals(id)) {
+                throw new RuntimeException("不能删除默认文件夹");
+            }
+        }
+
         Map<String, Integer> result = new HashMap<>();
-        // 删除文件夹的同时也删除文件夹下的所有文件
-        int fileAdd = ardRouteFileMapper.deleteRouteFileByFolderIds(ids);
-        result.put("file", fileAdd);
-        int folderCount = ardRouteFolderMapper.deleteArdRouteFolderByIds(ids);
-        result.put("folder", folderCount);
-        return result;
+        try {
+            // 先删除文件
+            int fileCount = ardRouteFileMapper.deleteRouteFileByFolderIds(ids);
+            result.put("file", fileCount);
+
+            // 再删除文件夹
+            int folderCount = ardRouteFolderMapper.deleteArdRouteFolderByIds(ids);
+            result.put("folder", folderCount);
+
+            return result;
+        } catch (Exception e) {
+            throw e; // 抛出异常让事务回滚
+        }
     }
 
     /**

--
Gitblit v1.9.3