xiatian 3 жил өмнө
parent
commit
2eeec31dc1

+ 12 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/ExamAuditInfo.java

@@ -235,6 +235,9 @@ public class ExamAuditInfo implements JsonSerializable {
      * Ip
      */
     private String ip;
+    
+    @ExcelProperty(name = "切屏次数", width = 30, index = 15)
+    private Integer switchScreenCount;
 
     public Long getId() {
         return id;
@@ -564,4 +567,13 @@ public class ExamAuditInfo implements JsonSerializable {
         this.ip = ip;
     }
 
+	public Integer getSwitchScreenCount() {
+		return switchScreenCount;
+	}
+
+	public void setSwitchScreenCount(Integer switchScreenCount) {
+		this.switchScreenCount = switchScreenCount;
+	}
+
+    
 }

+ 1 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/ExamAuditMapper.java

@@ -44,6 +44,7 @@ public class ExamAuditMapper {
         columns.append("record.face_verify_result as faceVerifyResult,");
         columns.append("record.start_time as paperStartTime,");
         columns.append("record.end_time as paperSubmitTime,");
+        columns.append("record.switch_screen_count as switchScreenCount,");
         columns.append("GROUP_CONCAT(DISTINCT process.source_ip) ip");
         return columns.toString();
     }

+ 23 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/ExamAuditQuery.java

@@ -91,6 +91,12 @@ public class ExamAuditQuery implements JsonSerializable {
      * 查询或导出  select  export
      */
     private SelectType selectType;
+    
+    @ApiModelProperty("切屏次数起始")
+    private Integer switchScreenCountStart;
+    
+    @ApiModelProperty("切屏次数截止")
+    private Integer switchScreenCountEnd;
 
     public Integer getPageNo() {
         return pageNo;
@@ -280,4 +286,21 @@ public class ExamAuditQuery implements JsonSerializable {
         this.ip = ip;
     }
 
+	public Integer getSwitchScreenCountStart() {
+		return switchScreenCountStart;
+	}
+
+	public void setSwitchScreenCountStart(Integer switchScreenCountStart) {
+		this.switchScreenCountStart = switchScreenCountStart;
+	}
+
+	public Integer getSwitchScreenCountEnd() {
+		return switchScreenCountEnd;
+	}
+
+	public void setSwitchScreenCountEnd(Integer switchScreenCountEnd) {
+		this.switchScreenCountEnd = switchScreenCountEnd;
+	}
+
+    
 }

+ 1 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examrecord/ExamRecordEntityConvert.java

@@ -76,6 +76,7 @@ public class ExamRecordEntityConvert {
         info.setStudentName(record.getStudentName());
         info.setIdentityNumber(record.getIdentityNumber());
         info.setCourseId(record.getCourseId());
+        info.setSwitchScreenCount(record.getSwitchScreenCount());
 
         long courseId = record.getCourseId();
         CourseCacheBean courseBean = ExamCacheTransferHelper.getCachedCourse(courseId);

+ 12 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examrecord/ExamRecordInfo.java

@@ -355,6 +355,9 @@ public class ExamRecordInfo implements JsonSerializable {
     private String auditUserName;
 
     private Boolean hasVirtual;
+    
+    @ExcelProperty(name = "切屏次数", width = 30, index = 34)
+    private Integer switchScreenCount;
 
     public Long getId() {
         return id;
@@ -854,4 +857,13 @@ public class ExamRecordInfo implements JsonSerializable {
         this.hasVirtual = hasVirtual;
     }
 
+	public Integer getSwitchScreenCount() {
+		return switchScreenCount;
+	}
+
+	public void setSwitchScreenCount(Integer switchScreenCount) {
+		this.switchScreenCount = switchScreenCount;
+	}
+
+    
 }

+ 23 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examrecord/ExamRecordQuery.java

@@ -117,6 +117,12 @@ public class ExamRecordQuery implements JsonSerializable {
 
     @ApiModelProperty("审核人")
     private String auditUserName;
+    
+    @ApiModelProperty("切屏次数起始")
+    private Integer switchScreenCountStart;
+    
+    @ApiModelProperty("切屏次数截止")
+    private Integer switchScreenCountEnd;
 
     public ExamRecordQuery addRecordStatus(String recordStatus) {
         if (recordStatuses == null) {
@@ -391,4 +397,21 @@ public class ExamRecordQuery implements JsonSerializable {
         this.auditUserName = auditUserName;
     }
 
+	public Integer getSwitchScreenCountStart() {
+		return switchScreenCountStart;
+	}
+
+	public void setSwitchScreenCountStart(Integer switchScreenCountStart) {
+		this.switchScreenCountStart = switchScreenCountStart;
+	}
+
+	public Integer getSwitchScreenCountEnd() {
+		return switchScreenCountEnd;
+	}
+
+	public void setSwitchScreenCountEnd(Integer switchScreenCountEnd) {
+		this.switchScreenCountEnd = switchScreenCountEnd;
+	}
+
+    
 }

+ 6 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/impl/ExamAuditServiceImpl.java

@@ -241,6 +241,12 @@ public class ExamAuditServiceImpl implements ExamAuditService {
                 .innerJoin("ec_oe_exam_record_data").as("record").on("record.id", "audit.exam_record_data_id")
                 .leftJoin("ec_oe_exam_process_record").as("process").on("record.id", "process.exam_record_data_id")
                 .where().notEq("record.exam_record_status", ExamRecordStatus.EXAM_INVALID.name());
+        if (query.getSwitchScreenCountStart() != null) {
+            wrapper.and().gte("record.switch_screen_count", query.getSwitchScreenCountStart());
+        }
+        if (query.getSwitchScreenCountEnd() != null) {
+            wrapper.and().lte("record.switch_screen_count", query.getSwitchScreenCountEnd());
+        }
         if (query.getOrgId() != null) {
             wrapper.and().eq("record.org_id", query.getOrgId());
         }

+ 9 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/impl/ExamRecordServiceImpl.java

@@ -147,6 +147,7 @@ public class ExamRecordServiceImpl implements ExamRecordService {
             "record_data.paper_type paperType," +
             "record_data.paper_struct_id paperStructId," +
             "record_data.info_collector infoCollector," +
+            "record_data.switch_screen_count switchScreenCount," +
             "audit.audit_user_name audit_user_name," +
             "GROUP_CONCAT(DISTINCT process.source_ip) ip," +
             "eoes.objective_score objectiveTotalScore," +
@@ -203,6 +204,7 @@ public class ExamRecordServiceImpl implements ExamRecordService {
             "record_data.paper_type paper_type," +
             "record_data.paper_struct_id paper_struct_id," +
             "record_data.info_collector info_collector," +
+            "record_data.switch_screen_count switchScreenCount," +
             "audit.audit_user_name audit_user_name," +
             "GROUP_CONCAT(DISTINCT process.source_ip) ip" +
             " from ec_oe_exam_record_data record_data " +
@@ -390,6 +392,7 @@ public class ExamRecordServiceImpl implements ExamRecordService {
         examRecordData.setBaiduFaceLivenessSuccessPercent(rs.getDouble("baidu_face_liveness_success_percent"));
         examRecordData.setIp(rs.getString("ip"));
         examRecordData.setAuditUserName(rs.getString("audit_user_name"));
+        examRecordData.setSwitchScreenCount(rs.getInt("switchScreenCount"));
 
         return examRecordData;
     }
@@ -411,6 +414,12 @@ public class ExamRecordServiceImpl implements ExamRecordService {
      */
     private StringBuilder buildExamRecordCommonSelectCondition(ExamRecordQuery query) {
         StringBuilder sql = new StringBuilder();
+        if (query.getSwitchScreenCountStart() != null) {
+        	sql.append(" and record_data.switch_screen_count >= " +query.getSwitchScreenCountStart());
+        }
+        if (query.getSwitchScreenCountEnd() != null) {
+        	sql.append(" and record_data.switch_screen_count <= " +query.getSwitchScreenCountEnd());
+        }
         if (query.getExamRecordDataId() != null) {
             sql.append(" and record_data.id = " + query.getExamRecordDataId());
         }