From 8c9d4601ecd326481f05cebff067dabc2ba24dc2 Mon Sep 17 00:00:00 2001 From: "YOHO\\20373" <2037305722@qq.com> Date: Mon, 12 May 2025 09:24:27 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91=E7=9B=91?= =?UTF-8?q?=E6=8E=A7=E7=AE=A1=E7=90=86=E8=AF=95=E5=8D=B7=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=BA=A7=E5=88=AB=E7=9B=91=E6=8E=A7=EF=BC=8C=E8=AF=95=E5=8D=B7?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=BC=96=E5=8F=B7=EF=BC=8C=E8=AF=95=E5=8D=B7?= =?UTF-8?q?=E5=88=86=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/monitor/MonitorController.java | 2 +- .../admin/monitor/MonitorTaskController.java | 41 ++++++ .../admin/monitor/vo/MonitorPageReqVO.java | 2 + .../paper/EducationPaperPersonController.java | 1 - .../admin/paper/vo/PaperTaskPageVo.java | 2 + .../exam/dal/dataobject/EducationPaper.java | 2 + .../dal/dataobject/EducationPaperSession.java | 4 +- .../dal/dataobject/EducationPaperTask.java | 2 + .../dal/dataobject/monitor/MonitorTaskDO.java | 43 ++++++ .../exam/dal/mysql/monitor/MonitorMapper.java | 49 ++++--- .../dal/mysql/monitor/MonitorTaskMapper.java | 7 + .../mysql/paper/EducationPaperTaskMapper.java | 1 + .../service/monitor/MonitorTaskService.java | 13 ++ .../monitor/MonitorTaskServiceImpl.java | 130 ++++++++++++++++++ .../EducationPaperPersonServiceImpl.java | 7 + .../EducationPaperSchemeServiceImpl.java | 22 +-- .../paper/EducationPaperServiceImpl.java | 5 +- .../paper/EducationPaperTaskServiceImpl.java | 1 - .../mapper/exam/EducationPaperMapper.xml | 11 +- .../exam/EducationPaperSchemeMapper.xml | 11 +- .../exam/EducationPaperSessionMapper.xml | 8 +- .../mapper/exam/EducationPaperTaskMapper.xml | 7 +- 22 files changed, 319 insertions(+), 52 deletions(-) create mode 100644 exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/monitor/MonitorTaskController.java create mode 100644 exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/dataobject/monitor/MonitorTaskDO.java create mode 100644 exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/mysql/monitor/MonitorTaskMapper.java create mode 100644 exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/monitor/MonitorTaskService.java create mode 100644 exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/monitor/MonitorTaskServiceImpl.java diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/monitor/MonitorController.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/monitor/MonitorController.java index e87f3d14..e275d132 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/monitor/MonitorController.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/monitor/MonitorController.java @@ -30,7 +30,7 @@ import pc.exam.pp.module.exam.service.monitor.MonitorService; import static pc.exam.pp.module.infra.enums.ErrorCodeConstants.DEMO03_MONITOR_SESSION_EXISTS; import static pc.exam.pp.module.infra.enums.ErrorCodeConstants.DEMO03_MONITOR_TIME_EXISTS; -@Tag(name = "管理后台 - 监控管理") +@Tag(name = "管理后台 - 学生监控管理") @RestController @RequestMapping("/exam/monitor") @Validated diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/monitor/MonitorTaskController.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/monitor/MonitorTaskController.java new file mode 100644 index 00000000..b741a1b8 --- /dev/null +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/monitor/MonitorTaskController.java @@ -0,0 +1,41 @@ +package pc.exam.pp.module.exam.controller.admin.monitor; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import pc.exam.pp.framework.common.pojo.CommonResult; +import pc.exam.pp.framework.common.pojo.PageResult; +import pc.exam.pp.framework.common.util.object.BeanUtils; +import pc.exam.pp.module.exam.controller.admin.monitor.vo.MonitorPageReqVO; +import pc.exam.pp.module.exam.controller.admin.monitor.vo.MonitorRespVO; +import pc.exam.pp.module.exam.controller.admin.paper.vo.PaperTaskPageVo; +import pc.exam.pp.module.exam.dal.dataobject.monitor.MonitorDO; +import pc.exam.pp.module.exam.dal.dataobject.monitor.MonitorTaskDO; +import pc.exam.pp.module.exam.service.monitor.MonitorTaskService; + +import static pc.exam.pp.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 考试任务监控管理") +@RestController +@RequestMapping("/exam/monitorTask") +@Validated +public class MonitorTaskController { + + @Resource + private MonitorTaskService monitorTaskService; + + + + @GetMapping("/page") + @Operation(summary = "获得监控管理分页") + public CommonResult> getMonitorPage(@Valid PaperTaskPageVo educationPaperTask ) { + PageResult pageResult = monitorTaskService.getMonitorPage(educationPaperTask); + return success(BeanUtils.toBean(pageResult, MonitorTaskDO.class)); + } + +} diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/monitor/vo/MonitorPageReqVO.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/monitor/vo/MonitorPageReqVO.java index bd50df61..a18ac909 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/monitor/vo/MonitorPageReqVO.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/monitor/vo/MonitorPageReqVO.java @@ -39,6 +39,8 @@ private String paperNum; @Schema(description = "场次", example = "赵六") private String taskName; +private String taskId; + private String taskType; @Schema(description = "机器ip") diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/paper/EducationPaperPersonController.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/paper/EducationPaperPersonController.java index 12709482..380ee481 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/paper/EducationPaperPersonController.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/paper/EducationPaperPersonController.java @@ -101,7 +101,6 @@ public class EducationPaperPersonController @GetMapping(value = "/getSessionStu") public CommonResult> getSessionStu(ExamPersonVo examPersonVo) { PageResult list = educationPaperPersonService.selectEducationPaperPersonBySessionId(examPersonVo.getSessionId()); - return CommonResult.success(BeanUtils.toBean(list, PersonRepDto.class)); } diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/paper/vo/PaperTaskPageVo.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/paper/vo/PaperTaskPageVo.java index 08e8c907..6c4cd0a1 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/paper/vo/PaperTaskPageVo.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/paper/vo/PaperTaskPageVo.java @@ -23,6 +23,8 @@ public class PaperTaskPageVo extends PageParam { //@Excel(name = "任务名称") private String taskName; + private String taskNum; + /** 专业 */ //@Excel(name = "专业") private String taskSpecialty; diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/dataobject/EducationPaper.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/dataobject/EducationPaper.java index 5858ace4..0e1dc294 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/dataobject/EducationPaper.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/dataobject/EducationPaper.java @@ -48,5 +48,7 @@ public class EducationPaper extends TenantBaseDO // @Excel(name = "0启用1不启") private String status; + private String paperScore; + } diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/dataobject/EducationPaperSession.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/dataobject/EducationPaperSession.java index 20acb680..4cb1777f 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/dataobject/EducationPaperSession.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/dataobject/EducationPaperSession.java @@ -8,6 +8,7 @@ import lombok.Data; import lombok.experimental.Accessors; import org.joda.time.DateTime; +import java.sql.Time; import java.util.Date; /** @@ -45,7 +46,8 @@ public class EducationPaperSession @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") //@Excel(name = "考试结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date endTime; - + @JsonFormat(pattern = "HH:mm:ss", timezone = "Asia/Shanghai") + private Time answerTime; /** 开始考试前分钟,允许入场 */ // @Excel(name = "开始考试前分钟,允许入场") private String allowEntry; diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/dataobject/EducationPaperTask.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/dataobject/EducationPaperTask.java index 5f0550fe..6cf3a6a5 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/dataobject/EducationPaperTask.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/dataobject/EducationPaperTask.java @@ -29,6 +29,8 @@ public class EducationPaperTask extends TenantBaseDO @TableId private String taskId; + private String taskNum; + /** 任务名称 */ //@Excel(name = "任务名称") private String taskName; diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/dataobject/monitor/MonitorTaskDO.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/dataobject/monitor/MonitorTaskDO.java new file mode 100644 index 00000000..6efc90b8 --- /dev/null +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/dataobject/monitor/MonitorTaskDO.java @@ -0,0 +1,43 @@ +package pc.exam.pp.module.exam.dal.dataobject.monitor; + +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class MonitorTaskDO { + + /** 主键ID */ + private String taskId; + + private String taskNum; + + /** 任务名称 */ + private String taskName; + + /** 专业 */ + private String taskSpecialty; + + /** 试卷任务模式 */ + private String taskType; + + private String status; + + private String paperCount; + + private String paperScore; + + private String queNum; + //参数人数 + private String joinCount; + //未考人数 + private String notReadCount; + //考试人数 + private String haveReadCount; + //完成人数 + private String passCount; + +} diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/mysql/monitor/MonitorMapper.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/mysql/monitor/MonitorMapper.java index fc1b0fb3..2dde6519 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/mysql/monitor/MonitorMapper.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/mysql/monitor/MonitorMapper.java @@ -6,6 +6,7 @@ import pc.exam.pp.framework.mybatis.core.query.LambdaQueryWrapperX; import pc.exam.pp.framework.mybatis.core.mapper.BaseMapperX; import org.apache.ibatis.annotations.Mapper; import pc.exam.pp.module.exam.controller.admin.monitor.vo.MonitorPageReqVO; +import pc.exam.pp.module.exam.controller.admin.paper.vo.DeleteRequestVo; import pc.exam.pp.module.exam.dal.dataobject.monitor.MonitorDO; import java.util.Arrays; @@ -16,24 +17,36 @@ import java.util.Optional; * * @author 管理员 */ - @Mapper - public interface MonitorMapper extends BaseMapperX { +@Mapper +public interface MonitorMapper extends BaseMapperX { - default PageResult selectPage(MonitorPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .inIfPresent(MonitorDO::getMonitorId, Optional.ofNullable(reqVO.getMonitorId()).map(Arrays::asList).orElse(null)) - .likeIfPresent(MonitorDO::getUsername, reqVO.getUsername()) - .likeIfPresent(MonitorDO::getNickname, reqVO.getNickname()) - .likeIfPresent(MonitorDO::getClassName, reqVO.getClassName()) - .eqIfPresent(MonitorDO::getExamStatus, reqVO.getExamStatus()) - .eqIfPresent(MonitorDO::getTaskType, reqVO.getTaskType()) - .eqIfPresent(MonitorDO::getScore, reqVO.getScore()) - .eqIfPresent(MonitorDO::getPaperNum, reqVO.getPaperNum()) - .likeIfPresent(MonitorDO::getTaskName, reqVO.getTaskName()) - .eqIfPresent(MonitorDO::getIp, reqVO.getIp()) - .betweenIfPresent(MonitorDO::getRemainingTime, reqVO.getRemainingTime()) - .betweenIfPresent(MonitorDO::getCreateTime, reqVO.getCreateTime()) - .orderByDesc(MonitorDO::getCreateTime)); +default PageResult selectPage(MonitorPageReqVO reqVO) { +return selectPage(reqVO, new LambdaQueryWrapperX() +.inIfPresent(MonitorDO::getMonitorId, Optional.ofNullable(reqVO.getMonitorId()).map(Arrays::asList).orElse(null)) +.likeIfPresent(MonitorDO::getUsername, reqVO.getUsername()) +.likeIfPresent(MonitorDO::getTaskId, reqVO.getTaskId()) +.likeIfPresent(MonitorDO::getNickname, reqVO.getNickname()) +.likeIfPresent(MonitorDO::getClassName, reqVO.getClassName()) +.eqIfPresent(MonitorDO::getExamStatus, reqVO.getExamStatus()) +.eqIfPresent(MonitorDO::getTaskType, reqVO.getTaskType()) +.eqIfPresent(MonitorDO::getScore, reqVO.getScore()) +.eqIfPresent(MonitorDO::getPaperNum, reqVO.getPaperNum()) +.likeIfPresent(MonitorDO::getTaskName, reqVO.getTaskName()) +.eqIfPresent(MonitorDO::getIp, reqVO.getIp()) +.betweenIfPresent(MonitorDO::getRemainingTime, reqVO.getRemainingTime()) +.betweenIfPresent(MonitorDO::getCreateTime, reqVO.getCreateTime()) +.orderByDesc(MonitorDO::getCreateTime)); +} + + default void removeMonitorByStuIdAndTaskId(DeleteRequestVo vo) { + if (vo.getStudentIds() == null || vo.getStudentIds().isEmpty() || vo.getTaskId() == null) { + return; + } + LambdaQueryWrapperX query = new LambdaQueryWrapperX() + .in(MonitorDO::getStuId, vo.getStudentIds()) + .eq(MonitorDO::getTaskId, vo.getTaskId()); + delete(query); } - } \ No newline at end of file + +} \ No newline at end of file diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/mysql/monitor/MonitorTaskMapper.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/mysql/monitor/MonitorTaskMapper.java new file mode 100644 index 00000000..b41d2a81 --- /dev/null +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/mysql/monitor/MonitorTaskMapper.java @@ -0,0 +1,7 @@ +package pc.exam.pp.module.exam.dal.mysql.monitor; + +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface MonitorTaskMapper { +} diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/mysql/paper/EducationPaperTaskMapper.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/mysql/paper/EducationPaperTaskMapper.java index c1c99918..83bdf4b3 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/mysql/paper/EducationPaperTaskMapper.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/mysql/paper/EducationPaperTaskMapper.java @@ -42,6 +42,7 @@ public interface EducationPaperTaskMapper extends BaseMapperX getMonitorPage(PaperTaskPageVo pageReqVO); + +} diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/monitor/MonitorTaskServiceImpl.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/monitor/MonitorTaskServiceImpl.java new file mode 100644 index 00000000..a6521765 --- /dev/null +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/monitor/MonitorTaskServiceImpl.java @@ -0,0 +1,130 @@ +package pc.exam.pp.module.exam.service.monitor; + +import com.alibaba.excel.util.StringUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; +import pc.exam.pp.framework.common.pojo.PageResult; +import pc.exam.pp.module.exam.controller.admin.monitor.vo.MonitorPageReqVO; +import pc.exam.pp.module.exam.controller.admin.paper.vo.PaperTaskPageVo; +import pc.exam.pp.module.exam.dal.dataobject.EducationPaper; +import pc.exam.pp.module.exam.dal.dataobject.EducationPaperQu; +import pc.exam.pp.module.exam.dal.dataobject.EducationPaperTask; +import pc.exam.pp.module.exam.dal.dataobject.monitor.MonitorDO; +import pc.exam.pp.module.exam.dal.dataobject.monitor.MonitorTaskDO; +import pc.exam.pp.module.exam.dal.mysql.monitor.MonitorMapper; +import pc.exam.pp.module.exam.dal.mysql.monitor.MonitorTaskMapper; +import pc.exam.pp.module.exam.dal.mysql.paper.EducationPaperMapper; +import pc.exam.pp.module.exam.dal.mysql.paper.EducationPaperPersonMapper; +import pc.exam.pp.module.exam.dal.mysql.paper.EducationPaperQuMapper; +import pc.exam.pp.module.exam.dal.mysql.paper.EducationPaperTaskMapper; + +import java.util.ArrayList; +import java.util.List; + +@Service +@Validated +public class MonitorTaskServiceImpl implements MonitorTaskService{ + @Resource + private MonitorMapper monitorMapper; + @Resource + private EducationPaperTaskMapper educationPaperTaskMapper; + @Resource + private EducationPaperMapper educationPaperMapper; + @Resource + private MonitorTaskMapper monitorTaskMapper; + @Resource + private EducationPaperPersonMapper educationPaperPersonMapper; + @Resource + private EducationPaperQuMapper educationPaperQuMapper; + @Override + public PageResult getMonitorPage(PaperTaskPageVo pageReqVO) { + + PageResult educationPaperTasks = educationPaperTaskMapper.selectEducationPaperTaskList(pageReqVO); + List list = educationPaperTasks.getList(); + List monitorTaskDOList=new ArrayList<>(); + if (list!=null&&list.size()>0){ + for (EducationPaperTask educationPaperTask : list) { + MonitorTaskDO monitorTaskDO=new MonitorTaskDO(); + + monitorTaskDO.setTaskId( educationPaperTask.getTaskId()); + monitorTaskDO.setTaskType(educationPaperTask.getTaskType()); + monitorTaskDO.setTaskName(educationPaperTask.getTaskName()); + monitorTaskDO.setTaskNum(educationPaperTask.getTaskNum()); + monitorTaskDO.setStatus(educationPaperTask.getStatus()); + monitorTaskDO.setTaskSpecialty(educationPaperTask.getTaskSpecialty()); + + List educationPapers = educationPaperMapper.selectPaperListByTaskId(educationPaperTask.getTaskId()); + if (educationPapers!=null&&educationPapers.size()>0){ + monitorTaskDO.setPaperCount(String.valueOf(educationPapers.size())); + int totalScore = 0; + int totalQueNum = 0; + //todo 根据试卷 + for (EducationPaper educationPaper : educationPapers) { + //累加分数 和 试题个数 + String paperScore = educationPaper.getPaperScore(); + if (StringUtils.isNotBlank(paperScore)) { + try { + totalScore += Integer.parseInt(paperScore); + } catch (NumberFormatException e) { + // 可以记录日志或跳过 + } + } + List educationPaperQus = educationPaperQuMapper.selectPaperQuListByPaperId(educationPaper.getPaperId()); + + if (educationPaperQus != null) { + totalQueNum += educationPaperQus.size(); + } + + + } + monitorTaskDO.setPaperScore(String.valueOf(totalScore)); + monitorTaskDO.setQueNum(String.valueOf(totalQueNum)); + }else { + monitorTaskDO.setPaperCount("0"); + monitorTaskDO.setQueNum("0"); + monitorTaskDO.setPaperScore("0"); + } + + List monitorDOList = monitorMapper.selectList( + new LambdaQueryWrapper() + .eq(MonitorDO::getTaskId, educationPaperTask.getTaskId()) + ); + if (monitorDOList!=null&&monitorDOList.size()>0){ + //参数 + monitorTaskDO.setJoinCount(String.valueOf(monitorDOList.size())); + // 已考人数(exam_status == 1) + String haveReadCount = String.valueOf(monitorDOList.stream() + .filter(monitor -> monitor.getExamStatus() != null && "1".equals(monitor.getExamStatus())) + .count()); + monitorTaskDO.setHaveReadCount(haveReadCount); + //未考 + String NothaveReadCount = String.valueOf(monitorDOList.stream() + .filter(monitor -> monitor.getExamStatus() != null &&"0".equals(monitor.getExamStatus())) + .count()); + monitorTaskDO.setNotReadCount(NothaveReadCount); + //完成 + String PassCount = String.valueOf(monitorDOList.stream() + .filter(monitor -> monitor.getExamStatus() != null && "2".equals(monitor.getExamStatus())) + .count()); + + monitorTaskDO.setPassCount(PassCount); + }else { + monitorTaskDO.setJoinCount("0"); + monitorTaskDO.setHaveReadCount("0"); + monitorTaskDO.setNotReadCount("0"); + monitorTaskDO.setPassCount("0"); + } + monitorTaskDOList.add(monitorTaskDO); + } + } + + PageResult pageResult=new PageResult(); + pageResult.setList(monitorTaskDOList); + pageResult.setTotal((long) monitorTaskDOList.size()); + + + return pageResult; + } +} diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/paper/EducationPaperPersonServiceImpl.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/paper/EducationPaperPersonServiceImpl.java index 82eaf43b..f2da8756 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/paper/EducationPaperPersonServiceImpl.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/paper/EducationPaperPersonServiceImpl.java @@ -251,6 +251,10 @@ public class EducationPaperPersonServiceImpl implements IEducationPaperPersonSer String key = "userCache:" + reqVO.getTaskId()+":"+studentId; redisTemplate.delete(key); } + DeleteRequestVo deleteRequestVo=new DeleteRequestVo(); + deleteRequestVo.setStudentIds(reqVO.getStudentIds()); + deleteRequestVo.setTaskId(reqVO.getTaskId()); + monitorMapper.removeMonitorByStuIdAndTaskId(deleteRequestVo); return educationPaperPersonMapper.removeSessionStu(reqVO); } @@ -261,6 +265,9 @@ public class EducationPaperPersonServiceImpl implements IEducationPaperPersonSer String key = "userCache:" + deleteRequestVo.getTaskId()+":"+studentId; redisTemplate.delete(key); } + + monitorMapper.removeMonitorByStuIdAndTaskId(deleteRequestVo); + return educationPaperPersonMapper.removeTaskStu(deleteRequestVo); } diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/paper/EducationPaperSchemeServiceImpl.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/paper/EducationPaperSchemeServiceImpl.java index 6b2af428..e0f4646c 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/paper/EducationPaperSchemeServiceImpl.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/paper/EducationPaperSchemeServiceImpl.java @@ -86,17 +86,17 @@ public class EducationPaperSchemeServiceImpl implements IEducationPaperSchemeSer public int updateEducationPaperScheme(EducationPaperScheme educationPaperScheme) { - // 将 List 转换为逗号分隔的字符串 - List keyword = educationPaperScheme.getKeyword(); - String keywordStr = String.join(",", keyword); - // 将 List 转换为逗号分隔的字符串 - List pointName = educationPaperScheme.getPointName(); - String pointNameStr = pointName.stream() - .map(String::valueOf) // 将 Integer 转换为 String - .collect(Collectors.joining(",")); // 使用逗号连接 - - educationPaperScheme.setKeywords(keywordStr); - educationPaperScheme.setPointNames(pointNameStr); +// // 将 List 转换为逗号分隔的字符串 +// List keyword = educationPaperScheme.getKeyword(); +// String keywordStr = String.join(",", keyword); +// // 将 List 转换为逗号分隔的字符串 +// List pointName = educationPaperScheme.getPointName(); +// String pointNameStr = pointName.stream() +// .map(String::valueOf) // 将 Integer 转换为 String +// .collect(Collectors.joining(",")); // 使用逗号连接 +// +// educationPaperScheme.setKeywords(keywordStr); +// educationPaperScheme.setPointNames(pointNameStr); return educationPaperSchemeMapper.updateEducationPaperScheme(educationPaperScheme); } diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/paper/EducationPaperServiceImpl.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/paper/EducationPaperServiceImpl.java index b5b8d314..2bc4fa20 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/paper/EducationPaperServiceImpl.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/paper/EducationPaperServiceImpl.java @@ -106,7 +106,7 @@ public class EducationPaperServiceImpl implements IEducationPaperService public int deleteEducationPaperByPaperIds(String[] paperIds) { - + educationPaperQuMapper.deleteEducationPaperQuByPaperIds(paperIds); return educationPaperMapper.deleteEducationPaperByPaperIds(paperIds); } @@ -369,17 +369,18 @@ public class EducationPaperServiceImpl implements IEducationPaperService //构建试卷试题对象 List educationPaperQus=new ArrayList<>(); + int sort = 1; // 从1开始 if (examQuestionIds!=null&& examQuestionIds.size()>0){ for (String examQuestionId : examQuestionIds) { EducationPaperQu educationPaperQu=new EducationPaperQu(); educationPaperQu.setPaperId(uuid); educationPaperQu.setQuId(examQuestionId); + educationPaperQu.setSort(String.valueOf(sort++)); educationPaperQus.add(educationPaperQu); } educationPaperQuMapper.insertEducationPaperQuList(educationPaperQus); } - List quIds =educationPaperQuMapper.selectPaperQuByPaperId(uuid); List examQuestionList=examQuestionMapper.selectExamQuestionListByQuIds(quIds); diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/paper/EducationPaperTaskServiceImpl.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/paper/EducationPaperTaskServiceImpl.java index 7fcdc5bd..cd5bd47c 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/paper/EducationPaperTaskServiceImpl.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/paper/EducationPaperTaskServiceImpl.java @@ -173,7 +173,6 @@ public class EducationPaperTaskServiceImpl implements IEducationPaperTaskService */ @Override public int deleteEducationPaperTaskByTaskIds(String[] taskIds) { - System.out.println(taskIds); return educationPaperTaskMapper.deleteEducationPaperTaskByTaskIds(taskIds); } diff --git a/exam-module-exam/exam-module-exam-biz/src/main/resources/mapper/exam/EducationPaperMapper.xml b/exam-module-exam/exam-module-exam-biz/src/main/resources/mapper/exam/EducationPaperMapper.xml index fd845370..8babb58f 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/resources/mapper/exam/EducationPaperMapper.xml +++ b/exam-module-exam/exam-module-exam-biz/src/main/resources/mapper/exam/EducationPaperMapper.xml @@ -9,6 +9,7 @@ + @@ -48,11 +49,10 @@ - select paper_id, task_id, num,counts, roll_up, is_ab, status ,create_time,update_time,creator,updater ,deleted from education_paper + select paper_id, task_id, num,counts, paper_score,roll_up, is_ab, status ,create_time,update_time,creator,updater ,deleted from education_paper -