wangliang vor 3 Jahren
Ursprung
Commit
7301d13243

+ 3 - 3
themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamWaitDto.java

@@ -23,7 +23,7 @@ public class TEExamWaitDto implements Serializable {
 
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(name = "考试场次id")
-    private Long examActivityId;//考试场次id
+    private String examActivityId;//考试场次id
 
     @ApiModelProperty(name = "考试名称")
     private String name;//考试名称
@@ -42,11 +42,11 @@ public class TEExamWaitDto implements Serializable {
         this.code = code;
     }
 
-    public Long getExamActivityId() {
+    public String getExamActivityId() {
         return examActivityId;
     }
 
-    public void setExamActivityId(Long examActivityId) {
+    public void setExamActivityId(String examActivityId) {
         this.examActivityId = examActivityId;
     }
 

+ 9 - 1
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEExamServiceImpl.java

@@ -151,7 +151,15 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
     public List<TEExamWaitDto> getWaitingExam(Long studentId, Long examId, Long orgId) {
         List<TEExamWaitDto> list = teExamMapper.getWaitingExam(studentId, examId, orgId);
         if (Objects.nonNull(list) && list.size() > 0) {
-            Set<Long> examActivityIds = list.stream().map(s -> s.getExamActivityId()).collect(Collectors.toSet());
+            Set<String> examActivityIdsTemp = new LinkedHashSet<>();
+            for (TEExamWaitDto t : list) {
+                if (t.getExamActivityId().indexOf(",") != -1) {
+                    examActivityIdsTemp.addAll(Arrays.asList(t.getExamActivityId().split(",")));
+                } else {
+                    examActivityIdsTemp.add(t.getExamActivityId());
+                }
+            }
+            Set<Long> examActivityIds = examActivityIdsTemp.stream().map(s -> Long.parseLong(s)).collect(Collectors.toSet());
             List<TEExamActivityWaitDto> teExamActivityWaitList = teExamActivityService
                     .getWaitingExam(studentId, examActivityIds, null);
             Map<Long, Set<TEExamActivityWaitDto>> map = new HashMap<>();

+ 7 - 1
themis-business/src/main/java/com/qmth/themis/business/service/impl/TOeExamRecordServiceImpl.java

@@ -1299,7 +1299,13 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
             } else {
                 Integer time = breakExpireSeconds.intValue() / 60;
                 if (time.intValue() >= 30) {
-                    level = "30m";
+                    if (time.intValue() >= 30 && time.intValue() < 60) {
+                        level = "30m";
+                    } else if (time.intValue() >= 60 && time.intValue() < 120) {
+                        level = "1h";
+                    } else {
+                        level = "2h";
+                    }
                 } else {
                     for (String s : list) {
                         Integer value = Integer.parseInt(s.substring(0, s.length() - 1));

+ 2 - 1
themis-business/src/main/resources/mapper/TEExamMapper.xml

@@ -149,7 +149,7 @@
         distinct tee.id,
         tee.name,
         tee.code,
-        teea.id as examActivityId,
+        group_concat(distinct teea.id) as examActivityId,
         <!--FLOOR((teea.finish_time - teea.start_time) / (24*60*60*1000)) as diffSum1,
         FLOOR(((teea.finish_time - teea.start_time) / (24*60*60*1000) - (unix_timestamp(current_timestamp()) * 1000 - teea.start_time) / (24*60*60*1000))) as reallyTime1,-->
         datediff(FROM_UNIXTIME(teea.finish_time / 1000,'%Y-%m-%d %H:%i:%s'),FROM_UNIXTIME(teea.start_time / 1000,'%Y-%m-%d %H:%i:%s')) as diffSum,
@@ -176,6 +176,7 @@
             </if>
             <!--and IF(tee.mode = 'TOGETHER', teea.start_time >= date_sub(now(),
             interval IFNULL(teea.opening_seconds, tee.opening_seconds) second),1 = 1 )-->
+            group by tee.id,tee.name,tee.code,diffSum,reallyTime
         </where>
         ) t
         <where>