浏览代码

自定义附件预览

wanghaiwu 2 天之前
父节点
当前提交
8526f24409

+ 6 - 4
code/base/nckd-jimin-base-helper/src/main/java/nckd/base/helper/CusFileServiceExt.java

@@ -52,11 +52,13 @@ public class CusFileServiceExt extends FilePathService {
 
     @Override
     public InputStream beforeWriteToResponse(String originalPath, InputStream in, String userAgent) {
-        logger.info("--------------beforeWriteToResponse测试 "+originalPath+"----------------");
+        logger.info("--------------beforeWriteToResponse测试 "+originalPath+"----------------" + userAgent);
 
-//        if("preview".equals(userAgent)){
-//            in = FileSECUtils.processFileWithSEC(originalPath, in);
-//        }
+        if("preview".equals(userAgent)){
+            logger.info("--------------beforeWriteToResponse 解密 ");
+
+            in = FileSECUtils.processFileWithSEC(originalPath, in);
+        }
 
         return super.beforeWriteToResponse(originalPath, in, userAgent);
     }

+ 21 - 79
code/base/nckd-jimin-base-helper/src/main/java/nckd/base/helper/DefaultPreviewCusServiceImpl.java

@@ -15,6 +15,7 @@ import kd.bos.fileservice.impl.*;
 import kd.bos.fileservice.multiserver.Dispatcher;
 import kd.bos.fileservice.multiserver.DispatcherFactory;
 import kd.bos.fileservice.path.DecodeFileFactory;
+import kd.bos.fileservice.preview.DefaultPreviewServiceImpl;
 import kd.bos.fileservice.preview.PreviewService;
 import kd.bos.fileservice.utils.*;
 import kd.bos.logging.Log;
@@ -44,7 +45,7 @@ import java.util.zip.ZipFile;
 import java.util.zip.ZipOutputStream;
 
 
-public class DefaultPreviewCusServiceImpl  implements PreviewService {
+public class DefaultPreviewCusServiceImpl extends DefaultPreviewServiceImpl implements PreviewService {
     private static Log logger = LogFactory.getLog(DefaultPreviewCusServiceImpl.class);
     private static final String MAGIC_STRING = "frSheet";
     private static final String COOKIE = "Cookie";
@@ -102,8 +103,6 @@ public class DefaultPreviewCusServiceImpl  implements PreviewService {
      */
     @Override
     public Map<String, Object> previewWPS(String fileName, String path, String userAgent, Map<String, String> config) {
-        logger.info("testpreviewWPS...");
-
         path = DecodeFileFactory.getDecodeService().getDecodeFilePath(path);
         path = path.replaceAll("//", "/");
         InputStream in = null;
@@ -113,11 +112,8 @@ public class DefaultPreviewCusServiceImpl  implements PreviewService {
         long startTime = 0L;
         long endTime = 0L;
         Map result;
-        logger.info("testpreviewWPS..." + path + ", " + ext);
-
+        //  txt
         if (YunHomeService.isNotNeedDeal(ext)) {
-            logger.info("testpreviewWPS...10001001");
-
             Map<String, String> headerMap = new HashMap();
             if (userAgent != null) {
                 headerMap.put("USER-AGENT", userAgent);
@@ -139,63 +135,9 @@ public class DefaultPreviewCusServiceImpl  implements PreviewService {
             }
 
             return previewResult;
-        } else if (this.isPreviewcacheRefresh) {
-            logger.info("testpreviewWPS...10001002");
-
-            return this.getYunPanCovertRs(path, fileName, ext, userAgent, false);
         } else {
-            if (this.isPreviewcacheEnable) {
-                logger.info("testpreviewWPS...10001003");
-                startTime = System.currentTimeMillis();
-                String previewUrl = path + (!"xls".equalsIgnoreCase(ext) && !"xlsx".equalsIgnoreCase(ext) ? ".pdf" : ".zip");
-                String previewMetaUrl = path + ".meta";
-
-                try {
-                    Map<String, String> headerMap = new HashMap();
-                    headerMap.put("preview", "true");
-                    headerMap.put("preview.url", URLEncoder.encode(previewUrl, StandardCharsets.UTF_8.name()));
-                    headerMap.put("preview.metaUrl", URLEncoder.encode(previewMetaUrl, StandardCharsets.UTF_8.name()));
-                    Map<String, String> resHeader = new HashMap();
-
-                    logger.info("testpreviewWPS...10001003下载");
-
-                    in = this.fileService.download(path, headerMap, resHeader);
-
-                    logger.info("testpreviewWPS...10001003解密");
-
-                    in = FileSECUtils.processFileWithSEC(path, in);
-
-                    endTime = System.currentTimeMillis();
-                    if (!"xls".equalsIgnoreCase(ext) && !"xlsx".equalsIgnoreCase(ext)) {
-                        previewResult.put(PreviewParams.STATUS.getEnumName(), PreviewParams.PDF_SUCCESS.getEnumName());
-                        previewResult.put(PreviewParams.RESULT.getEnumName(), in);
-                        logger.info(String.format("从缓存中获取%s所耗费的时间为%s毫秒", fileName, endTime - startTime));
-                        return previewResult;
-                    }
-
-                    String id = (String)resHeader.get("cacheId");
-                    if (StringUtils.isNotEmpty(id)) {
-                        result = ExcelPreviewFactory.getExcelPreview().preview(id, in);
-                        if (result.containsKey("url")) {
-                            String accountId = TAUtil.getAccountId();
-                            String url = (String)result.get("url");
-                            url = url + "?kdcdc=" + accountId;
-                            result.put("url", url);
-                        }
-
-                        previewResult.put(PreviewParams.STATUS.getEnumName(), PreviewParams.XLSX_SUCCESS.getEnumName());
-                        previewResult.put(PreviewParams.RESULT.getEnumName(), result);
-                        logger.info(String.format("从缓存中获取%s所耗费的时间为%s毫秒", fileName, endTime - startTime));
-                        return previewResult;
-                    }
-                } catch (Exception var20) {
-                    logger.error("无法从文件服务器获取预览数据,执行getYunPanCovertRs方法,进行文件预览云盘转换{}", var20.getMessage());
-                }
-            }
-
-            logger.info("testpreviewWPS...10001004");
-
-            return this.getYunPanCovertRs(path, fileName, ext, userAgent, false);
+            // 需要转换
+            return super.preview(fileName, path, userAgent);
         }
     }
 
@@ -357,6 +299,8 @@ public class DefaultPreviewCusServiceImpl  implements PreviewService {
         InputStream in = null;
         String ext = fileName.substring(fileName.lastIndexOf(46) + 1);
 
+
+
         try {
             previewUrlPrefix = this.previewServerDispatcher.select();
         } catch (KDException var20) {
@@ -420,23 +364,21 @@ public class DefaultPreviewCusServiceImpl  implements PreviewService {
 
             logger.info("yunPanConvert...in:" + in);
 
-//            if (statusCode != 200) {
-//                try {
-//                    if (isLog()) {
-//                        logger.error("yunpan return msg:" + IOUtils.toString(in, "utf-8"));
-//                    }
-//
-//                    in.close();
-//                } catch (IOException var17) {
-//                    logger.error("logger error info fail");
-//                }
-//
-//                throw new KDException(BosErrorCode.previewFailed, new Object[]{this.getErrorMsg(statusCode)});
-//            } else {
-//                return in;
-//            }
+            if (statusCode != 200) {
+                try {
+                    if (isLog()) {
+                        logger.error("yunpan return msg:" + IOUtils.toString(in, "utf-8"));
+                    }
 
-            return in;
+                    in.close();
+                } catch (IOException var17) {
+                    logger.error("logger error info fail");
+                }
+
+                throw new KDException(BosErrorCode.previewFailed, new Object[]{this.getErrorMsg(statusCode)});
+            } else {
+                return in;
+            }
         }
     }