ソースを参照

扫描仓库删除节点

cr 1 週間 前
コミット
1020999f2a

+ 5 - 4
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ScanFileServiceImpl.java

@@ -244,11 +244,12 @@ public class ScanFileServiceImpl  extends ServiceImpl<ScanFileMapper, ScanFile>
 
     @Override
     public boolean deleteScanFolder(Long id) {
-        List<ScanFile> scanFiles = baseMapper.selectList(new LambdaQueryWrapper<>(ScanFile.class).eq(ScanFile::getFolderId, id));
-        if(scanFiles.size()>0){
-            throw new ServiceException("当前节点存在文件,无法删除");
-        }
         List<ScanFolder> scanFolders = scanFolderMapper.selectAllChildren(id);
+        List<Long> longList = scanFolders.stream().map(ScanFolder::getId).collect(Collectors.toList());
+        List<ScanFile> scanFiles = baseMapper.selectList(new LambdaQueryWrapper<>(ScanFile.class).in(ScanFile::getFolderId, longList));
+        if(!scanFiles.isEmpty()){
+            throw new ServiceException("当前节点或子节点存在文件,无法删除");
+        }
         for (ScanFolder folder : scanFolders) {
             scanFolderMapper.deleteById(folder.getId());
             this.deleteScanFolderLinux(folder.getId());