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