src/main/java/com/ycl/jxkg/controller/admin/ExamController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/domain/query/ExamQuery.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/domain/vo/ExamSubmitTempVO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/mapper/ExamSubmitTempMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/service/ExamService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/ExamPaperAnswerMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/ExamSubmitTempMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/ycl/jxkg/controller/admin/ExamController.java
@@ -1,21 +1,20 @@ package com.ycl.jxkg.controller.admin; import com.ycl.jxkg.group.Update; import com.ycl.jxkg.group.Add; import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; import lombok.RequiredArgsConstructor; import java.util.List; import org.springframework.validation.annotation.Validated; import javax.validation.constraints.NotEmpty; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import com.ycl.jxkg.service.ExamService; import com.ycl.jxkg.base.Result; import com.ycl.jxkg.domain.form.ExamForm; import com.ycl.jxkg.domain.query.ExamQuery; import com.ycl.jxkg.group.Add; import com.ycl.jxkg.group.Update; import com.ycl.jxkg.service.ExamService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.constraints.NotEmpty; import java.util.List; /** * 考试 前端控制器 @@ -94,4 +93,12 @@ public Result getMarkPaperInfo(@PathVariable("examId") Integer examId, @PathVariable("userId") Integer userId) { return examService.getMarkPaperInfo(examId, userId); } @GetMapping("/monitor/list") @PreAuthorize("hasAuthority('exam:monitor:list')") @ApiOperation(value = "考试监控列表", notes = "考试监控列表") public Result monitorList(ExamQuery query) { return examService.monitorList(query); } } src/main/java/com/ycl/jxkg/domain/query/ExamQuery.java
@@ -1,12 +1,7 @@ package com.ycl.jxkg.domain.query; import com.ycl.jxkg.domain.base.AbsQuery; import java.util.List; import org.springframework.lang.NonNull; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -22,6 +17,12 @@ /** 考试名称 */ private String examName; /** 考试id */ private Integer examId; /** 关键字 */ private String keyword; /** 班级 */ private Integer classesId; src/main/java/com/ycl/jxkg/domain/vo/ExamSubmitTempVO.java
@@ -2,14 +2,10 @@ import com.ycl.jxkg.domain.base.AbsVo; import com.ycl.jxkg.domain.entity.ExamSubmitTemp; import java.util.List; import com.ycl.jxkg.enums.general.ExamSubmitTempStatusEnum; import org.springframework.lang.NonNull; import org.springframework.beans.BeanUtils; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.beans.BeanUtils; import org.springframework.lang.NonNull; import java.util.Date; /** @@ -21,11 +17,13 @@ @Data public class ExamSubmitTempVO extends AbsVo { /** */ private Integer examId; /** */ private String examName; private Integer userId; private String userName; /** 做题耗时 秒 */ private Integer doTime; @@ -33,7 +31,6 @@ /** 提交的试卷内容 */ private String examSubmit; /** */ private Date createTime; /** 状态:临时、保存 */ src/main/java/com/ycl/jxkg/mapper/ExamSubmitTempMapper.java
@@ -1,10 +1,12 @@ package com.ycl.jxkg.mapper; import com.ycl.jxkg.domain.entity.ExamSubmitTemp; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.ycl.jxkg.domain.entity.ExamSubmitTemp; import com.ycl.jxkg.domain.query.ExamQuery; import com.ycl.jxkg.domain.vo.ExamSubmitTempVO; import java.util.List; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; /** * 提交试卷临时保存 Mapper 接口 @@ -22,4 +24,11 @@ */ ExamSubmitTempVO getById(Integer id); /** * 根据考试id获取监控列表 * @param query 考试id * @return 监控列表 */ IPage<ExamSubmitTempVO> monitorList(IPage<ExamSubmitTempVO> page, @Param("query") ExamQuery query); } src/main/java/com/ycl/jxkg/service/ExamService.java
@@ -113,4 +113,11 @@ * @return */ Result getMarkPaperInfo(Integer examId, Integer userId); /** * 根据考试id获取监控列表 * @param query 考试id * @return 监控列表 */ Result monitorList(ExamQuery query); } src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
@@ -3,29 +3,30 @@ import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.jxkg.base.Result; import com.ycl.jxkg.context.WebContext; import com.ycl.jxkg.domain.entity.*; import com.ycl.jxkg.domain.entity.Exam; import com.ycl.jxkg.domain.entity.ExamPaper; import com.ycl.jxkg.domain.entity.ExamSubmitTemp; import com.ycl.jxkg.domain.entity.Question; import com.ycl.jxkg.domain.exam.PaperFixQuestionDTO; import com.ycl.jxkg.domain.exam.PaperQuestionSettingDTO; import com.ycl.jxkg.domain.form.ExamForm; import com.ycl.jxkg.domain.query.ExamQuery; import com.ycl.jxkg.domain.question.QuestionObject; import com.ycl.jxkg.domain.vo.*; import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperEditRequestVO; import com.ycl.jxkg.enums.ExamPaperTypeEnum; import com.ycl.jxkg.enums.QuestionTypeEnum; import com.ycl.jxkg.enums.general.ExamStatusEnum; import com.ycl.jxkg.enums.general.ExamSubmitTempStatusEnum; import com.ycl.jxkg.mapper.*; import com.ycl.jxkg.service.ExamPaperService; import com.ycl.jxkg.service.ExamService; import com.ycl.jxkg.base.Result; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.jxkg.domain.form.ExamForm; import com.ycl.jxkg.domain.query.ExamQuery; import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; import com.ycl.jxkg.utils.PageUtil; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.transaction.annotation.Transactional; import org.springframework.stereotype.Service; import org.springframework.util.Assert; import org.springframework.util.StringUtils; @@ -426,4 +427,10 @@ } return Result.ok(vo); } @Override public Result monitorList(ExamQuery query) { IPage<ExamSubmitTempVO> page = PageUtil.getPage(query, ExamSubmitTempVO.class); return Result.ok().data(examSubmitTempMapper.monitorList(page, query)); } } src/main/resources/mapper/ExamPaperAnswerMapper.xml
@@ -96,7 +96,7 @@ IFNULL(COUNT(DISTINCT f.id), 0) AS personTotalNum, t.exam_name FROM t_exam_paper a INNER JOIN t_exam t ON a.id = t.exam_paper_id AND t.status = 'finished' AND t.deleted = 0 INNER JOIN t_exam t ON a.id = t.exam_paper_id AND t.deleted = 0 LEFT JOIN t_subject b ON a.subject_id = b.id LEFT JOIN t_user c ON t.teacher_id = c.id LEFT JOIN t_exam_paper_answer d ON a.id = d.exam_paper_id src/main/resources/mapper/ExamSubmitTempMapper.xml
@@ -12,12 +12,6 @@ <result column="status" property="status" /> </resultMap> <select id="getById" resultMap="BaseResultMap"> SELECT TEST.exam_id, @@ -33,7 +27,6 @@ TEST.id = #{id} AND TEST.deleted = 0 </select> <select id="getPage" resultMap="BaseResultMap"> SELECT TEST.exam_id, @@ -49,4 +42,29 @@ TEST.deleted = 0 </select> <select id="monitorList" resultType="com.ycl.jxkg.domain.vo.ExamSubmitTempVO"> SELECT TEST.exam_id, TEST.user_id, TEST.do_time, TEST.exam_submit, TEST.create_time, TEST.status, TEST.id, TE.exam_name, TU.real_name FROM t_exam_submit_temp TEST INNER JOIN t_user TU ON TU.id = TEST.user_id AND TU.deleted = 0 INNER JOIN t_exam TE ON TE.id = TEST.exam_id AND TE.deleted = 0 WHERE TEST.deleted = 0 <if test="query.examId != null"> AND TEST.exam_id = #{query.examId} </if> <if test="query.keyword != null and query.keyword != ''"> AND (INSTR(TU.real_name, #{query.keyword})) OR (INSTR(TE.exam_name, #{query.keyword}) </if> </select> </mapper>