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