From 9a3284f88a52411db022edc686390c0dd8a1823e Mon Sep 17 00:00:00 2001 From: 17808 <1780814303@qq.com> Date: 星期三, 01 十一月 2023 15:13:58 +0800 Subject: [PATCH] 成绩统计后端 --- src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java | 12 ++++ src/main/java/com/mindskip/xzs/viewmodel/student/exampaper/ExamPaperAnswerPageResponseVM.java | 9 +++ src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java | 3 + src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java | 16 +++-- src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java | 6 +- src/main/java/com/mindskip/xzs/viewmodel/admin/paper/ExamPaperGradePageRequestVM.java | 47 +++++++++++++++ src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java | 8 ++ src/main/java/com/mindskip/xzs/viewmodel/admin/exam/ExamPaperEditRequestVM.java | 4 - src/main/resources/mapper/ExamPaperAnswerMapper.xml | 20 ++++++ 9 files changed, 109 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java b/src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java index 4a0213e..d73aac7 100644 --- a/src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java +++ b/src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java @@ -70,6 +70,11 @@ * 鎻愪氦鏃堕棿 */ private Date createTime; + /** + * 鑰冭瘯娆℃暟 + */ + private Integer counts; + private Integer taskExamId; @@ -192,4 +197,11 @@ public void setTaskExamId(Integer taskExamId) { this.taskExamId = taskExamId; } + public Integer getCounts() { + return counts; + } + + public void setCounts(Integer counts) { + this.counts = counts; + } } diff --git a/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java b/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java index 2539ca7..62b874e 100644 --- a/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java +++ b/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java @@ -3,6 +3,7 @@ import com.mindskip.xzs.domain.ExamPaperAnswer; import com.mindskip.xzs.domain.ExamTemplatesUserCount; import com.mindskip.xzs.domain.other.KeyValue; +import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradePageRequestVM; import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageVM; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -28,4 +29,6 @@ List<ExamPaperAnswer> selectByPaperName(@Param("paperName") String paperName); List<ExamPaperAnswer> getByExamPaperIdAndUserId(@Param("examTemplatesUserCount")List<ExamTemplatesUserCount> examTemplatesUserCount); + + List<ExamPaperAnswer> adminPageByGrade(ExamPaperGradePageRequestVM grade); } diff --git a/src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java b/src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java index 50af730..25f191b 100644 --- a/src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java +++ b/src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java @@ -1,14 +1,13 @@ package com.mindskip.xzs.service; +import com.github.pagehelper.PageInfo; import com.mindskip.xzs.domain.ExamPaperAnswer; import com.mindskip.xzs.domain.ExamPaperAnswerInfo; import com.mindskip.xzs.domain.ExamTemplatesUserCount; import com.mindskip.xzs.domain.User; +import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradePageRequestVM; import com.mindskip.xzs.viewmodel.student.exam.ExamPaperSubmitVM; -import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageResponseVM; import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageVM; -import com.github.pagehelper.PageInfo; -import org.apache.ibatis.annotations.Param; import java.util.List; @@ -60,4 +59,5 @@ List<ExamPaperAnswer> getByExamPaperIdAndUserId(List<ExamTemplatesUserCount> examTemplatesUserCount); + PageInfo<ExamPaperAnswer> adminPageByGrade(ExamPaperGradePageRequestVM grade); } diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java index 40f3a87..ead6f2b 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java +++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java @@ -1,14 +1,15 @@ package com.mindskip.xzs.service.impl; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import com.mindskip.xzs.domain.*; import com.mindskip.xzs.domain.enums.ExamPaperAnswerStatusEnum; import com.mindskip.xzs.domain.enums.ExamPaperTypeEnum; import com.mindskip.xzs.domain.enums.QuestionTypeEnum; import com.mindskip.xzs.domain.exam.ExamPaperTitleItemObject; -import com.mindskip.xzs.domain.other.KeyValue; import com.mindskip.xzs.domain.other.ExamPaperAnswerUpdate; +import com.mindskip.xzs.domain.other.KeyValue; import com.mindskip.xzs.domain.task.TaskItemAnswerObject; -import com.mindskip.xzs.repository.*; import com.mindskip.xzs.repository.ExamPaperAnswerMapper; import com.mindskip.xzs.repository.ExamPaperMapper; import com.mindskip.xzs.repository.QuestionMapper; @@ -19,13 +20,10 @@ import com.mindskip.xzs.utility.DateTimeUtil; import com.mindskip.xzs.utility.ExamUtil; import com.mindskip.xzs.utility.JsonUtil; +import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradePageRequestVM; import com.mindskip.xzs.viewmodel.student.exam.ExamPaperSubmitItemVM; import com.mindskip.xzs.viewmodel.student.exam.ExamPaperSubmitVM; -import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageResponseVM; import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageVM; -import com.github.pagehelper.PageHelper; -import com.github.pagehelper.PageInfo; -import com.mindskip.xzs.domain.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -295,4 +293,10 @@ public List<ExamPaperAnswer> getByExamPaperIdAndUserId(List<ExamTemplatesUserCount> examTemplatesUserCount) { return examPaperAnswerMapper.getByExamPaperIdAndUserId(examTemplatesUserCount); } + + @Override + public PageInfo<ExamPaperAnswer> adminPageByGrade(ExamPaperGradePageRequestVM grade) { + return PageHelper.startPage(grade.getPageIndex(), grade.getPageSize(), "user_score desc").doSelectPageInfo(() -> + examPaperAnswerMapper.adminPageByGrade(grade)); + } } diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java index 9614957..a16fe1a 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java +++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java @@ -57,6 +57,8 @@ private final UserDepartmentMapper userDepartmentMapper; private final DepartmentService departmentService; + + @Autowired public ExamPaperServiceImpl(ExamPaperMapper examPaperMapper, QuestionMapper questionMapper, TextContentService textContentService, QuestionService questionService, SubjectService subjectService, ExamPaperDepartmentService examPaperDepartmentService, ExamPaperSubjectService examPaperSubjectService, QuestionSubjectService questionSubjectService, ExamPaperUserService examPaperUserService, UserService userService, UserDepartmentMapper userDepartmentMapper, DepartmentService departmentService) { super(examPaperMapper); @@ -485,7 +487,9 @@ Integer multipleChoice = examPaperEditRequestVM.getQuestionTypeVMS().stream().mapToInt(QuestionTypeVM::getMultipleChoice).sum(); //鍒ゆ柇 Integer judgment = examPaperEditRequestVM.getQuestionTypeVMS().stream().mapToInt(QuestionTypeVM::getTrueFalse).sum(); - if ((singleChoice * 2 + multipleChoice * 2 + judgment * 2) != new Integer(20)) { + + + if ((singleChoice * 2 + multipleChoice * 2 + judgment * 2) != new Integer(100)) { throw new QuestionException(); } @@ -513,7 +517,7 @@ Map<Integer, Integer> multipleMap = list.stream() .filter(e -> e.getQuestionType().equals(QuestionTypeEnum.MultipleChoice.getCode())) .collect(Collectors.toMap(Question::getId, Question::getScore)); - Integer multipleSource = questionTypeVM.getMultipleChoice() * 5; + Integer multipleSource = questionTypeVM.getMultipleChoice() * 2; selectRandomScores(multiple, multipleMap, questionTypeVM.getMultipleChoice(), multipleSource); diff --git a/src/main/java/com/mindskip/xzs/viewmodel/admin/exam/ExamPaperEditRequestVM.java b/src/main/java/com/mindskip/xzs/viewmodel/admin/exam/ExamPaperEditRequestVM.java index a611d2c..6aa2aa5 100644 --- a/src/main/java/com/mindskip/xzs/viewmodel/admin/exam/ExamPaperEditRequestVM.java +++ b/src/main/java/com/mindskip/xzs/viewmodel/admin/exam/ExamPaperEditRequestVM.java @@ -1,10 +1,6 @@ package com.mindskip.xzs.viewmodel.admin.exam; - -import com.mindskip.xzs.domain.ExamPaperDepartment; -import com.mindskip.xzs.domain.ExamPaperSubject; - import javax.validation.Valid; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; diff --git a/src/main/java/com/mindskip/xzs/viewmodel/admin/paper/ExamPaperGradePageRequestVM.java b/src/main/java/com/mindskip/xzs/viewmodel/admin/paper/ExamPaperGradePageRequestVM.java new file mode 100644 index 0000000..a01933d --- /dev/null +++ b/src/main/java/com/mindskip/xzs/viewmodel/admin/paper/ExamPaperGradePageRequestVM.java @@ -0,0 +1,47 @@ +package com.mindskip.xzs.viewmodel.admin.paper; + +import com.mindskip.xzs.base.BasePage; + +public class ExamPaperGradePageRequestVM extends BasePage { + private Integer subjectId; + + private String userName; + + private String paperName; + + private Integer counts; + + + + public Integer getSubjectId() { + return subjectId; + } + + public void setSubjectId(Integer subjectId) { + this.subjectId = subjectId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getPaperName() { + return paperName; + } + + public void setPaperName(String paperName) { + this.paperName = paperName; + } + + public Integer getCounts() { + return counts; + } + + public void setCounts(Integer counts) { + this.counts = counts; + } +} diff --git a/src/main/java/com/mindskip/xzs/viewmodel/student/exampaper/ExamPaperAnswerPageResponseVM.java b/src/main/java/com/mindskip/xzs/viewmodel/student/exampaper/ExamPaperAnswerPageResponseVM.java index aaeb09c..eabbf69 100644 --- a/src/main/java/com/mindskip/xzs/viewmodel/student/exampaper/ExamPaperAnswerPageResponseVM.java +++ b/src/main/java/com/mindskip/xzs/viewmodel/student/exampaper/ExamPaperAnswerPageResponseVM.java @@ -32,6 +32,8 @@ private Double avgSource; + private Integer counts; + public Integer getId() { return id; } @@ -151,4 +153,11 @@ public void setAvgSource(Double avgSource) { this.avgSource = avgSource; } + public Integer getCounts() { + return counts; + } + + public void setCounts(Integer counts) { + this.counts = counts; + } } diff --git a/src/main/resources/mapper/ExamPaperAnswerMapper.xml b/src/main/resources/mapper/ExamPaperAnswerMapper.xml index 8d22402..d39c223 100644 --- a/src/main/resources/mapper/ExamPaperAnswerMapper.xml +++ b/src/main/resources/mapper/ExamPaperAnswerMapper.xml @@ -17,7 +17,7 @@ <result column="create_user" jdbcType="INTEGER" property="createUser" /> <result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> <result column="task_exam_id" jdbcType="INTEGER" property="taskExamId" /> - </resultMap> + <result column="counts" jdbcType="INTEGER" property="counts"/></resultMap> <sql id="Base_Column_List"> id, exam_paper_id, paper_name, paper_type, subject_id, system_score, user_score, paper_score, question_correct, question_count, do_time, status, create_user, create_time, @@ -27,6 +27,11 @@ id, exam_paper_id, paper_name, paper_type, subject_id, system_score, TRUNCATE(user_score/10,0) as user_score, TRUNCATE(paper_score/10,0) as paper_score, question_correct, question_count, do_time, status, create_user, create_time, task_exam_id + </sql> + <sql id="Base_Column_List2"> + id, exam_paper_id, paper_name, paper_type, subject_id, system_score, user_score, + paper_score, question_correct, question_count, do_time, status, create_user, create_time, + task_exam_id,counts </sql> <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap"> select @@ -299,5 +304,18 @@ </foreach> </if> </select> + <select id="adminPageByGrade" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradePageRequestVM"> + select + <include refid="Base_Column_List2" /> + from t_exam_paper_answer + <where> + <if test="subjectId != null"> + and subject_id = #{subjectId} + </if> + <if test="paperName != null and paperName != ''"> + and paper_name like concat('%',#{paperName},'%') + </if> + </where> + </select> </mapper> -- Gitblit v1.8.0