From 9bce48a9f30f7d80c43f43f46d40df20fcb00e15 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期五, 03 二月 2023 09:39:59 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/controller/data/upload/CheckController.java |   76 +++++++++++++++++++++++++++++++++++---
 1 files changed, 70 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/lf/server/controller/data/upload/CheckController.java b/src/main/java/com/lf/server/controller/data/upload/CheckController.java
index ac4dd64..a08764f 100644
--- a/src/main/java/com/lf/server/controller/data/upload/CheckController.java
+++ b/src/main/java/com/lf/server/controller/data/upload/CheckController.java
@@ -5,6 +5,8 @@
 import com.lf.server.entity.all.ResponseMsg;
 import com.lf.server.entity.all.StaticData;
 import com.lf.server.entity.ctrl.FmeReqEntity;
+import com.lf.server.helper.HttpHelper;
+import com.lf.server.helper.PathHelper;
 import com.lf.server.helper.StringHelper;
 import com.lf.server.service.data.FmeService;
 import io.swagger.annotations.ApiImplicitParam;
@@ -12,9 +14,13 @@
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.File;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.List;
@@ -24,6 +30,9 @@
  * @author WWW
  */
 public class CheckController extends BaseController {
+    @Autowired
+    protected PathHelper pathHelper;
+
     @Autowired
     protected FmeService fmeService;
 
@@ -39,9 +48,7 @@
                 return fail("id涓嶈兘涓虹┖");
             }
 
-            Object obj = fmeService.getTaskStatus(id, req);
-
-            return obj;
+            return fmeService.getTaskStatus(id, req);
         } catch (Exception ex) {
             return fail(ex.getMessage(), null);
         }
@@ -57,7 +64,10 @@
         try {
             if (!StringHelper.isEmpty(id)) {
                 String url = fmeService.getDownloadUrl(id, req);
-                res.sendRedirect(url);
+
+                HttpHelper httpHelper = new HttpHelper();
+                // res.sendRedirect(url)
+                httpHelper.service(req, res, url, null);
             }
         } catch (Exception ex) {
             log.error(ex.getMessage(), ex);
@@ -66,11 +76,29 @@
 
     @SysLog()
     @ApiOperation(value = "鎻愪氦鏁版嵁璐ㄦ")
-    @GetMapping(value = "/uploadChecks")
-    public ResponseMsg<Object> uploadChecks(FmeReqEntity entity, HttpServletRequest req) {
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "entity", value = "FME璇锋眰瀹炰綋绫�", dataType = "FmeReqEntity", paramType = "body")
+    })
+    @ResponseBody
+    @PostMapping(value = "/uploadChecks")
+    public ResponseMsg<Object> uploadChecks(@RequestBody FmeReqEntity entity, HttpServletRequest req) {
         try {
             if (StringHelper.isEmpty(entity.names)) {
                 return fail("浠诲姟鍚嶇О涓嶈兘涓虹┖");
+            }
+            if (StringHelper.isEmpty(entity.zipPath)) {
+                return fail("璇烽�夋嫨寰呰川妫�鐨剒ip鏂囦欢");
+            }
+
+            entity.zipPath = getFullPath(entity.zipPath);
+            if (!isZipFile(entity.zipPath)) {
+                return fail("寰呰川妫�鐨剒ip鏂囦欢涓嶅瓨鍦�");
+            }
+            if (entity.names.contains(StaticData.CHECK_MAIN)) {
+                entity.wbsPath = getFullPath(entity.wbsPath);
+                if (!isXlsFile(entity.wbsPath)) {
+                    return fail("寰呰川妫�鐨刉BS鏂囦欢涓嶅瓨鍦�");
+                }
             }
 
             List<String> list = new ArrayList<>();
@@ -86,6 +114,42 @@
     }
 
     /**
+     * 鑾峰彇鏂囦欢璺緞
+     */
+    private String getFullPath(String filePath) {
+        return null == filePath ? null : pathHelper.getConfig().getTempPath() + File.separator + filePath;
+    }
+
+    /**
+     * 鏄�/鍚︿负Zip鏂囦欢
+     */
+    private boolean isZipFile(String filePath) {
+        if (null == filePath || !filePath.toLowerCase().endsWith(StaticData.ZIP)) {
+            return false;
+        }
+
+        File zipFile = new File(filePath);
+
+        return zipFile.exists() && !zipFile.isDirectory();
+    }
+
+    /**
+     * 鏄�/鍚︿负Excel鏂囦欢
+     */
+    private boolean isXlsFile(String filePath) {
+        if (null == filePath) {
+            return false;
+        }
+        if (!(filePath.toLowerCase().endsWith(StaticData.XLS) || filePath.toLowerCase().endsWith(StaticData.XLSX))) {
+            return false;
+        }
+
+        File zipFile = new File(filePath);
+
+        return zipFile.exists() && !zipFile.isDirectory();
+    }
+
+    /**
      * 鏂规硶璋冪敤
      */
     private String invoke(String name, FmeReqEntity entity, HttpServletRequest req) throws Exception {

--
Gitblit v1.9.3