瀏覽代碼

merge from release_v5.0.6

deason 2 月之前
父節點
當前提交
6eef8782df

+ 6 - 3
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamScoreDataCloudServiceProvider.java

@@ -588,18 +588,21 @@ public class ExamScoreDataCloudServiceProvider extends ControllerSupport impleme
             return resp;
         }
 
-        //如果查不到有效的分数集合,则将所有的考试分数集合均返回
-        resp.setAbsent(false);
+        //如果查不到最终成绩,再查考试记录的有效的分数集合
         List<ExamScoreEntity> allExamScoreList = examScoreService.getAllExamScoreList(req.getExamId(), identityNumber, courseId);
-        if (allExamScoreList == null) {
+        if (allExamScoreList == null || allExamScoreList.isEmpty()) {
+            resp.setAbsent(true);// 若一条记录都没有,算缺考
             return resp;
         }
 
+        //否则不算缺考,将所有的考试分数集合均返回
+        resp.setAbsent(false);
         List<ScoreDataBean> scoreDataBeanList = new ArrayList<>();
         for (ExamScoreEntity scoreEntity : allExamScoreList) {
             scoreDataBeanList.add(buildScoreDataBean(identityNumber, courseBean, scoreEntity.getTotalScore(), scoreEntity.getExamRecordDataId()));
         }
         resp.setAllScoreDataBeanList(scoreDataBeanList);
+
         resp.setAudit(scoreDataBeanList.stream().anyMatch(p -> p.getIsAudit() == null || !p.getIsAudit()));
         resp.setIllegality(scoreDataBeanList.stream().anyMatch(p -> p.getIsIllegality() != null && p.getIsIllegality()));
         return resp;

+ 30 - 30
examcloud-core-oe-admin-dao/src/main/java/cn/com/qmth/examcloud/core/oe/admin/dao/ExportTaskRepo.java

@@ -5,9 +5,8 @@
 
 package cn.com.qmth.examcloud.core.oe.admin.dao;
 
-import java.util.Date;
-import java.util.List;
-
+import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExportTaskEntity;
+import cn.com.qmth.examcloud.core.oe.admin.dao.enums.ExportTaskStatus;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Modifying;
@@ -16,34 +15,35 @@ import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
 
-import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExportTaskEntity;
-import cn.com.qmth.examcloud.core.oe.admin.dao.enums.ExportTaskStatus;
+import java.util.Date;
+import java.util.List;
 
 @Repository
 public interface ExportTaskRepo
-		extends JpaRepository<ExportTaskEntity, Long>, JpaSpecificationExecutor<ExportTaskEntity> {
-
-	@Transactional
-	@Modifying
-	@Query("update ExportTaskEntity set status=:status, statusMsg=:statusMsg, filePath=:filePath, updateTime=:updateTime where id=:id")
-	int updateStatusAndStatusMsgById(@Param("id") Long id, @Param("status") ExportTaskStatus status,
-			@Param("statusMsg") String statusMsg, @Param("filePath") String filePath,
-			@Param("updateTime") Date updateTime);
-
-	@Query(nativeQuery = true, value = "select * from ec_oe_export_task t where t.status='WAITING' ORDER BY t.id limit 1")
-	public ExportTaskEntity findExportTaskToDispose();
-
-	@Query(nativeQuery = true, value = "select * from ec_oe_export_task t where t.status='WAITING' ORDER BY t.id limit 5")
-	public List<ExportTaskEntity> findExportTaskToDisposes();
-
-	@Transactional
-	@Modifying
-	@Query("update ExportTaskEntity set status=:status, startTime=:startTime where id=:id")
-	int startExportTask(@Param("id") Long id, @Param("status") ExportTaskStatus status,
-			@Param("startTime") Date startTime);
-
-	@Transactional
-	@Modifying
-	@Query("update ExportTaskEntity set endTime=:endTime where id=:id")
-	int endExportTask(@Param("id") Long id, @Param("endTime") Date endTime);
+        extends JpaRepository<ExportTaskEntity, Long>, JpaSpecificationExecutor<ExportTaskEntity> {
+
+    @Transactional
+    @Modifying
+    @Query("update ExportTaskEntity set status=:status, statusMsg=:statusMsg, filePath=:filePath, updateTime=:updateTime where id=:id")
+    int updateStatusAndStatusMsgById(@Param("id") Long id, @Param("status") ExportTaskStatus status,
+                                     @Param("statusMsg") String statusMsg, @Param("filePath") String filePath,
+                                     @Param("updateTime") Date updateTime);
+
+    @Query(nativeQuery = true, value = "select * from ec_oe_export_task t where t.status='WAITING' ORDER BY t.id limit 1")
+    public ExportTaskEntity findExportTaskToDispose();
+
+    @Query(nativeQuery = true, value = "select * from ec_oe_export_task t where t.status='WAITING' ORDER BY t.id limit 5")
+    public List<ExportTaskEntity> findExportTaskToDisposes();
+
+    @Transactional
+    @Modifying
+    @Query("update ExportTaskEntity set status=:status, startTime=:startTime where id=:id")
+    int startExportTask(@Param("id") Long id, @Param("status") ExportTaskStatus status,
+                        @Param("startTime") Date startTime);
+
+    @Transactional
+    @Modifying
+    @Query("update ExportTaskEntity set endTime=:endTime where id=:id")
+    int endExportTask(@Param("id") Long id, @Param("endTime") Date endTime);
+
 }

+ 2 - 3
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/exporttask/ExportTask.java

@@ -45,9 +45,8 @@ public class ExportTask extends Thread {
 
                 for (ExportTaskEntity task : tasks) {
                     String cacheLock = CacheConstants.LOCK_OE_EXPORT_TASK + task.getId();
-
-                    Boolean lock = redisClient.setIfAbsent(cacheLock, cacheLock, cacheLockTimeout);
-                    if (!lock) {
+                    Boolean tryLock = redisClient.setIfAbsent(cacheLock, cacheLock, cacheLockTimeout);
+                    if (!tryLock) {
                         continue;
                     }
 

+ 7 - 8
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/impl/ExportTaskServiceImpl.java

@@ -59,13 +59,13 @@ public class ExportTaskServiceImpl implements ExportTaskService {
     private UserCloudService userCloudService;
 
     @Override
-    public ExportTaskEntity findExportTaskToDispose() {
-        return exportTaskRepo.findExportTaskToDispose();
+    public List<ExportTaskEntity> findExportTaskToDisposes() {
+        return exportTaskRepo.findExportTaskToDisposes();
     }
 
     @Override
-    public List<ExportTaskEntity> findExportTaskToDisposes() {
-        return exportTaskRepo.findExportTaskToDisposes();
+    public ExportTaskEntity findExportTaskToDispose() {
+        return exportTaskRepo.findExportTaskToDispose();
     }
 
     @Override
@@ -226,8 +226,7 @@ public class ExportTaskServiceImpl implements ExportTaskService {
             return new PageImpl<>(new ArrayList<>(), pageable, 0);
         }
 
-        Set<Long> examIds = page.getContent().stream().filter(e -> e.getExamId() != null).map(e -> e.getExamId())
-                .collect(Collectors.toSet());
+        Set<Long> examIds = page.getContent().stream().filter(e -> e.getExamId() != null).map(e -> e.getExamId()).collect(Collectors.toSet());
         Map<Long, ExamBean> examMaps;
         if (CollectionUtils.isNotEmpty(examIds)) {
             GetExamMapsReq examsReq = new GetExamMapsReq();
@@ -244,8 +243,8 @@ public class ExportTaskServiceImpl implements ExportTaskService {
         GetUserResp namesResp = userCloudService.getUser(reqUser);
         String createName = namesResp.getUserBean().getName();
 
-        List<ExportTaskListResp> list = page.getContent().stream()
-                .map(entity -> ofExportTask(entity, examMaps, createName)).collect(Collectors.toList());
+        List<ExportTaskListResp> list = page.getContent()
+                .stream().map(entity -> ofExportTask(entity, examMaps, createName)).collect(Collectors.toList());
         return new PageImpl<>(list, pageable, page.getTotalElements());
     }
 

+ 2 - 3
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/impl/OfflineExamServiceImpl.java

@@ -380,9 +380,8 @@ public class OfflineExamServiceImpl implements OfflineExamService {
         if (CollectionUtils.isNotEmpty(fileAnswerList)) {
             for (ExamRecordFileAnswerEntity fileAnswer : fileAnswerList) {
                 examRecordFileAnswerRepo.delete(fileAnswer);
-
-                String filePath = FssHelper.fixFilePath(fileAnswer.getFileUrl());
-                FssFactory.getInstance().deleteFile(filePath);
+                // String filePath = FssHelper.fixFilePath(fileAnswer.getFileUrl());
+                // FssFactory.getInstance().deleteFile(filePath);
             }
         }