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