Jelajahi Sumber

Merge remote-tracking branch 'origin/release_v4.1.4'

deason 2 tahun lalu
induk
melakukan
7c6b73f83a

+ 2 - 2
src/main/java/cn/com/qmth/examcloud/app/controller/PracticeExamRestController.java → src/main/java/cn/com/qmth/examcloud/app/controller/ExamProcessController.java

@@ -28,8 +28,8 @@ import static cn.com.qmth.examcloud.app.model.Constants.PARAM_APP_TOKEN;
  */
 @RestController
 @RequestMapping("${$rmp}/v2")
-@Api(tags = "在线练习相关接口")
-public class PracticeExamRestController {
+@Api(tags = "考试过程相关接口")
+public class ExamProcessController {
 
     @Autowired
     private CoreExamWorkService examWorkService;

+ 11 - 0
src/main/java/cn/com/qmth/examcloud/app/core/SysProperty.java

@@ -27,6 +27,9 @@ public class SysProperty {
     @Value("${examcloud.api.domain}")
     private String apiDomain;
 
+    @Value("${examcloud.api.device.record.active:false}")
+    private Boolean deviceRecordActive;
+
     public String getFileDomain() {
         return fileDomain;
     }
@@ -47,4 +50,12 @@ public class SysProperty {
         return discoveryClient.getInstanceUrl(server.getInstanceName());
     }
 
+    public Boolean getDeviceRecordActive() {
+        return deviceRecordActive;
+    }
+
+    public void setDeviceRecordActive(Boolean deviceRecordActive) {
+        this.deviceRecordActive = deviceRecordActive;
+    }
+
 }

+ 11 - 3
src/main/java/cn/com/qmth/examcloud/app/core/config/AccessInterceptor.java

@@ -7,6 +7,7 @@
 
 package cn.com.qmth.examcloud.app.core.config;
 
+import cn.com.qmth.examcloud.app.core.SysProperty;
 import cn.com.qmth.examcloud.app.model.DeviceRecord;
 import cn.com.qmth.examcloud.app.service.DeviceRecordService;
 import cn.com.qmth.examcloud.commons.util.ThreadLocalUtil;
@@ -31,11 +32,15 @@ import static cn.com.qmth.examcloud.app.model.Constants.*;
  * @since: 2018/7/16
  */
 public class AccessInterceptor extends HandlerInterceptorAdapter {
+
     private static final Logger LOG = LoggerFactory.getLogger(AccessInterceptor.class);
 
     @Autowired
     private DeviceRecordService deviceRecordService;
 
+    @Autowired
+    private SysProperty sysProperty;
+
     @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
         String mapping = request.getServletPath().toLowerCase();
@@ -54,9 +59,12 @@ public class AccessInterceptor extends HandlerInterceptorAdapter {
             return true;
         }
 
-        //异步保存设备访问记录
-        // DeviceRecord record = this.parseParams(request);
-        // deviceRecordService.addDeviceRecord(record);
+        if (sysProperty.getDeviceRecordActive()) {
+            //异步保存设备访问记录
+            DeviceRecord record = this.parseParams(request);
+            deviceRecordService.addDeviceRecord(record);
+        }
+
         return true;
     }
 

+ 4 - 7
src/main/java/cn/com/qmth/examcloud/app/service/impl/CoreOeServiceImpl.java

@@ -57,13 +57,9 @@ public class CoreOeServiceImpl implements CoreOeService {
 
     @Override
     public Result getCurrentTime(String key, String token) throws Exception {
-        //封装请求参数
-        final String requestUrl = String.format("%s/api/ecs_oe_student/examControl/currentTime", sysProperty.getApiDomain());
-        Result<String> result = HttpUtils.doGet(requestUrl, key, token);
-        if (result.isSuccess()) {
-            //转换日期格式
-            result.setData(DateUtils.formatLongDate(result.getData()));
-        }
+        Result<String> result = new Result<>();
+        result.success();
+        result.setData(DateUtils.formatLongDate(String.valueOf(System.currentTimeMillis())));
         return result;
     }
 
@@ -113,6 +109,7 @@ public class CoreOeServiceImpl implements CoreOeService {
 
     @Override
     public Result getExamRecordHeartbeat(String key, String token) throws Exception {
+        log.warn("{} examHeartbeat...", key);
         //封装请求参数
         final String requestUrl = String.format("%s/api/ecs_oe_student/examControl/examHeartbeat", sysProperty.getApiDomain());
         return HttpUtils.doGet(requestUrl, key, token);