From 204909ac937a012b8a753ed2dc83a6e2877139c8 Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期四, 11 七月 2024 14:55:00 +0800 Subject: [PATCH] feat:答卷次数列表 --- src/main/java/com/ycl/jxkg/domain/vo/admin/paper/ExamPaperAnswerPageRequestVO.java | 2 + src/main/java/com/ycl/jxkg/domain/vo/admin/paper/UserAnswerPageRequestVO.java | 17 ++++++++ src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerExportVO.java | 6 +++ src/main/resources/mapper/ExamPaperScoreMapper.xml | 25 +++++++++++- src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/UserAnswerPageResponseVO.java | 17 ++++++++ src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java | 4 ++ src/main/java/com/ycl/jxkg/service/ExamPaperScoreService.java | 9 ++++ src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java | 8 ++++ src/main/java/com/ycl/jxkg/controller/admin/ExamPaperScoreController.java | 10 +++++ 9 files changed, 96 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/ycl/jxkg/controller/admin/ExamPaperScoreController.java b/src/main/java/com/ycl/jxkg/controller/admin/ExamPaperScoreController.java index e7462d0..362370a 100644 --- a/src/main/java/com/ycl/jxkg/controller/admin/ExamPaperScoreController.java +++ b/src/main/java/com/ycl/jxkg/controller/admin/ExamPaperScoreController.java @@ -10,8 +10,10 @@ import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperMarkNavbarVO; import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperScoreVO; import com.ycl.jxkg.domain.vo.admin.paper.ExamPaperAnswerPageRequestVO; +import com.ycl.jxkg.domain.vo.admin.paper.UserAnswerPageRequestVO; import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerExportVO; import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO; +import com.ycl.jxkg.domain.vo.student.exampaper.UserAnswerPageResponseVO; import com.ycl.jxkg.service.ExamPaperScoreService; import com.ycl.jxkg.service.UserService; import com.ycl.jxkg.utils.ExcelUtils; @@ -24,6 +26,9 @@ import java.util.List; import java.util.Objects; +/** + * @author gonghl + */ @RequiredArgsConstructor @RestController("AdminExamPaperAnswerController") @RequestMapping(value = "/api/admin/examPaperAnswer") @@ -42,6 +47,11 @@ return Result.ok(examPaperScoreService.adminPage(model)); } + @PostMapping("/pageUser") + public Result<PageInfo<UserAnswerPageResponseVO>> pageUser(@RequestBody UserAnswerPageRequestVO model) { + return Result.ok(examPaperScoreService.pageUser(model)); + } + @RequestMapping(value = "/exportExcel", method = RequestMethod.POST) @SneakyThrows public void exportExcel(ExamPaperAnswerPageRequestVO model, HttpServletResponse response) { diff --git a/src/main/java/com/ycl/jxkg/domain/vo/admin/paper/ExamPaperAnswerPageRequestVO.java b/src/main/java/com/ycl/jxkg/domain/vo/admin/paper/ExamPaperAnswerPageRequestVO.java index f440fb6..94bce2f 100644 --- a/src/main/java/com/ycl/jxkg/domain/vo/admin/paper/ExamPaperAnswerPageRequestVO.java +++ b/src/main/java/com/ycl/jxkg/domain/vo/admin/paper/ExamPaperAnswerPageRequestVO.java @@ -18,6 +18,8 @@ private String userName; + private Integer userId; + private String examName; } diff --git a/src/main/java/com/ycl/jxkg/domain/vo/admin/paper/UserAnswerPageRequestVO.java b/src/main/java/com/ycl/jxkg/domain/vo/admin/paper/UserAnswerPageRequestVO.java new file mode 100644 index 0000000..31b7d61 --- /dev/null +++ b/src/main/java/com/ycl/jxkg/domain/vo/admin/paper/UserAnswerPageRequestVO.java @@ -0,0 +1,17 @@ +package com.ycl.jxkg.domain.vo.admin.paper; + +import com.ycl.jxkg.base.BasePage; +import lombok.Data; + +/** + * @author gonghl + */ +@Data +public class UserAnswerPageRequestVO extends BasePage { + + /** + * 鐢ㄦ埛濮撳悕 + */ + private String name; + +} diff --git a/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerExportVO.java b/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerExportVO.java index 40f1908..3abdb6a 100644 --- a/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerExportVO.java +++ b/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerExportVO.java @@ -16,6 +16,12 @@ @ContentStyle(horizontalAlignment= HorizontalAlignmentEnum.CENTER) public class ExamPaperAnswerExportVO { + @ExcelProperty("鑰冭瘯鍚嶇О") + private String examName; + + @ExcelProperty("璇曞嵎鍚嶇О") + private String paperName; + @ExcelProperty("濮撳悕") private String userName; diff --git a/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/UserAnswerPageResponseVO.java b/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/UserAnswerPageResponseVO.java new file mode 100644 index 0000000..f8fec2e --- /dev/null +++ b/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/UserAnswerPageResponseVO.java @@ -0,0 +1,17 @@ +package com.ycl.jxkg.domain.vo.student.exampaper; + +import lombok.Data; + +/** + * @author gonghl + */ +@Data +public class UserAnswerPageResponseVO { + + private Integer id; + + private String userName; + + private Integer examCount; + +} diff --git a/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java b/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java index 2e75e96..800f5ad 100644 --- a/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java +++ b/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java @@ -4,8 +4,10 @@ import com.ycl.jxkg.domain.entity.ExamPaperScore; import com.ycl.jxkg.domain.other.KeyValue; import com.ycl.jxkg.domain.vo.admin.paper.ExamPaperAnswerPageRequestVO; +import com.ycl.jxkg.domain.vo.admin.paper.UserAnswerPageRequestVO; import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO; import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageVO; +import com.ycl.jxkg.domain.vo.student.exampaper.UserAnswerPageResponseVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -28,4 +30,6 @@ List<ExamPaperAnswerPageResponseVO> pageExamPaper(ExamPaperAnswerPageRequestVO model); ExamPaperScore getByExamIdUserId(@Param("examId") Integer examId, @Param("userId") Integer userId); + + List<UserAnswerPageResponseVO> pageUser(UserAnswerPageRequestVO model); } diff --git a/src/main/java/com/ycl/jxkg/service/ExamPaperScoreService.java b/src/main/java/com/ycl/jxkg/service/ExamPaperScoreService.java index 5a24a31..9ac0ec6 100644 --- a/src/main/java/com/ycl/jxkg/service/ExamPaperScoreService.java +++ b/src/main/java/com/ycl/jxkg/service/ExamPaperScoreService.java @@ -6,9 +6,11 @@ import com.ycl.jxkg.domain.entity.ExamPaperScore; import com.ycl.jxkg.domain.entity.User; import com.ycl.jxkg.domain.vo.admin.paper.ExamPaperAnswerPageRequestVO; +import com.ycl.jxkg.domain.vo.admin.paper.UserAnswerPageRequestVO; import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitVO; import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO; import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageVO; +import com.ycl.jxkg.domain.vo.student.exampaper.UserAnswerPageResponseVO; import java.util.List; @@ -68,4 +70,11 @@ * @return 鏁版嵁 */ PageInfo<ExamPaperAnswerPageResponseVO> pageExamPaper(ExamPaperAnswerPageRequestVO model); + + /** + * 鐢ㄦ埛鍒楄〃 + * @param model 鏌ヨ鏉′欢 + * @return 鏁版嵁 + */ + PageInfo<UserAnswerPageResponseVO> pageUser(UserAnswerPageRequestVO model); } diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java index 5295872..23ee969 100644 --- a/src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java +++ b/src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java @@ -7,10 +7,12 @@ import com.ycl.jxkg.domain.entity.*; import com.ycl.jxkg.domain.other.KeyValue; import com.ycl.jxkg.domain.vo.admin.paper.ExamPaperAnswerPageRequestVO; +import com.ycl.jxkg.domain.vo.admin.paper.UserAnswerPageRequestVO; import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitItemVO; import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitVO; import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO; import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageVO; +import com.ycl.jxkg.domain.vo.student.exampaper.UserAnswerPageResponseVO; import com.ycl.jxkg.enums.ExamPaperTypeEnum; import com.ycl.jxkg.enums.QuestionTypeEnum; import com.ycl.jxkg.mapper.ExamPaperMapper; @@ -284,4 +286,10 @@ return PageHelper.startPage(model.getPageIndex(), model.getPageSize()).doSelectPageInfo(() -> examPaperScoreMapper.pageExamPaper(model)); } + + @Override + public PageInfo<UserAnswerPageResponseVO> pageUser(UserAnswerPageRequestVO model) { + return PageHelper.startPage(model.getPageIndex(), model.getPageSize()).doSelectPageInfo(() -> + examPaperScoreMapper.pageUser(model)); + } } diff --git a/src/main/resources/mapper/ExamPaperScoreMapper.xml b/src/main/resources/mapper/ExamPaperScoreMapper.xml index 6d32871..a29bf61 100644 --- a/src/main/resources/mapper/ExamPaperScoreMapper.xml +++ b/src/main/resources/mapper/ExamPaperScoreMapper.xml @@ -97,14 +97,22 @@ <select id="adminPage" resultType="com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO"> SELECT - a.id, a.exam_name, a.score, a.total_score, a.question_correct, a.question_count, a.do_time, a.status, a.submit_time, b.real_name AS userName, c.name as paperName + a.id, a.exam_name, a.score, a.total_score, a.question_correct, a.question_count, a.do_time, a.status, IF(a.status = 0, a.submit_time, '缂鸿��') AS submitTime, b.real_name AS userName, c.name AS paperName FROM t_exam_paper_score a INNER JOIN t_user b ON a.user_id = b.id AND b.deleted = 0 INNER JOIN t_exam_paper c ON a.paper_id = c.id AND c.deleted = 0 <where> - exam_id = #{examId} + <if test="examId != null and examId != ''"> + AND a.exam_id = #{examId} + </if> + <if test="userId != null and userId != ''"> + AND a.user_id = #{userId} + </if> <if test="userName != null and userName != ''"> AND INSTR(b.real_name, #{userName}) + </if> + <if test="examName != null and examName != ''"> + AND INSTR(a.exam_name, #{examName}) </if> </where> </select> @@ -146,4 +154,17 @@ ORDER BY t.id DESC </select> + <select id="pageUser" resultType="com.ycl.jxkg.domain.vo.student.exampaper.UserAnswerPageResponseVO"> + SELECT a.id, a.real_name AS userName, COUNT(b.id) AS examCount + FROM t_user a + LEFT JOIN t_exam_paper_score b ON a.id = b.user_id AND b.deleted = 0 + <where> + a.deleted = 0 AND a.role = 1 + <if test="name != null and name != ''"> + AND INSTR(a.real_name, #{name}) + </if> + </where> + GROUP BY a.id + </select> + </mapper> -- Gitblit v1.8.0