【修改】监控管理时间

This commit is contained in:
YOHO\20373
2025-05-22 14:25:05 +08:00
parent 5dce40ae47
commit 8086e2a123
2 changed files with 20 additions and 5 deletions

View File

@@ -3,6 +3,7 @@ package pc.exam.pp.module.exam.service.monitor;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.alibaba.excel.util.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
@@ -310,10 +311,15 @@ public class MonitorServiceImpl implements MonitorService {
monitorDO.setExamStatus(status);
monitorMapper.updateById(monitorDO);
MonitorDO info = JsonUtils.parseObject(stringRedisTemplate.opsForValue().get(key),MonitorDO.class);
EducationPaperParam educationPaperParam = educationPaperParamMapper.selectEducationPaperParamByTaskId(taskId);
Time examTime = educationPaperParam.getExamTime();
if (info==null){
MonitorDO monitorDO1=new MonitorDO();
MonitorDO monitorDO1 = monitorMapper.selectOne(
new QueryWrapper<MonitorDO>()
.eq("stu_id", stuId)
.eq("task_id", taskId)
);
PersonRepDto personRepDto = educationPaperPersonMapper.selectUserById(stuId);
String name= educationPaperTaskMapper.selectEducationPaperTaskNameByid(taskId);
EducationPaperTask educationPaperTask = educationPaperTaskMapper.selectEducationPaperTaskByTaskId(taskId);
@@ -322,17 +328,25 @@ public class MonitorServiceImpl implements MonitorService {
monitorDO1.setTaskType(educationPaperTask.getTaskType());
monitorDO1.setExamStatus(status);
monitorDO1.setPaperNum("");
monitorDO1.setIp("");
monitorDO1.setStuId(stuId);
monitorDO1.setUsername(personRepDto.getUsername());
monitorDO1.setNickname(personRepDto.getNickname());
EducationPaperParam educationPaperParam = educationPaperParamMapper.selectEducationPaperParamByTaskId(taskId);
Time examTime = educationPaperParam.getExamTime();
//如果开启了 时长限制 或者考场
if ("0".equals(educationPaperParam.getIsTime())||"0".equals(educationPaperParam.getIsSession())){
monitorDO1.setRemainingTime((long) examTime.toLocalTime().toSecondOfDay());
}
stringRedisTemplate.opsForValue().set(key, JsonUtils.toJsonString(monitorDO1));
monitorMapper.updateById(monitorDO1);
}else {
//如果开启了 时长限制 或者考场
if ("0".equals(educationPaperParam.getIsTime())||"0".equals(educationPaperParam.getIsSession())){
info.setRemainingTime((long) examTime.toLocalTime().toSecondOfDay());
}
info.setScore("0");
info.setPaperNum("");
info.setIp("");
info.setExamStatus(status);
stringRedisTemplate.opsForValue().set(key, JsonUtils.toJsonString(info));
}
@@ -351,7 +365,7 @@ public class MonitorServiceImpl implements MonitorService {
String taskId = monitorDO.getTaskId();
String stuId = monitorDO.getStuId();
String key = "userCache:" + taskId+":" +stuId;
monitorDO.setRemainingTime(0L);
if ("0".equals(monitorDO.getTaskType())){
monitorDO.setExamStatus("0");
stringRedisTemplate.opsForValue().set(key, JsonUtils.toJsonString(monitorDO));