|
@@ -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;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|