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

Merge branch 'dev' of http://git.qmth.com.cn/themis/backend-service.git into dev

xiatian 4 жил өмнө
parent
commit
2259673478

+ 12 - 2
themis-backend/src/main/java/com/qmth/themis/backend/api/TIeInvigilateController.java

@@ -202,8 +202,18 @@ public class TIeInvigilateController {
         }
         //获取考试记录缓存
         Long examId = ExamRecordCacheUtil.getExamId(examRecordId);
-        Long examStudentId = ExamRecordCacheUtil.getExamStudentId(examRecordId);
-        Long examActivityId = ExamRecordCacheUtil.getExamActivityId(examRecordId);
+        TOeExamRecord tOeExamRecord = null;
+        Long examStudentId = null;
+        Long examActivityId = null;
+        if (Objects.isNull(examId)) {
+            tOeExamRecord = tOeExamRecordService.getById(examRecordId);
+            examId = tOeExamRecord.getExamId();
+            examStudentId = tOeExamRecord.getExamStudentId();
+            examActivityId = tOeExamRecord.getExamActivityId();
+        } else {
+            examStudentId = ExamRecordCacheUtil.getExamStudentId(examRecordId);
+            examActivityId = ExamRecordCacheUtil.getExamActivityId(examRecordId);
+        }
         ExamRecordStatusEnum status = ExamRecordCacheUtil.getStatus(examRecordId);
         Integer breachStatus = Objects.isNull(ExamRecordCacheUtil.getBreachStatus(examRecordId)) ? null : ExamRecordCacheUtil.getBreachStatus(examRecordId);
         ExamStudentCacheBean examStudentCacheBean = teExamStudentService.getExamStudentCacheBean(examStudentId);

+ 18 - 1
themis-backend/src/main/java/com/qmth/themis/backend/aspect/ApiControllerAspect.java

@@ -11,8 +11,10 @@ import org.aspectj.lang.reflect.MethodSignature;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.commons.CommonsMultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.Objects;
 
 /**
  * @Description: api aspect
@@ -53,7 +55,22 @@ public class ApiControllerAspect {
             log.info("============请求地址========:{}", request.getRequestURL());
             log.info("============类=============:{}", className);
             log.info("============方法===========:{}", methodName);
-            log.info("============参数key:{},参数value===========:{}", JacksonUtil.parseJson(paramsName), JacksonUtil.parseJson(args));
+            if (Objects.nonNull(args) && args.length > 0) {
+                boolean jsonOut = true;
+                for (Object o : args) {
+                    if (o instanceof CommonsMultipartFile) {
+                        jsonOut = false;
+                        break;
+                    }
+                }
+                if (jsonOut) {
+                    log.info("============参数key:{},参数value===========:{}", JacksonUtil.parseJson(paramsName), JacksonUtil.parseJson(args));
+                } else {
+                    for (int i = 0; i < args.length; i++) {
+                        log.info("============参数key:{},参数value===========:{}", paramsName[i], args[i]);
+                    }
+                }
+            }
             log.info("============platform===========:{}", ServletUtil.getRequestPlatform());
             log.info("============deviceId===========:{}", ServletUtil.getRequestDeviceId());
             log.info("============Authorization===========:{}", ServletUtil.getRequestAuthorizationForAspect());

+ 1 - 8
themis-backend/src/main/java/com/qmth/themis/backend/websocket/WebSocketAdminServer.java

@@ -2,26 +2,19 @@ package com.qmth.themis.backend.websocket;
 
 import com.alibaba.fastjson.JSONObject;
 import com.google.gson.Gson;
-import com.qmth.themis.backend.listener.service.MqAdminLogicService;
 import com.qmth.themis.backend.websocketTemplete.WebSocketAdminMessageTemplete;
 import com.qmth.themis.business.constant.SpringContextHolder;
 import com.qmth.themis.business.constant.SystemConstant;
-import com.qmth.themis.business.dto.MqDto;
 import com.qmth.themis.business.dto.WebsocketDto;
 import com.qmth.themis.business.entity.TBSession;
 import com.qmth.themis.business.enums.WebsocketTypeEnum;
 import com.qmth.themis.business.util.JacksonUtil;
 import com.qmth.themis.business.util.RedisUtil;
 import com.qmth.themis.business.util.WebsocketUtil;
-import com.qmth.themis.common.contanst.Constants;
 import com.qmth.themis.common.enums.ExceptionResultEnum;
 import com.qmth.themis.common.exception.BusinessException;
 import com.qmth.themis.common.signature.SignatureInfo;
 import com.qmth.themis.common.signature.SignatureType;
-import com.qmth.themis.mq.templete.Concurrently;
-import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
-import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
-import org.apache.rocketmq.common.message.MessageExt;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
@@ -108,7 +101,7 @@ public class WebSocketAdminServer
                         addOnlineCount();
                     }
                     //发送恢复网络mq消息
-                    log.info("用户连接:" + this.sessionId + ",当前在线人数为:" + getOnlineCount());
+                    log.info("用户连接:{},当前在线人数为:{}", this.sessionId, getOnlineCount());
                     InetSocketAddress addr = (InetSocketAddress) WebsocketUtil.getFieldInstance(this.session.getAsyncRemote(), "base#socketWrapper#socket#sc#remoteAddress");
                     this.ip = addr.toString().replace("/", "").split(":")[0];
 //                    this.sendMessage("ip[" + this.ip + "]连接成功");

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

@@ -120,9 +120,9 @@
             tees.course_name as courseName,
             IFNULL(teea.opening_seconds,tee.opening_seconds) as openingSeconds,
             teea.opening_seconds as activityOpeningSeconds,
-            date_sub(teea.start_time, interval IFNULL(teea.prepare_seconds, tee.prepare_seconds) second) as prepareTime,
+            (teea.start_time / 1000 - IFNULL(teea.prepare_seconds, tee.prepare_seconds)) * 1000 as prepareTime,
             IFNULL(teea.start_time, tee.start_time) as minStartTime,
-            date_add(teea.start_time, interval IFNULL(teea.opening_seconds, tee.opening_seconds) second) as maxStartTime,
+            (teea.start_time / 1000 + IFNULL(teea.opening_seconds, tee.opening_seconds)) * 1000 as maxStartTime,
             IF(tee.mode = 'TOGETHER' and tee.force_finish = 1, IFNULL(teea.finish_time , tee.end_time), null) as maxFinishTime,
             tee.monitor_video_source as monitorVideoSourceStr,
             IFNULL(teea.prepare_seconds,tee.prepare_seconds) as prepareSeconds,

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

@@ -504,7 +504,7 @@
 
 	<select id="getDoneCountByDay" resultType="java.util.Map">
 		select
-		FROM_UNIXTIME(f.first_prepare_time / 1000,'%Y-%m-%d') AS day
+		FROM_UNIXTIME(f.first_prepare_time / 1000,'%Y-%m-%d') AS day,
 		count(DISTINCT(f.exam_student_id)) count from t_oe_exam_record f
 		left join t_e_exam_student t on f.exam_student_id=t.id
 		where f.exam_id = #{examId}

+ 18 - 1
themis-exam/src/main/java/com/qmth/themis/exam/aspect/ApiControllerAspect.java

@@ -11,8 +11,10 @@ import org.aspectj.lang.reflect.MethodSignature;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.commons.CommonsMultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.Objects;
 
 /**
  * @Description: api aspect
@@ -53,7 +55,22 @@ public class ApiControllerAspect {
             log.info("============请求地址========:{}", request.getRequestURL());
             log.info("============类=============:{}", className);
             log.info("============方法===========:{}", methodName);
-            log.info("============参数key:{},参数value===========:{}", JacksonUtil.parseJson(paramsName), JacksonUtil.parseJson(args));
+            if (Objects.nonNull(args) && args.length > 0) {
+                boolean jsonOut = true;
+                for (Object o : args) {
+                    if (o instanceof CommonsMultipartFile) {
+                        jsonOut = false;
+                        break;
+                    }
+                }
+                if (jsonOut) {
+                    log.info("============参数key:{},参数value===========:{}", JacksonUtil.parseJson(paramsName), JacksonUtil.parseJson(args));
+                } else {
+                    for (int i = 0; i < args.length; i++) {
+                        log.info("============参数key:{},参数value===========:{}", paramsName[i], args[i]);
+                    }
+                }
+            }
             log.info("============platform===========:{}", ServletUtil.getRequestPlatform());
             log.info("============deviceId===========:{}", ServletUtil.getRequestDeviceId());
             log.info("============Authorization===========:{}", ServletUtil.getRequestAuthorizationForAspect());

+ 1 - 1
themis-exam/src/main/java/com/qmth/themis/exam/websocket/WebSocketMobileServer.java

@@ -111,7 +111,7 @@ public class WebSocketMobileServer implements Concurrently {
                         webSocketMap.put(this.recordId + "-" + this.source.name(), this);
                         addOnlineCount();
                     }
-                    log.info("用户连接:" + this.sessionId + ",当前在线人数为:" + getOnlineCount());
+                    log.info("用户连接:{},当前在线人数为:{}", this.sessionId, getOnlineCount());
                     InetSocketAddress addr = (InetSocketAddress) WebsocketUtil.getFieldInstance(this.session.getAsyncRemote(), "base#socketWrapper#socket#sc#remoteAddress");
                     this.ip = addr.toString().replace("/", "").split(":")[0];
 //                    this.sendMessage("ip[" + this.ip + "]连接成功");

+ 1 - 7
themis-exam/src/main/java/com/qmth/themis/exam/websocket/WebSocketOeServer.java

@@ -2,10 +2,7 @@ package com.qmth.themis.exam.websocket;
 
 import com.alibaba.fastjson.JSONObject;
 import com.google.gson.Gson;
-import com.qmth.themis.business.cache.ExamActivityRecordCacheUtil;
 import com.qmth.themis.business.cache.ExamRecordCacheUtil;
-import com.qmth.themis.business.cache.bean.ExamCacheBean;
-import com.qmth.themis.business.cache.bean.ExamStudentCacheBean;
 import com.qmth.themis.business.constant.SpringContextHolder;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.dto.MqDto;
@@ -13,8 +10,6 @@ import com.qmth.themis.business.dto.WebsocketDto;
 import com.qmth.themis.business.entity.TBSession;
 import com.qmth.themis.business.enums.*;
 import com.qmth.themis.business.service.MqDtoService;
-import com.qmth.themis.business.service.TEExamService;
-import com.qmth.themis.business.service.TEExamStudentService;
 import com.qmth.themis.business.service.TOeExamRecordService;
 import com.qmth.themis.business.util.JacksonUtil;
 import com.qmth.themis.business.util.RedisUtil;
@@ -113,7 +108,7 @@ public class WebSocketOeServer implements Concurrently {
                         webSocketMap.put(this.recordId, this);
                         addOnlineCount();
                     }
-                    log.info("用户连接:" + this.sessionId + ",当前在线人数为:" + getOnlineCount());
+                    log.info("用户连接:{},当前在线人数为:{}", this.sessionId, getOnlineCount());
                     InetSocketAddress addr = (InetSocketAddress) WebsocketUtil.getFieldInstance(this.session.getAsyncRemote(), "base#socketWrapper#socket#sc#remoteAddress");
                     this.ip = addr.toString().replace("/", "").split(":")[0];
 //                    this.sendMessage("ip[" + this.ip + "]连接成功");
@@ -133,7 +128,6 @@ public class WebSocketOeServer implements Concurrently {
                     tranMap.put("ip", this.ip);
                     this.updateTime = System.currentTimeMillis();
                     tranMap.put("updateTime", this.updateTime);
-//                    }
                 } else {
                     throw new BusinessException(ExceptionResultEnum.AUTHORIZATION_ERROR);
                 }