From bb4857fdf86492437e4e6431c01c143ad571a2d9 Mon Sep 17 00:00:00 2001
From: 6c <420680616@qq.com>
Date: 星期三, 04 三月 2026 18:20:28 +0800
Subject: [PATCH] 无法预览的不显示预览按钮

---
 src/main/java/com/product/file/config/FileCode.java                  |    2 +-
 src/main/java/com/product/file/service/FileManagerService.java       |   24 ++++++++++++++++++++++++
 src/main/java/com/product/file/controller/FileManagerController.java |   30 ++++++++++++++++++++++++++++++
 3 files changed, 55 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/product/file/config/FileCode.java b/src/main/java/com/product/file/config/FileCode.java
index 1324be6..516af70 100644
--- a/src/main/java/com/product/file/config/FileCode.java
+++ b/src/main/java/com/product/file/config/FileCode.java
@@ -86,7 +86,7 @@
     CLUSTER_FILE_SYNC_CHECK_FAIL("闆嗙兢鏂囦欢鍚屾楠岃瘉澶辫触", ModuleEnum.FILE.getValue() + "061"),
     FILE_TRANSFER_BYTE_ARRAY_FAIL("鏂囦欢杞寲涓哄瓧鑺傛暟缁勫け璐�", ModuleEnum.FILE.getValue() + "062"),
     CLUSTER_FILE_SYNC_ACCEPT_FAIL("闆嗙兢鏂囦欢鍚屾鏂规硶鎺ユ敹澶辫触", ModuleEnum.FILE.getValue() + "063"),
-
+    CHECK_PREVIEW_FAIL("楠岃瘉鑳藉惁鍦ㄧ嚎棰勮澶辫触", ModuleEnum.FILE.getValue() + "064"),
     ;
 
     private String text;
diff --git a/src/main/java/com/product/file/controller/FileManagerController.java b/src/main/java/com/product/file/controller/FileManagerController.java
index d09ef13..ea1c61f 100644
--- a/src/main/java/com/product/file/controller/FileManagerController.java
+++ b/src/main/java/com/product/file/controller/FileManagerController.java
@@ -439,4 +439,34 @@
             return error(FileCode.CLUSTER_FILE_SYNC_ACCEPT_FAIL.getValue(), FileCode.CLUSTER_FILE_SYNC_ACCEPT_FAIL.getText() + ":" + BaseUtil.getErrorInfo(e).substring(0, 500));
         }
     }
+
+    /**
+     * 闆嗙兢鏂囦欢鍚屾鏂规硶-鎺ユ敹
+     * @return 缁撴灉
+     */
+    @RequestMapping(value = "/check-preview/{version}", method = RequestMethod.POST)
+    @ApiVersion(1)
+    public String checkPreview(HttpServletRequest request, HttpServletResponse response) {
+        try {
+            FieldSetEntity fse = null;
+            Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
+            RequestParameterEntity rpe = (RequestParameterEntity) bean;
+            if (null != rpe && null != rpe.getFormData()) {
+                fse = rpe.getFormData();
+            }
+            if (fse == null) {
+                SpringMVCContextHolder.getSystemLogger().error(FileCode.FORM_NODATA.getValue(), FileCode.FORM_NODATA.getText());
+                return this.error(FileCode.FORM_NODATA.getValue(), FileCode.FORM_NODATA.getText());
+            }
+            return OK(fileManagerService.checkPreview(fse));
+        } catch (BaseException e) {
+            SpringMVCContextHolder.getSystemLogger().error(e);
+            e.printStackTrace();
+            return error(e.getCode(), e.getMessage());
+        } catch (Exception e) {
+            SpringMVCContextHolder.getSystemLogger().error(e);
+            e.printStackTrace();
+            return error(FileCode.CHECK_PREVIEW_FAIL);
+        }
+    }
 }
diff --git a/src/main/java/com/product/file/service/FileManagerService.java b/src/main/java/com/product/file/service/FileManagerService.java
index 3e8aa1f..b88053c 100644
--- a/src/main/java/com/product/file/service/FileManagerService.java
+++ b/src/main/java/com/product/file/service/FileManagerService.java
@@ -1250,4 +1250,28 @@
 		return flag;
 	}
 
+    /**
+     * 楠岃瘉鏄惁鍙互棰勮
+     * @param fse
+     * @return
+     */
+    public Object checkPreview(FieldSetEntity fse) {
+        String fileName = fse.getString("file_name");
+        boolean allowPreviewFlag = Global.getPropertyToBoolean("file.view.online", "true");
+        List<String> canTransferFormatList = Lists.newArrayList(Arrays.asList(Global.getSystemConfig("can.transfer.format", "").split(",")));
+        List<String> canDirectPreviewList = Lists.newArrayList(Arrays.asList(Global.getSystemConfig("can.direct.view.online.format", "").split(",")));
+        List<String> canPreviewList = Lists.newArrayList();
+        canPreviewList.addAll(canTransferFormatList);
+        canPreviewList.addAll(canDirectPreviewList);
+        if (StringUtils.isEmpty(fileName)) {
+            if (allowPreviewFlag) {
+                return BaseUtil.collection2String(canPreviewList);
+            } else {
+                return "";
+            }
+        } else {
+            String tail = fileName.substring(fileName.lastIndexOf(".") + 1);
+            return allowPreviewFlag && canPreviewList.contains(tail);
+        }
+    }
 }

--
Gitblit v1.9.2