Эх сурвалжийг харах

fix: 修正数据管理图片显示问题

WANGKANG 9 сар өмнө
parent
commit
357ba13715

+ 1 - 0
taais-admin/src/main/resources/application.yml

@@ -10,6 +10,7 @@ taais:
   demoEnabled: true
   # 文件路径 示例( Windows配置D:/km/uploadPath,Linux配置 /home/km/uploadPath)
   # profile: D:/taais/uploadPath
+  # 后面不能有 /
   profile: D:/home/ObjectDetection_Web
   # 获取ip地址开关
   addressEnabled: false

+ 19 - 6
taais-modules/taais-biz/src/main/java/com/taais/biz/service/impl/DataSeqServiceImpl.java

@@ -1,8 +1,6 @@
 package com.taais.biz.service.impl;
 
 import java.io.File;
-import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -31,7 +29,6 @@ import com.taais.biz.domain.vo.DataSeqVo;
 import com.taais.biz.service.IDataSeqService;
 
 import static com.taais.biz.domain.table.DataSeqTableDef.DATA_SEQ;
-import static com.taais.biz.service.impl.VideoStableServiceImpl.removeFileExtension;
 import static com.taais.biz.utils.ZipUtils.unzip;
 
 /**
@@ -199,15 +196,31 @@ public class DataSeqServiceImpl extends BaseServiceImpl<DataSeqMapper, DataSeq>
         String resourcePath = localPath + StringUtils.substringAfter(filePath, Constants.RESOURCE_PREFIX);
         String unzipPath = resourcePath.substring(0, resourcePath.lastIndexOf(".")) + BizConstant.UNZIP_SUFFIX;
 
-        String urlPrefix = ossEntity.getUrl().substring(0, ossEntity.getUrl().lastIndexOf(".")) + BizConstant.UNZIP_SUFFIX;
+        String urlPrefix = ossEntity.getUrl().substring(0, ossEntity.getUrl().indexOf(Constants.RESOURCE_PREFIX) + Constants.RESOURCE_PREFIX.length());
 
         // 列出unzipPath下所有图片文件
         File directory = new File(unzipPath);
-        File[] files = directory.listFiles();
-        List<String> imageList = Arrays.asList(files).stream().filter(file -> file.isFile() && isImageFile(file)).map(file -> urlPrefix + "/" + file.getName()).toList();
+
+        List<String> imageList = new ArrayList<>();
+        filterImages(imageList, directory, urlPrefix);
         return imageList;
     }
 
+    public void filterImages(List<String> imageList, File path, String urlPrefix) {
+        File[] files = path.listFiles();
+        if (files == null || files.length == 0) {
+            return;
+        }
+        List<String> tmpList = Arrays.asList(files).stream().filter(file -> file.isFile() && isImageFile(file)).map(file -> urlPrefix + file.getPath().substring(TaaisConfig.getProfile().length()).replaceAll("\\\\", "/")).toList();
+        imageList.addAll(tmpList);
+
+        for(File file :files) {
+            if (file.isDirectory()) {
+                filterImages(imageList, file, urlPrefix);
+            }
+        }
+    }
+
     @Override
     public List<String> getImages(Long inputOdssId, String subsystem, Boolean isInput, String dir) {
         // 检查input_oss_id是否存在