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