|
@@ -1,8 +1,11 @@
|
|
package com.qmth.themis.business.service.impl;
|
|
package com.qmth.themis.business.service.impl;
|
|
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
import com.aliyun.oss.common.utils.BinaryUtil;
|
|
import com.aliyun.oss.common.utils.BinaryUtil;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.qmth.themis.business.bean.StudentParams;
|
|
import com.qmth.themis.business.bean.StudentParams;
|
|
import com.qmth.themis.business.bean.admin.StudentPhotoUploadResponseBean;
|
|
import com.qmth.themis.business.bean.admin.StudentPhotoUploadResponseBean;
|
|
@@ -33,10 +36,7 @@ import javax.annotation.Resource;
|
|
import java.io.File;
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.io.InputStream;
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
-import java.util.Objects;
|
|
|
|
-import java.util.Optional;
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @Description: 学生档案 服务实现类
|
|
* @Description: 学生档案 服务实现类
|
|
@@ -160,13 +160,12 @@ public class TEStudentServiceImpl extends ServiceImpl<TEStudentMapper, TEStudent
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public TEStudentExamRecordVideoDto examRecordVideoQuery(IPage<Map> iPage, Long examRecordId, MonitorVideoSourceEnum monitorVideoSource, Boolean log) {
|
|
public TEStudentExamRecordVideoDto examRecordVideoQuery(IPage<Map> iPage, Long examRecordId, MonitorVideoSourceEnum monitorVideoSource, Boolean log) {
|
|
- TOeExamRecord tOeExamRecord = null;
|
|
|
|
|
|
+ TOeExamRecord tOeExamRecord = SystemConstant.getExamRecord(examRecordId);
|
|
ExamCacheBean examCacheBean = null;
|
|
ExamCacheBean examCacheBean = null;
|
|
ExamStudentCacheBean examStudentCacheBean = null;
|
|
ExamStudentCacheBean examStudentCacheBean = null;
|
|
|
|
|
|
List<TEExamStudentLog> teExamStudentLogList = null;
|
|
List<TEExamStudentLog> teExamStudentLogList = null;
|
|
if (Objects.nonNull(log) && log) {
|
|
if (Objects.nonNull(log) && log) {
|
|
- tOeExamRecord = SystemConstant.getExamRecord(examRecordId);
|
|
|
|
examCacheBean = teExamService.getExamCacheBean(tOeExamRecord.getExamId());
|
|
examCacheBean = teExamService.getExamCacheBean(tOeExamRecord.getExamId());
|
|
examStudentCacheBean = teExamStudentService.getExamStudentCacheBean(tOeExamRecord.getExamStudentId());
|
|
examStudentCacheBean = teExamStudentService.getExamStudentCacheBean(tOeExamRecord.getExamStudentId());
|
|
|
|
|
|
@@ -176,13 +175,34 @@ public class TEStudentServiceImpl extends ServiceImpl<TEStudentMapper, TEStudent
|
|
.orderByAsc(TEExamStudentLog::getCreateTime);
|
|
.orderByAsc(TEExamStudentLog::getCreateTime);
|
|
teExamStudentLogList = teExamStudentLogService.list(teExamStudentLogQueryWrapper);
|
|
teExamStudentLogList = teExamStudentLogService.list(teExamStudentLogQueryWrapper);
|
|
}
|
|
}
|
|
- IPage<TEStudentExamRecordVideoMessageDto> teStudentExamRecordVideoMessageDtoIPage = teStudentMapper.examRecordVideoQuery(iPage, examRecordId, Objects.nonNull(monitorVideoSource) ? monitorVideoSource.name().toLowerCase() : null);
|
|
|
|
|
|
+
|
|
|
|
+ IPage<TEStudentExamRecordVideoMessageDto> teStudentExamRecordVideoMessageDtoIPage = null;
|
|
|
|
+ if (Objects.isNull(tOeExamRecord.getTencentVideoUrl())) {
|
|
|
|
+ teStudentExamRecordVideoMessageDtoIPage = teStudentMapper.examRecordVideoQuery(iPage, examRecordId, Objects.nonNull(monitorVideoSource) ? monitorVideoSource.name().toLowerCase() : null);
|
|
|
|
+ } else {
|
|
|
|
+ JSONArray jsonArray = JSONArray.parseArray(tOeExamRecord.getTencentVideoUrl());
|
|
|
|
+ List<TEStudentExamRecordVideoMessageDto> teStudentExamRecordVideoMessageDtoList = new ArrayList<>(jsonArray.size());
|
|
|
|
+ for (int i = 0; i < jsonArray.size(); i++) {
|
|
|
|
+ JSONObject json = (JSONObject) jsonArray.get(i);
|
|
|
|
+ TEStudentExamRecordVideoMessageDto teStudentExamRecordVideoMessageDto = new TEStudentExamRecordVideoMessageDto((String) json.get(SystemConstant.VIDEO_SOURCE), tOeExamRecord.getFirstStartTime(), tOeExamRecord.getFinishTime(), (String) json.get(SystemConstant.VIDEO_URL));
|
|
|
|
+ if (Objects.nonNull(monitorVideoSource)) {
|
|
|
|
+ if (MonitorVideoSourceEnum.valueOf(teStudentExamRecordVideoMessageDto.getVideoSource()) == monitorVideoSource) {
|
|
|
|
+ teStudentExamRecordVideoMessageDtoList.add(teStudentExamRecordVideoMessageDto);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ teStudentExamRecordVideoMessageDtoList.add(teStudentExamRecordVideoMessageDto);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ teStudentExamRecordVideoMessageDtoIPage = new Page<>(iPage.getCurrent(), iPage.getSize());
|
|
|
|
+ teStudentExamRecordVideoMessageDtoIPage.setRecords(teStudentExamRecordVideoMessageDtoList);
|
|
|
|
+ teStudentExamRecordVideoMessageDtoIPage.setTotal(teStudentExamRecordVideoMessageDtoList.size());
|
|
|
|
+ }
|
|
|
|
|
|
TEStudentExamRecordVideoDto teStudentExamRecordVideoDto = new TEStudentExamRecordVideoDto(Objects.nonNull(examCacheBean) ? examCacheBean.getId() : null,
|
|
TEStudentExamRecordVideoDto teStudentExamRecordVideoDto = new TEStudentExamRecordVideoDto(Objects.nonNull(examCacheBean) ? examCacheBean.getId() : null,
|
|
Objects.nonNull(examCacheBean) ? examCacheBean.getName() : null, Objects.nonNull(examStudentCacheBean) ? examStudentCacheBean.getId() : null, examRecordId, Objects.nonNull(examStudentCacheBean) ? examStudentCacheBean.getCourseCode() : null,
|
|
Objects.nonNull(examCacheBean) ? examCacheBean.getName() : null, Objects.nonNull(examStudentCacheBean) ? examStudentCacheBean.getId() : null, examRecordId, Objects.nonNull(examStudentCacheBean) ? examStudentCacheBean.getCourseCode() : null,
|
|
Objects.nonNull(examStudentCacheBean) ? examStudentCacheBean.getCourseName() : null, Objects.nonNull(examStudentCacheBean) ? examStudentCacheBean.getIdentity() : null, Objects.nonNull(examStudentCacheBean) ? examStudentCacheBean.getName() : null,
|
|
Objects.nonNull(examStudentCacheBean) ? examStudentCacheBean.getCourseName() : null, Objects.nonNull(examStudentCacheBean) ? examStudentCacheBean.getIdentity() : null, Objects.nonNull(examStudentCacheBean) ? examStudentCacheBean.getName() : null,
|
|
- Objects.nonNull(tOeExamRecord) ? tOeExamRecord.getFirstStartTime() : null, teExamStudentLogList, teStudentExamRecordVideoMessageDtoIPage);
|
|
|
|
- //TODO 兼容1.2.3之前的版本
|
|
|
|
|
|
+ tOeExamRecord.getFirstStartTime(), teExamStudentLogList, teStudentExamRecordVideoMessageDtoIPage);
|
|
return teStudentExamRecordVideoDto;
|
|
return teStudentExamRecordVideoDto;
|
|
}
|
|
}
|
|
}
|
|
}
|