【修改】 考点服务器绑定专业sql增加查询条件
This commit is contained in:
@@ -72,7 +72,7 @@ public class MonitorServiceImpl implements MonitorService {
|
||||
private ExamSpecialtyMapper examSpecialtyMapper;
|
||||
|
||||
|
||||
// @Resource
|
||||
// @Resource
|
||||
// private FileService fileService;
|
||||
@Override
|
||||
public String createMonitor(MonitorSaveReqVO createReqVO) {
|
||||
@@ -115,11 +115,12 @@ public class MonitorServiceImpl implements MonitorService {
|
||||
public PageResult<MonitorDO> getMonitorPage(MonitorPageReqVO pageReqVO) {
|
||||
return monitorMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getStuMonitor(StuMonitorPaperVo stuMonitorPaperVo) throws RuntimeException {
|
||||
String key = "userCache:"+stuMonitorPaperVo.getTaskId()+":" + stuMonitorPaperVo.getStuId();
|
||||
MonitorDO info = JsonUtils.parseObject(stringRedisTemplate.opsForValue().get(key),MonitorDO.class);
|
||||
if (info==null){
|
||||
String key = "userCache:" + stuMonitorPaperVo.getTaskId() + ":" + stuMonitorPaperVo.getStuId();
|
||||
MonitorDO info = JsonUtils.parseObject(stringRedisTemplate.opsForValue().get(key), MonitorDO.class);
|
||||
if (info == null) {
|
||||
return 0L;
|
||||
}
|
||||
//获取属性 判断 专业/课程点位
|
||||
@@ -171,11 +172,10 @@ public class MonitorServiceImpl implements MonitorService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 只有授权了“专业”,才去查 taskInVo 并校验
|
||||
if (!authSpecialtyIds.isEmpty()) {
|
||||
//查询 该试卷任务 设计的 专业
|
||||
List<SpecialtyVo> taskInVo = educationPaperTaskMapper.selectTaskCounts(stuMonitorPaperVo.getTaskId(),loginTenantId);
|
||||
List<SpecialtyVo> taskInVo = educationPaperTaskMapper.selectTaskCounts(stuMonitorPaperVo.getTaskId(), loginTenantId);
|
||||
|
||||
for (SpecialtyVo specialtyVo : taskInVo) {
|
||||
String specialtyId = specialtyVo.getSpecialtyId();
|
||||
@@ -226,7 +226,7 @@ public class MonitorServiceImpl implements MonitorService {
|
||||
}
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(stuMonitorPaperVo.getPaperId())){
|
||||
if (StringUtils.isNotBlank(stuMonitorPaperVo.getPaperId())) {
|
||||
EducationPaper educationPaper = educationPaperMapper.selectEducationPaperByPaperId(stuMonitorPaperVo.getPaperId());
|
||||
String counts = educationPaper.getCounts();
|
||||
|
||||
@@ -247,18 +247,18 @@ public class MonitorServiceImpl implements MonitorService {
|
||||
|
||||
info.setIp(stuMonitorPaperVo.getIp());
|
||||
|
||||
if (info.getRemainingTime()==null){
|
||||
stringRedisTemplate.opsForValue().set("userCache:"+stuMonitorPaperVo.getTaskId()+":"+stuMonitorPaperVo.getStuId(), JsonUtils.toJsonString(info));
|
||||
if (info.getRemainingTime() == null) {
|
||||
stringRedisTemplate.opsForValue().set("userCache:" + stuMonitorPaperVo.getTaskId() + ":" + stuMonitorPaperVo.getStuId(), JsonUtils.toJsonString(info));
|
||||
monitorMapper.updateById(info);
|
||||
return 24 * 60 * 60L; // (1天)
|
||||
}else {
|
||||
} else {
|
||||
EducationPaperParam educationPaperParam = educationPaperParamMapper.selectEducationPaperParamByTaskId(stuMonitorPaperVo.getTaskId());
|
||||
//测评时长
|
||||
Time examTime = educationPaperParam.getExamTime();
|
||||
|
||||
//判断是否开启测评时长限制
|
||||
//开启测评时长限制 开启场次 判断场次时间 ,,,,没开启测评时长限制 开启场次 -判断场次时间
|
||||
if ("0".equals(educationPaperParam.getIsSession())){
|
||||
if ("0".equals(educationPaperParam.getIsSession())) {
|
||||
//获得场次开始时间, 结束时间 判断是否在 时间范围内
|
||||
|
||||
EducationPaperPerson educationPaperPerson = educationPaperPersonMapper.selectByTaskIdAndPersonId(stuMonitorPaperVo.getTaskId(), stuMonitorPaperVo.getStuId());
|
||||
@@ -293,7 +293,7 @@ public class MonitorServiceImpl implements MonitorService {
|
||||
boolean isWithinEntryTime = !now.isBefore(entryStart) && !now.isAfter(entryEnd);
|
||||
System.out.println("是否在允许入场时间段内:" + isWithinEntryTime);
|
||||
|
||||
if (isWithinEntryTime){
|
||||
if (isWithinEntryTime) {
|
||||
// 1. 计算剩余时间(秒)
|
||||
long remainingSeconds = ChronoUnit.SECONDS.between(LocalDateTime.now(), DateUtil.toLocalDateTime(endTime));
|
||||
remainingSeconds = Math.max(remainingSeconds, 0); // 防止负数
|
||||
@@ -310,17 +310,17 @@ public class MonitorServiceImpl implements MonitorService {
|
||||
// 判分后更新记录
|
||||
monitorMapper.updateById(info);
|
||||
return finalRemaining;
|
||||
}else {
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
//开启测评时长限制 没开启场次 -直接返回测评时长
|
||||
|
||||
if ("1".equals(educationPaperParam.getIsSession())&&"0".equals(educationPaperParam.getIsTime())){
|
||||
if ("1".equals(educationPaperParam.getIsSession()) && "0".equals(educationPaperParam.getIsTime())) {
|
||||
|
||||
info.setRemainingTime((long) examTime.toLocalTime().toSecondOfDay());
|
||||
stringRedisTemplate.opsForValue().set("userCache:"+stuMonitorPaperVo.getTaskId()+":"+stuMonitorPaperVo.getStuId(), JsonUtils.toJsonString(info));
|
||||
stringRedisTemplate.opsForValue().set("userCache:" + stuMonitorPaperVo.getTaskId() + ":" + stuMonitorPaperVo.getStuId(), JsonUtils.toJsonString(info));
|
||||
monitorMapper.updateById(info);
|
||||
|
||||
return (long) examTime.toLocalTime().toSecondOfDay();
|
||||
@@ -334,14 +334,13 @@ public class MonitorServiceImpl implements MonitorService {
|
||||
|
||||
@Override
|
||||
public Boolean updateStuMonitor(StuMonitorQuVo stuMonitorQuVo) {
|
||||
String key = "userCache:"+stuMonitorQuVo.getTaskId()+":" + stuMonitorQuVo.getStuId();
|
||||
String keychoice = "keychoice:"+stuMonitorQuVo.getTaskId()+":" + stuMonitorQuVo.getStuId();
|
||||
MonitorDO info = JsonUtils.parseObject(stringRedisTemplate.opsForValue().get(key),MonitorDO.class);
|
||||
|
||||
String key = "userCache:" + stuMonitorQuVo.getTaskId() + ":" + stuMonitorQuVo.getStuId();
|
||||
String keychoice = "keychoice:" + stuMonitorQuVo.getTaskId() + ":" + stuMonitorQuVo.getStuId();
|
||||
MonitorDO info = JsonUtils.parseObject(stringRedisTemplate.opsForValue().get(key), MonitorDO.class);
|
||||
|
||||
|
||||
if (info != null) {
|
||||
if (!("1".equals(info.getExamStatus()))){
|
||||
if (!("1".equals(info.getExamStatus()))) {
|
||||
return false;
|
||||
}
|
||||
stringRedisTemplate.opsForValue().set(keychoice, JsonUtils.toJsonString(stuMonitorQuVo));
|
||||
@@ -358,14 +357,14 @@ public class MonitorServiceImpl implements MonitorService {
|
||||
EducationPaper educationPaper = educationPaperMapper.selectEducationPaperByPaperId(stuMonitorPaperEndVo.getPaperId());
|
||||
String taskId = educationPaper.getTaskId();
|
||||
String key = "userCache:" + taskId + ":" + stuMonitorPaperEndVo.getStuId();
|
||||
double score =educationPaperMapper.selctStuScoreByStuIdAndPaperId(stuMonitorPaperEndVo.getStuId(),stuMonitorPaperEndVo.getPaperId());
|
||||
MonitorDO info = JsonUtils.parseObject(stringRedisTemplate.opsForValue().get(key),MonitorDO.class);
|
||||
double score = educationPaperMapper.selctStuScoreByStuIdAndPaperId(stuMonitorPaperEndVo.getStuId(), stuMonitorPaperEndVo.getPaperId());
|
||||
MonitorDO info = JsonUtils.parseObject(stringRedisTemplate.opsForValue().get(key), MonitorDO.class);
|
||||
info.setRemainingTime(0L);
|
||||
EducationPaperParam educationPaperParam = educationPaperParamMapper.selectEducationPaperParamByTaskId(taskId);
|
||||
EducationPaperTask educationPaperTask = educationPaperTaskMapper.selectEducationPaperTaskByTaskId(taskId);
|
||||
if ("1".equals(educationPaperParam.getSaveGrades())){
|
||||
if ("1".equals(educationPaperParam.getSaveGrades())) {
|
||||
info.setScore(String.valueOf(score));
|
||||
}else {
|
||||
} else {
|
||||
MonitorDO monitorDO = monitorMapper.selectById(info.getMonitorId());
|
||||
info.setScore(String.valueOf(score));
|
||||
if (StringUtils.isNotBlank(monitorDO.getScore())) {
|
||||
@@ -386,14 +385,13 @@ public class MonitorServiceImpl implements MonitorService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
//考试下的任务 结束改为 结束 其他为待考
|
||||
if ("1".equals(educationPaperTask.getTaskType())){
|
||||
if ("1".equals(educationPaperTask.getTaskType())) {
|
||||
info.setExamStatus("2");
|
||||
redisTemplate.delete(key);
|
||||
|
||||
}else {
|
||||
} else {
|
||||
info.setExamStatus("0");
|
||||
stringRedisTemplate.opsForValue().set(key, JsonUtils.toJsonString(info));
|
||||
}
|
||||
@@ -411,27 +409,27 @@ public class MonitorServiceImpl implements MonitorService {
|
||||
public Boolean updateMonitorStatus(StuMonitorStatusVo stuMonitorStatusVo) {
|
||||
String status = stuMonitorStatusVo.getStatus();
|
||||
List<String> monitorIds = stuMonitorStatusVo.getMonitorIds();
|
||||
if ("1".equals(status)||"0".equals(status)){
|
||||
if ("1".equals(status) || "0".equals(status)) {
|
||||
//新增或更新
|
||||
for (String monitorId : monitorIds) {
|
||||
MonitorDO monitorDO = monitorMapper.selectById(monitorId);
|
||||
String taskId = monitorDO.getTaskId();
|
||||
String stuId = monitorDO.getStuId();
|
||||
String key = "userCache:" + taskId+":" +stuId;
|
||||
String key = "userCache:" + taskId + ":" + stuId;
|
||||
monitorDO.setExamStatus(status);
|
||||
monitorMapper.updateById(monitorDO);
|
||||
MonitorDO info = JsonUtils.parseObject(stringRedisTemplate.opsForValue().get(key),MonitorDO.class);
|
||||
MonitorDO info = JsonUtils.parseObject(stringRedisTemplate.opsForValue().get(key), MonitorDO.class);
|
||||
EducationPaperParam educationPaperParam = educationPaperParamMapper.selectEducationPaperParamByTaskId(taskId);
|
||||
Time examTime = educationPaperParam.getExamTime();
|
||||
|
||||
if (info==null){
|
||||
if (info == null) {
|
||||
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);
|
||||
String name = educationPaperTaskMapper.selectEducationPaperTaskNameByid(taskId);
|
||||
EducationPaperTask educationPaperTask = educationPaperTaskMapper.selectEducationPaperTaskByTaskId(taskId);
|
||||
monitorDO1.setScore("0");
|
||||
monitorDO1.setTaskId(taskId);
|
||||
@@ -444,14 +442,14 @@ public class MonitorServiceImpl implements MonitorService {
|
||||
monitorDO1.setNickname(personRepDto.getNickname());
|
||||
|
||||
//如果开启了 时长限制 或者考场
|
||||
if ("0".equals(educationPaperParam.getIsTime())||"0".equals(educationPaperParam.getIsSession())){
|
||||
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 {
|
||||
} else {
|
||||
//如果开启了 时长限制 或者考场
|
||||
if ("0".equals(educationPaperParam.getIsTime())||"0".equals(educationPaperParam.getIsSession())){
|
||||
if ("0".equals(educationPaperParam.getIsTime()) || "0".equals(educationPaperParam.getIsSession())) {
|
||||
info.setRemainingTime((long) examTime.toLocalTime().toSecondOfDay());
|
||||
}
|
||||
info.setScore("0");
|
||||
@@ -462,25 +460,23 @@ public class MonitorServiceImpl implements MonitorService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ("2".equals(status)){
|
||||
if ("2".equals(status)) {
|
||||
//删除
|
||||
for (String monitorId : monitorIds) {
|
||||
MonitorDO monitorDO = monitorMapper.selectById(monitorId);
|
||||
String taskId = monitorDO.getTaskId();
|
||||
String stuId = monitorDO.getStuId();
|
||||
String key = "userCache:" + taskId+":" +stuId;
|
||||
String key = "userCache:" + taskId + ":" + stuId;
|
||||
monitorDO.setRemainingTime(0L);
|
||||
if ("0".equals(monitorDO.getTaskType())){
|
||||
if ("0".equals(monitorDO.getTaskType())) {
|
||||
monitorDO.setExamStatus("0");
|
||||
stringRedisTemplate.opsForValue().set(key, JsonUtils.toJsonString(monitorDO));
|
||||
|
||||
}else {
|
||||
} else {
|
||||
monitorDO.setExamStatus(status);
|
||||
redisTemplate.delete(key);
|
||||
}
|
||||
@@ -488,13 +484,13 @@ public class MonitorServiceImpl implements MonitorService {
|
||||
monitorMapper.updateById(monitorDO);
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
public List<TentSpecialy> filterSpecialtyList(List<TentSpecialy> inputList) {
|
||||
if (inputList == null || inputList.isEmpty()) {
|
||||
return Collections.emptyList();
|
||||
@@ -527,6 +523,4 @@ public class MonitorServiceImpl implements MonitorService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@@ -126,7 +126,7 @@
|
||||
<select id="selectExamSpecialtyBySpNameOne" parameterType="String" resultType="ExamSpecialty">
|
||||
SELECT *
|
||||
from exam_specialty
|
||||
where sp_name = #{name}
|
||||
where sp_name = #{name} and deleted = 0 and status = 0
|
||||
</select>
|
||||
|
||||
<select id="selectExamSpecialtyBySpName" parameterType="String"
|
||||
|
Reference in New Issue
Block a user