Jelajahi Sumber

生成zip修复

wangliang 2 tahun lalu
induk
melakukan
767db9031d

+ 3 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamCardServiceImpl.java

@@ -314,6 +314,9 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
                 String fileName = attachment.getName() + attachment.getType();
                 teachcloudCommonService.copyFile(sj.toString(), fileName, attachment);
             }
+            if (Objects.nonNull(fileTemp)) {
+                fileTemp.delete();
+            }
             // 压缩
             teachcloudCommonService.downloadFileAndZip(response, rootPath, time);
         } catch (Exception e) {

+ 3 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -1071,6 +1071,9 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             if (fileList.size() == 0) {
                 throw ExceptionResultEnum.ERROR.exception("没有可导出文件");
             }
+            if (Objects.nonNull(tempFile)) {
+                tempFile.delete();
+            }
             teachcloudCommonService.downloadFileAndZip(response, rootPath, rootPath);
         } catch (Exception e) {
             e.printStackTrace();

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java

@@ -1843,7 +1843,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             stringJoiner.add("下载管理_批量下载_" + System.currentTimeMillis()).add(SystemConstant.ZIP_PREFIX);
 
             String zipDirName = stringJoiner.toString().replaceAll("\\\\", SystemConstant.ORG_SPLIT);
-            zipFile = SystemConstant.getFileTempDirVar(SystemConstant.getNanoId(), SystemConstant.ZIP_PREFIX);
+            zipFile = SystemConstant.getFileTempDirVarForZip(SystemConstant.getNanoId(), SystemConstant.ZIP_PREFIX);
             zipLocalRootPath = zipFile.getParent() + File.separator + System.currentTimeMillis();
 
             ExamTaskPaperDto examTaskPaperDto = downloadService.findDownloadContent(schoolId, semesterId, examId, orgId, courseName, idSet);

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/PdfUtil.java

@@ -299,7 +299,7 @@ public class PdfUtil {
         stringJoiner = SystemConstant.getDirName(stringJoiner, UploadFileEnum.PAPER, true);
         stringJoiner.add(SystemConstant.getNanoId()).add(SystemConstant.PDF_PREFIX);
 
-        File zipFile = SystemConstant.getFileTempDirVar(stringJoiner.toString(), null);
+        File zipFile = SystemConstant.getFileTempDirVarForZip(stringJoiner.toString(), null);
         String outputPath = stringJoiner.toString();
         PdfReader reader = null;
         PdfStamper stamper = null;

+ 23 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -874,6 +874,29 @@ public class SystemConstant {
         return file;
     }
 
+    /**
+     * 获取临时文件
+     *
+     * @param fileName
+     * @param suffix
+     * @return
+     */
+    public static File getFileTempDirVarForZip(String fileName, String suffix) {
+        File fileTmpDir = new File(System.getProperty(SystemConstant.TMP_DIR));
+        if (!fileTmpDir.exists()) {
+            fileTmpDir.mkdirs();
+        }
+        String fileNameNew = null;
+        if (!StringUtils.isBlank(suffix)) {
+            fileNameNew = fileName + suffix;
+        } else {
+            fileNameNew = fileName;
+        }
+        File file = new File(System.getProperty(SystemConstant.TMP_DIR), fileNameNew);
+        log.info("getFileTempDirVar_absolutePath:{}", file.getAbsolutePath());
+        return file;
+    }
+
     /**
      * 获取dirname
      *

+ 3 - 3
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TeachcloudCommonServiceImpl.java

@@ -641,7 +641,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
     @Override
     public void downloadFileAndZip(HttpServletResponse response, String rootPath, List<File> files) {
         long time = System.currentTimeMillis();
-        File zipFile = SystemConstant.getFileTempDirVar(System.currentTimeMillis() + SystemConstant.ZIP_PREFIX, null);
+        File zipFile = SystemConstant.getFileTempDirVarForZip(System.currentTimeMillis() + SystemConstant.ZIP_PREFIX, null);
         try {
             Zip4jUtil.zipEncryptFile(zipFile.getPath(), files, SystemConstant.ZIP_ENCRYPT_PWD);
             outputFile(response, zipFile, String.valueOf(time));
@@ -664,7 +664,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
     @Override
     public void downloadFileAndZip(HttpServletResponse response, String rootPath, String zipRootPath) {
         long time = System.currentTimeMillis();
-        File zipFile = SystemConstant.getFileTempDirVar(time + SystemConstant.ZIP_PREFIX, null);
+        File zipFile = SystemConstant.getFileTempDirVarForZip(time + SystemConstant.ZIP_PREFIX, null);
         try {
             Zip4jUtil.zipEncryptFile(zipFile.getPath(), zipRootPath, SystemConstant.ZIP_ENCRYPT_PWD);
             outputFile(response, zipFile, String.valueOf(time));
@@ -680,7 +680,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
 
     @Override
     public void downloadFileAndZip(HttpServletResponse response, String rootPath, long time) {
-        File zipFile = SystemConstant.getFileTempDirVar(time + SystemConstant.ZIP_PREFIX, null);
+        File zipFile = SystemConstant.getFileTempDirVarForZip(time + SystemConstant.ZIP_PREFIX, null);
         try {
             Zip4jUtil.zipEncryptFile(zipFile.getPath(), rootPath, SystemConstant.ZIP_ENCRYPT_PWD);
             outputFile(response, zipFile, String.valueOf(time));