龚焕茏
2024-07-11 204909ac937a012b8a753ed2dc83a6e2877139c8
feat:答卷次数列表
7个文件已修改
2个文件已添加
98 ■■■■■ 已修改文件
src/main/java/com/ycl/jxkg/controller/admin/ExamPaperScoreController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/vo/admin/paper/ExamPaperAnswerPageRequestVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/vo/admin/paper/UserAnswerPageRequestVO.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerExportVO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/UserAnswerPageResponseVO.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/service/ExamPaperScoreService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ExamPaperScoreMapper.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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) {
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;
}
src/main/java/com/ycl/jxkg/domain/vo/admin/paper/UserAnswerPageRequestVO.java
New file
@@ -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;
}
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;
src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/UserAnswerPageResponseVO.java
New file
@@ -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;
}
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);
}
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);
}
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));
    }
}
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>