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

3.1.0-归档管理原图获取方式变更,没有轨迹也可以下载原图bug

xiaof 2 жил өмнө
parent
commit
c2e4c43892

+ 3 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TSyncExamStudentScoreService.java

@@ -74,12 +74,13 @@ public interface TSyncExamStudentScoreService extends IService<TSyncExamStudentS
     /**
      * 创建动态轨迹图
      *
+     * @param b
      * @param tSyncExamStudentScore
      * @param imageTrajectoryEnum
-     * @param b
+     * @param id
      * @return
      */
-    public TSyncExamStudentScore createImageTrajectory(TSyncExamStudentScore tSyncExamStudentScore, ImageTrajectoryEnum imageTrajectoryEnum, boolean needSync);
+    public TSyncExamStudentScore createImageTrajectory(TSyncExamStudentScore tSyncExamStudentScore, ImageTrajectoryEnum imageTrajectoryEnum, boolean needSync, Long userId);
 
     /**
      * 生成zip文件

+ 4 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TSyncExamStudentScoreServiceImpl.java

@@ -112,13 +112,14 @@ public class TSyncExamStudentScoreServiceImpl extends ServiceImpl<TSyncExamStude
     /**
      * 创建动态轨迹图
      *
+     * @param b
      * @param tSyncExamStudentScore
      * @param imageTrajectoryEnum
-     * @param b
+     * @param id
      * @return
      */
     @Override
-    public TSyncExamStudentScore createImageTrajectory(TSyncExamStudentScore tSyncExamStudentScore, ImageTrajectoryEnum imageTrajectoryEnum, boolean needSync) {
+    public TSyncExamStudentScore createImageTrajectory(TSyncExamStudentScore tSyncExamStudentScore, ImageTrajectoryEnum imageTrajectoryEnum, boolean needSync, Long userId) {
         List<File> fileSourceList = new ArrayList<>(), fileTargetList = new ArrayList<>();
         boolean oss = dictionaryConfig.sysDomain().isOss();
         try {
@@ -128,7 +129,7 @@ public class TSyncExamStudentScoreServiceImpl extends ServiceImpl<TSyncExamStude
             stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
             List<String> trailUrlsList = tSyncExamStudentScore.getTrailUrls();
 
-            String hostUrl = SystemConstant.getLocalFileHost(dictionaryConfig.sysDomain().getFileHost());
+            String hostUrl = SystemConstant.getLocalFileHostByUserId(dictionaryConfig.sysDomain().getFileHost(), userId);
 
             if (needSync || Objects.isNull(tSyncExamStudentScore.getLocalSheetUrls()) || Objects.isNull(tSyncExamStudentScore.getTrajectoryUrls())) {
                 JSONArray jsonArray = JSONArray.parseArray(tSyncExamStudentScore.getSheetUrls());

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

@@ -165,7 +165,7 @@ public class PushLogicServiceImpl implements PushLogicService {
         if(!tSyncExamStudentScoreList.isEmpty()){
             try {
                 for (TSyncExamStudentScore tSyncExamStudentScore : tSyncExamStudentScoreList) {
-                    tSyncExamStudentScoreService.createImageTrajectory(tSyncExamStudentScore, ImageTrajectoryEnum.PREVIEW, true);
+                    tSyncExamStudentScoreService.createImageTrajectory(tSyncExamStudentScore, ImageTrajectoryEnum.PREVIEW, true, sysUser.getId());
                 }
             } catch (Exception e) {
 

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

@@ -1633,7 +1633,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 for (TSyncExamStudentScore t : tSyncExamStudentScoreList) {
                     try {
                         boolean update = Objects.isNull(t.getTrajectoryUrls()) ? true : false;
-                        t = tSyncExamStudentScoreService.createImageTrajectory(t, ImageTrajectoryEnum.DOWNLOAD, false);
+                        t = tSyncExamStudentScoreService.createImageTrajectory(t, ImageTrajectoryEnum.DOWNLOAD, false, sysUser.getId());
                         if (Objects.nonNull(t.getTrajectoryFileList())) {
                             List<File> fileList = t.getTrajectoryFileList();
 //                            fileList.removeAll(t.getTrajectoryFileList());

+ 2 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/TSyncExamStudentScoreController.java

@@ -188,9 +188,10 @@ public class TSyncExamStudentScoreController {
      * @return
      */
     private TSyncExamStudentScore downloadOrPreview(String id, ImageTrajectoryEnum imageTrajectoryEnum) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         TSyncExamStudentScore tSyncExamStudentScore = tSyncExamStudentScoreService.getById(SystemConstant.convertIdToLong(id));
         Optional.ofNullable(tSyncExamStudentScore).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未找到此考生信息或者考生信息已更新,请刷新数据后再试"));
-        tSyncExamStudentScore = tSyncExamStudentScoreService.createImageTrajectory(tSyncExamStudentScore, imageTrajectoryEnum, false);
+        tSyncExamStudentScore = tSyncExamStudentScoreService.createImageTrajectory(tSyncExamStudentScore, imageTrajectoryEnum, false, sysUser.getId());
         Optional.ofNullable(tSyncExamStudentScore.getTrajectoryUrls()).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("阅卷方式未使用轨迹阅卷,无轨迹图"));
         return tSyncExamStudentScore;
     }

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

@@ -642,6 +642,23 @@ public class SystemConstant {
         return hostUrl;
     }
 
+    /**
+     * 获取本地文件host
+     *
+     * @param hostUrl
+     * @param userId
+     * @return
+     */
+    public static String getLocalFileHostByUserId(String hostUrl, Long userId) {
+        CommonCacheService commonCacheService = SpringContextHolder.getBean(CommonCacheService.class);
+        if (hostUrl.contains("*")) {
+            SysUser sysUser = commonCacheService.userCache(userId);
+            BasicSchool basicSchool = commonCacheService.schoolCache(sysUser.getSchoolId());
+            hostUrl = hostUrl.replace("*", basicSchool.getCode());
+        }
+        return hostUrl;
+    }
+
     /**
      * 获取本地文件路径
      *