wangliang преди 4 години
родител
ревизия
2e7c90adc4

+ 17 - 20
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEExamServiceImpl.java

@@ -20,10 +20,7 @@ import com.qmth.themis.business.entity.TEExam;
 import com.qmth.themis.business.entity.TOeExamRecord;
 import com.qmth.themis.business.enums.*;
 import com.qmth.themis.business.service.*;
-import com.qmth.themis.business.util.OssUtil;
-import com.qmth.themis.business.util.RedisUtil;
-import com.qmth.themis.business.util.ServletUtil;
-import com.qmth.themis.business.util.TencentYunUtil;
+import com.qmth.themis.business.util.*;
 import com.qmth.themis.common.exception.BusinessException;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -201,11 +198,11 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
             String structurl = OssUtil.getUrlForPrivateBucket(systemConfig.getOssEnv(3), ep.getStructPath());
             prepare.setPaperUrl(paperurl);
             prepare.setStructUrl(structurl);
-            if (examCacheBean.getMonitorAudioEnable()) {
-                prepare.setMonitorKey(String.valueOf(recordId));
-                prepare.setMonitorUserId("s_" + tbSession.getId());
-                prepare.setMonitorUserSig(tencentYunUtil.getSign(prepare.getMonitorUserId(), SystemConstant.TENCENT_EXPIRE_TIME));
-            }
+//            if (examCacheBean.getMonitorAudioEnable()) {
+            prepare.setMonitorKey(String.valueOf(recordId));
+            prepare.setMonitorUserId("s_" + tbSession.getId());
+            prepare.setMonitorUserSig(tencentYunUtil.getSign(prepare.getMonitorUserId(), SystemConstant.TENCENT_EXPIRE_TIME));
+//            }
             return prepare;
         }
         if (es.getLeftExamCount() == 0) {
@@ -273,11 +270,11 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
         prepare.setPaperUrl(paperurl);
         prepare.setStructUrl(structurl);
         ExamCacheBean examCacheBean = this.getExamCacheBean(es.getExamId());
-        if (examCacheBean.getMonitorAudioEnable()) {
-            prepare.setMonitorKey(String.valueOf(recordId));
-            prepare.setMonitorUserId("s_" + tbSession.getId());
-            prepare.setMonitorUserSig(tencentYunUtil.getSign(prepare.getMonitorUserId(), SystemConstant.TENCENT_EXPIRE_TIME));
-        }
+//        if (examCacheBean.getMonitorAudioEnable()) {
+        prepare.setMonitorKey(String.valueOf(recordId));
+        prepare.setMonitorUserId("s_" + tbSession.getId());
+        prepare.setMonitorUserSig(tencentYunUtil.getSign(prepare.getMonitorUserId(), SystemConstant.TENCENT_EXPIRE_TIME));
+//        }
 
         ExamCacheBean exam = getExamCacheBean(es.getExamId());
         Integer breakResumeCount = exam.getBreakResumeCount();
@@ -592,16 +589,16 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
         ret.setAudioPlayCount(ep.getAudioPlayCount());
         // TODO 9527
         ExamCacheBean examCacheBean = this.getExamCacheBean(es.getExamId());
-        if (examCacheBean.getMonitorAudioEnable()) {
-            ret.setMonitorKey(recordId.toString());
-            ret.setMonitorUserId("s_" + tbSession.getId());
-            ret.setMonitorUserSig(tencentYunUtil.getSign(ret.getMonitorUserId(), SystemConstant.TENCENT_EXPIRE_TIME));
-        }
+//        if (examCacheBean.getMonitorAudioEnable()) {
+        ret.setMonitorKey(recordId.toString());
+        ret.setMonitorUserId("s_" + tbSession.getId());
+        ret.setMonitorUserSig(tencentYunUtil.getSign(ret.getMonitorUserId(), SystemConstant.TENCENT_EXPIRE_TIME));
+//        }
 
         ExamStudentPaperStructCacheBean struct = (ExamStudentPaperStructCacheBean) redisUtil
                 .get(RedisKeyHelper.studentPaperStructKey(recordId));
         if (struct != null) {
-            ret.setStudentPaperStruct(struct.getContent());
+            ret.setStudentPaperStruct(JacksonUtil.parseJson(struct.getContent()));
         }
         Map<String, ExamStudentAnswerCacheBean> answers = redisUtil
                 .getHashEntries(RedisKeyHelper.examAnswerKey(recordId));

+ 6 - 6
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEMobileServiceImpl.java

@@ -111,7 +111,7 @@ public class TEMobileServiceImpl implements TEMobileService {
     private MobileAuthorizationBean monitorAuthorization(MobileModeEnum mode, String code) {
         TBSession tbSession = (TBSession) ServletUtil.getRequestSession();
         Long recordId = MobileAuthCacheUtil.getRecordId(mode, code);
-        String monitorKey = MobileAuthCacheUtil.getMonitorKey(mode, code);
+//        String monitorKey = MobileAuthCacheUtil.getMonitorKey(mode, code);
         Source monitorVideoSource = MobileAuthCacheUtil.getMonitorVideoSource(mode, code);
         Boolean monitorAudioEnable = MobileAuthCacheUtil.getMonitorAudioEnable(mode, code);
         if (MobileAuthCacheUtil.getMode(mode, code) == null) {
@@ -119,13 +119,13 @@ public class TEMobileServiceImpl implements TEMobileService {
         }
         MobileAuthorizationMonitorBean ret = new MobileAuthorizationMonitorBean();
         ret.setRecordId(recordId);
-        ret.setMonitorKey(monitorKey);
+        ret.setMonitorKey(String.valueOf(recordId));
         ret.setMonitorVideoSource(monitorVideoSource);
         ret.setMonitorAudioEnable(monitorAudioEnable);
-        if (monitorAudioEnable) {
-            ret.setMonitorUserId("s_" + tbSession.getId());
-            ret.setMonitorUserSig(tencentYunUtil.getSign(ret.getMonitorUserId(), SystemConstant.TENCENT_EXPIRE_TIME));
-        }
+//        if (monitorAudioEnable) {
+        ret.setMonitorUserId("s_" + tbSession.getId());
+        ret.setMonitorUserSig(tencentYunUtil.getSign(ret.getMonitorUserId(), SystemConstant.TENCENT_EXPIRE_TIME));
+//        }
         return ret;
     }
 

+ 18 - 14
themis-business/src/main/resources/mapper/TOeExamRecordMapper.xml

@@ -81,21 +81,24 @@
 	</update>
 
     <select id="invigilatePageQuery" resultType="com.qmth.themis.business.bean.backend.InvigilateListBean">
-        select t.exam_id examId,t.exam_activity_id
-        examActivityId,t.exam_student_id
-        examStudentId,
-        t.id recordId,s.identity
-        identity,s.room_code roomCode,s.name
-        name,s.course_name
-        courseName,s.course_code courseCode,
-        t.paper_download
-        paperDownload,t.status statusCode,t.answer_progress
-        progress,t.client_current_ip clientCurrentIp,
-        t.warning_count
-        warningCount,t.breach_status breachStatus
+        select
+            t.exam_id examId,
+            t.exam_activity_id examActivityId,
+            t.exam_student_id examStudentId,
+            t.id recordId,
+            s.identity identity,
+            s.room_code roomCode,
+            s.name name,
+            s.course_name courseName,
+            s.course_code courseCode,
+            t.paper_download paperDownload,
+            t.status statusCode,
+            t.answer_progress progress,
+            t.client_current_ip clientCurrentIp,
+            t.warning_count warningCount,
+            t.breach_status breachStatus
         from t_oe_exam_record t
-        left
-        join t_e_exam_student s on t.exam_student_id=s.id
+        left join t_e_exam_student s on t.exam_student_id = s.id
         <where>
             <if test="examId != null and examId != ''">
                 and t.exam_id = #{examId}
@@ -130,6 +133,7 @@
             <if test="monitorStatusSource != null and monitorStatusSource != ''">
                 and t.monitor_status_source = #{monitorStatusSource}
             </if>
+            and t.status = 'ANSWERING'
         </where>
     </select>
 </mapper>