From 541e77765ef787c48c4b0f694b499a4fc5196d6e Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期三, 26 六月 2024 16:13:16 +0800 Subject: [PATCH] feat:考试监控 --- src/main/resources/mapper/ExamSubmitTempMapper.xml | 32 ++++++++-- src/main/java/com/ycl/jxkg/domain/query/ExamQuery.java | 11 ++- src/main/java/com/ycl/jxkg/service/ExamService.java | 7 ++ src/main/java/com/ycl/jxkg/mapper/ExamSubmitTempMapper.java | 13 +++ src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java | 25 +++++--- src/main/java/com/ycl/jxkg/domain/vo/ExamSubmitTempVO.java | 17 ++--- src/main/resources/mapper/ExamPaperAnswerMapper.xml | 2 src/main/java/com/ycl/jxkg/controller/admin/ExamController.java | 29 ++++++--- 8 files changed, 91 insertions(+), 45 deletions(-) diff --git a/src/main/java/com/ycl/jxkg/controller/admin/ExamController.java b/src/main/java/com/ycl/jxkg/controller/admin/ExamController.java index f9d5deb..77c04b8 100644 --- a/src/main/java/com/ycl/jxkg/controller/admin/ExamController.java +++ b/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); + } + } diff --git a/src/main/java/com/ycl/jxkg/domain/query/ExamQuery.java b/src/main/java/com/ycl/jxkg/domain/query/ExamQuery.java index 0a39117..dbe51a5 100644 --- a/src/main/java/com/ycl/jxkg/domain/query/ExamQuery.java +++ b/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; diff --git a/src/main/java/com/ycl/jxkg/domain/vo/ExamSubmitTempVO.java b/src/main/java/com/ycl/jxkg/domain/vo/ExamSubmitTempVO.java index c844d63..5223c50 100644 --- a/src/main/java/com/ycl/jxkg/domain/vo/ExamSubmitTempVO.java +++ b/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; /** 鐘舵�侊細涓存椂銆佷繚瀛� */ diff --git a/src/main/java/com/ycl/jxkg/mapper/ExamSubmitTempMapper.java b/src/main/java/com/ycl/jxkg/mapper/ExamSubmitTempMapper.java index 039ac76..cb87083 100644 --- a/src/main/java/com/ycl/jxkg/mapper/ExamSubmitTempMapper.java +++ b/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); + } diff --git a/src/main/java/com/ycl/jxkg/service/ExamService.java b/src/main/java/com/ycl/jxkg/service/ExamService.java index 47492f4..0dcb219 100644 --- a/src/main/java/com/ycl/jxkg/service/ExamService.java +++ b/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); } diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java index f677a78..33c5843 100644 --- a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java +++ b/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)); + } } diff --git a/src/main/resources/mapper/ExamPaperAnswerMapper.xml b/src/main/resources/mapper/ExamPaperAnswerMapper.xml index e40180e..aa22944 100644 --- a/src/main/resources/mapper/ExamPaperAnswerMapper.xml +++ b/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 diff --git a/src/main/resources/mapper/ExamSubmitTempMapper.xml b/src/main/resources/mapper/ExamSubmitTempMapper.xml index 43017bc..4bbf61e 100644 --- a/src/main/resources/mapper/ExamSubmitTempMapper.xml +++ b/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> -- Gitblit v1.8.0