Эх сурвалжийг харах

3.4.2 update-1224 无试卷下载报错

xiaofei 5 сар өмнө
parent
commit
1ce3294b9c

+ 5 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DownloadServiceImpl.java

@@ -24,6 +24,8 @@ import com.qmth.teachcloud.common.enums.PageSizeEnum;
 import com.qmth.teachcloud.common.mapper.BasicAttachmentMapper;
 import com.qmth.teachcloud.common.service.AttachmentCommonService;
 import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
+import com.qmth.teachcloud.common.service.SysUserService;
+import com.qmth.teachcloud.common.util.Base64Util;
 import com.qmth.teachcloud.common.util.ConvertUtil;
 import com.qmth.distributed.print.business.util.ExamTaskUtil;
 import com.qmth.teachcloud.common.util.HtmlToPdfUtil;
@@ -49,7 +51,7 @@ public class DownloadServiceImpl implements DownloadService {
     @Resource
     ExamTaskMapper examTaskMapper;
     @Resource
-    ExamTaskDetailMapper examTaskDetailMapper;
+    SysUserService sysUserService;
 
     @Resource
     BasicAttachmentMapper basicAttachmentMapper;
@@ -157,7 +159,8 @@ public class DownloadServiceImpl implements DownloadService {
                 throw ExceptionResultEnum.ERROR.exception("没有可导出文件");
             }
             String zipName = examTask.getCourseName() + "未曝光试卷" + SystemConstant.ZIP_PREFIX;
-            attachmentCommonService.zipFiles(response, rootPath, zipName, fileList);
+            SysUser sysUser = sysUserService.getById(ServletUtil.getRequestUserId());
+            attachmentCommonService.zipFiles(response, rootPath, zipName, fileList, new String(Base64Util.decode(sysUser.getPassword())));
         } catch (Exception e) {
             log.error(SystemConstant.LOG_ERROR, e);
         } finally {

+ 2 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/AttachmentCommonService.java

@@ -27,6 +27,7 @@ public interface AttachmentCommonService {
      * @param filePath 文件根目录(存储zip文件路径)
      * @param zipName  zip文件名
      * @param files    需要下载的文件集合
+     * @param password
      */
-    public void zipFiles(HttpServletResponse response, String filePath, String zipName, List<File> files);
+    public void zipFiles(HttpServletResponse response, String filePath, String zipName, List<File> files, String password);
 }

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

@@ -92,7 +92,7 @@ public class AttachmentCommonServiceImpl implements AttachmentCommonService {
     }
 
     @Override
-    public void zipFiles(HttpServletResponse response, String filePath, String zipName, List<File> files) {
+    public void zipFiles(HttpServletResponse response, String filePath, String zipName, List<File> files, String password) {
         File fileTemp = SystemConstant.getFileTempDirVar(String.valueOf(System.currentTimeMillis()) + File.separator + SystemConstant.getNanoId(), SystemConstant.TEMP_PREFIX);
         filePath = StringUtils.isNotBlank(filePath) ? filePath : fileTemp.getPath();
         File rootFile = new File(filePath);
@@ -104,7 +104,8 @@ public class AttachmentCommonServiceImpl implements AttachmentCommonService {
         try {
             zipName = StringUtils.isNotBlank(zipName) ? zipName : SystemConstant.getNanoId() + SystemConstant.ZIP_PREFIX;
             zipFile = FileUtil.file(filePath, zipName);
-            Zip4jUtil.zipEncryptFile(zipFile.getPath(), files, SystemConstant.ZIP_ENCRYPT_PWD);
+            password = StringUtils.isNotBlank(password) ? password : SystemConstant.ZIP_ENCRYPT_PWD;
+            Zip4jUtil.zipEncryptFile(zipFile.getPath(), files, password);
             outputFile(response, zipFile, zipName);
         } catch (Exception e) {
             throw ExceptionResultEnum.ERROR.exception("下载失败");