From 5dc1025f4f67a8750b8dd802f8def1fa2dfa116a Mon Sep 17 00:00:00 2001
From: 17808 <1780814303@qq.com>
Date: 星期二, 07 十一月 2023 17:43:48 +0800
Subject: [PATCH] 成绩统计后端

---
 src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java                                    |   26 ++
 src/main/java/com/mindskip/xzs/viewmodel/student/exampaper/ExamPaperAnswerPageResponseVM.java |   23 +
 src/main/java/com/mindskip/xzs/service/UserDepartMentService.java                             |   21 +
 src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java                   |   16 +
 src/main/java/com/mindskip/xzs/repository/ScoreTemplatesUserCountMapper.java                  |   14 +
 src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java                            |   12 
 src/main/java/com/mindskip/xzs/service/impl/UserDepartMentServiceImpl.java                    |   58 ++++
 src/main/java/com/mindskip/xzs/repository/ExamPaperUserMapper.java                            |    6 
 src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java                           |    6 
 src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java                         |   11 
 src/main/resources/mapper/ScoreTemplatesUserCountMapper.xml                                   |  236 ++++++++++++++++++
 src/main/java/com/mindskip/xzs/service/ScoreTemplatesUserCountService.java                    |   11 
 src/main/resources/mapper/ExamPaperAnswerMapper.xml                                           |   23 +
 src/main/java/com/mindskip/xzs/domain/UserDepartment.java                                     |    2 
 src/main/resources/mapper/ExamPaperUserMapper.xml                                             |    5 
 src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java                          |    6 
 src/main/resources/mapper/UserDepartmentMapper.xml                                            |   15 +
 src/main/java/com/mindskip/xzs/configuration/spring/security/SecurityConfigurer.java          |    2 
 src/main/java/com/mindskip/xzs/service/impl/ScoreTemplatesUserCountServiceImpl.java           |   37 ++
 src/main/java/com/mindskip/xzs/domain/ScoreTemplatesUserCount.java                            |   66 +++++
 src/main/java/com/mindskip/xzs/service/ExamPaperUserService.java                              |    4 
 src/main/java/com/mindskip/xzs/domain/ScoreTemplates.java                                     |   54 ++++
 src/main/java/com/mindskip/xzs/domain/vo/ScoreTemplatesCountVO.java                           |  103 +++++++
 src/main/java/com/mindskip/xzs/service/impl/ExamPaperUserServiceImpl.java                     |    7 
 24 files changed, 743 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/mindskip/xzs/configuration/spring/security/SecurityConfigurer.java b/src/main/java/com/mindskip/xzs/configuration/spring/security/SecurityConfigurer.java
index da15ddd..a3db86f 100644
--- a/src/main/java/com/mindskip/xzs/configuration/spring/security/SecurityConfigurer.java
+++ b/src/main/java/com/mindskip/xzs/configuration/spring/security/SecurityConfigurer.java
@@ -79,7 +79,7 @@
                     .and().authenticationProvider(restAuthenticationProvider)
                     .authorizeRequests()
                     .antMatchers(securityIgnoreUrls.toArray(ignores)).permitAll()
-                    .antMatchers("/api/admin/department/list", "/api/admin/video/getList","/api/admin/user/conversion").permitAll()
+                    .antMatchers("/api/admin/department/list", "/api/admin/video/getList","/api/admin/user/conversion","/api/admin/examPaperGrade/updates").permitAll()
                     .antMatchers("/api/admin/**").hasRole(RoleEnum.ADMIN.getName())
                     .antMatchers("/api/student/**").hasRole(RoleEnum.STUDENT.getName())
                     .anyRequest().permitAll()
diff --git a/src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java b/src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java
index d73aac7..0e8aa9d 100644
--- a/src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java
+++ b/src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java
@@ -78,6 +78,14 @@
 
     private Integer taskExamId;
 
+    private String formattedTime;
+
+
+    private String userName;
+
+
+
+
     public Integer getId() {
         return id;
     }
@@ -204,4 +212,22 @@
     public void setCounts(Integer counts) {
         this.counts = counts;
     }
+
+    public String getFormattedTime() {
+        return formattedTime;
+    }
+
+    public void setFormattedTime(String formattedTime) {
+        this.formattedTime = formattedTime == null ? null : formattedTime.trim();
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+
 }
diff --git a/src/main/java/com/mindskip/xzs/domain/ScoreTemplates.java b/src/main/java/com/mindskip/xzs/domain/ScoreTemplates.java
new file mode 100644
index 0000000..230372b
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/domain/ScoreTemplates.java
@@ -0,0 +1,54 @@
+package com.mindskip.xzs.domain;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class ScoreTemplates implements Serializable {
+
+    private Integer id;
+    private Integer examPaperId;
+    private Integer userId;
+    private Integer examTemplatesId;
+
+    private Date createTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getExamPaperId() {
+        return examPaperId;
+    }
+
+    public void setExamPaperId(Integer examPaperId) {
+        this.examPaperId = examPaperId;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getExamTemplatesId() {
+        return examTemplatesId;
+    }
+
+    public void setExamTemplatesId(Integer examTemplatesId) {
+        this.examTemplatesId = examTemplatesId;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+}
diff --git a/src/main/java/com/mindskip/xzs/domain/ScoreTemplatesUserCount.java b/src/main/java/com/mindskip/xzs/domain/ScoreTemplatesUserCount.java
new file mode 100644
index 0000000..5d73da5
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/domain/ScoreTemplatesUserCount.java
@@ -0,0 +1,66 @@
+package com.mindskip.xzs.domain;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class ScoreTemplatesUserCount implements Serializable {
+
+    private Integer id;
+    private Integer examPaperId;
+    private Integer userId;
+    private Integer examTemplatesId;
+
+    private Date createTime;
+
+
+    private String formattedCreateTime;
+
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getExamPaperId() {
+        return examPaperId;
+    }
+
+    public void setExamPaperId(Integer examPaperId) {
+        this.examPaperId = examPaperId;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getExamTemplatesId() {
+        return examTemplatesId;
+    }
+
+    public void setExamTemplatesId(Integer examTemplatesId) {
+        this.examTemplatesId = examTemplatesId;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+    public String getFormattedCreateTime() {
+        return formattedCreateTime;
+    }
+    public void setFormattedCreateTime(String formattedCreateTime) {
+        this.formattedCreateTime = formattedCreateTime;
+    }
+
+}
diff --git a/src/main/java/com/mindskip/xzs/domain/UserDepartment.java b/src/main/java/com/mindskip/xzs/domain/UserDepartment.java
index d6b9938..0446dc9 100644
--- a/src/main/java/com/mindskip/xzs/domain/UserDepartment.java
+++ b/src/main/java/com/mindskip/xzs/domain/UserDepartment.java
@@ -10,4 +10,6 @@
     private Integer id;
     private Integer userId;
     private Integer departmentId;
+
+
 }
diff --git a/src/main/java/com/mindskip/xzs/domain/vo/ScoreTemplatesCountVO.java b/src/main/java/com/mindskip/xzs/domain/vo/ScoreTemplatesCountVO.java
new file mode 100644
index 0000000..7573439
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/domain/vo/ScoreTemplatesCountVO.java
@@ -0,0 +1,103 @@
+package com.mindskip.xzs.domain.vo;
+
+import com.mindskip.xzs.base.BasePage;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class ScoreTemplatesCountVO extends BasePage implements Serializable {
+
+    private Integer id;
+    private String name;
+    private Integer count;
+    private Integer userId;
+    private String userName;
+    private String userScore;
+    private String paperScore;
+
+    private Integer createUser;
+    private Date createTime;
+
+    private String formattedTime;
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getCount() {
+        return count;
+    }
+
+    public void setCount(Integer count) {
+        this.count = count;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserScore() {
+        return userScore;
+    }
+
+    public void setUserScore(String userScore) {
+        this.userScore = userScore;
+    }
+
+    public String getPaperScore() {
+        return paperScore;
+    }
+
+    public void setPaperScore(String paperScore) {
+        this.paperScore = paperScore;
+    }
+
+    public Integer getCreateUser() {
+        return createUser;
+    }
+
+    public void setCreateUser(Integer createUser) {
+        this.createUser = createUser;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getFormattedTime() {
+        return formattedTime;
+    }
+
+    public void setFormattedTime(String formattedTime) {
+        this.formattedTime = formattedTime;
+    }
+}
diff --git a/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java b/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java
index 62b874e..196f0a0 100644
--- a/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java
@@ -2,7 +2,9 @@
 
 import com.mindskip.xzs.domain.ExamPaperAnswer;
 import com.mindskip.xzs.domain.ExamTemplatesUserCount;
+import com.mindskip.xzs.domain.ScoreTemplatesUserCount;
 import com.mindskip.xzs.domain.other.KeyValue;
+import com.mindskip.xzs.domain.vo.ScoreTemplatesCountVO;
 import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradePageRequestVM;
 import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageVM;
 import org.apache.ibatis.annotations.Mapper;
@@ -31,4 +33,8 @@
     List<ExamPaperAnswer> getByExamPaperIdAndUserId(@Param("examTemplatesUserCount")List<ExamTemplatesUserCount> examTemplatesUserCount);
 
     List<ExamPaperAnswer> adminPageByGrade(ExamPaperGradePageRequestVM grade);
+
+    List<ExamPaperAnswer> getByScorePaperIdAndUserId(@Param("scoreTemplatesUserCounts")List<ScoreTemplatesUserCount> scoreTemplatesUserCounts);
+
+    List<ExamPaperAnswer> getByCreatUser(ScoreTemplatesCountVO scoreTemplatesCountVO);
 }
diff --git a/src/main/java/com/mindskip/xzs/repository/ExamPaperUserMapper.java b/src/main/java/com/mindskip/xzs/repository/ExamPaperUserMapper.java
index 0b0ce91..31c700b 100644
--- a/src/main/java/com/mindskip/xzs/repository/ExamPaperUserMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/ExamPaperUserMapper.java
@@ -1,10 +1,8 @@
 package com.mindskip.xzs.repository;
 
 import com.mindskip.xzs.domain.ExamPaperUser;
-import jdk.internal.dynalink.linker.LinkerServices;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
-import org.springframework.security.core.parameters.P;
 
 import java.util.List;
 
@@ -20,4 +18,8 @@
     List<ExamPaperUser> getByExamPaperId(@Param("examPaperId") Integer examPaperId);
 
     Integer removeByExamPaperId(@Param("examPaperId") Integer examPaperId);
+
+
+
+    Integer getByPaperIdAndCreatUser(Integer examPaperId, Integer createUser);
 }
diff --git a/src/main/java/com/mindskip/xzs/repository/ScoreTemplatesUserCountMapper.java b/src/main/java/com/mindskip/xzs/repository/ScoreTemplatesUserCountMapper.java
new file mode 100644
index 0000000..b54d51e
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/repository/ScoreTemplatesUserCountMapper.java
@@ -0,0 +1,14 @@
+package com.mindskip.xzs.repository;
+
+import com.mindskip.xzs.domain.ScoreTemplatesUserCount;
+import com.mindskip.xzs.domain.vo.ScoreTemplatesCountVO;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface ScoreTemplatesUserCountMapper extends BaseMapper<ScoreTemplatesUserCount> {
+
+
+    List<ScoreTemplatesUserCount> getByUserIdAndTemplatesId(ScoreTemplatesCountVO scoreTemplatesCountVO);
+}
diff --git a/src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java b/src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java
index 77e2789..9c70b21 100644
--- a/src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java
@@ -1,10 +1,8 @@
 package com.mindskip.xzs.repository;
 
-import com.mindskip.xzs.domain.ExamPaper;
 import com.mindskip.xzs.domain.UserDepartment;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
-import org.springframework.security.core.parameters.P;
 
 import java.util.List;
 
@@ -17,4 +15,8 @@
 
     Integer removeByUserId(@Param("userId") Integer userId);
     Integer removeByDepartmentId(@Param("departmentId") Integer departmentId);
+
+    UserDepartment selectByUser(Integer id);
+
+    void updateUserDepartMent(UserDepartment userDepartment);
 }
diff --git a/src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java b/src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java
index 25f191b..6e8358a 100644
--- a/src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java
+++ b/src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java
@@ -1,10 +1,8 @@
 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.domain.*;
+import com.mindskip.xzs.domain.vo.ScoreTemplatesCountVO;
 import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradePageRequestVM;
 import com.mindskip.xzs.viewmodel.student.exam.ExamPaperSubmitVM;
 import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageVM;
@@ -59,5 +57,9 @@
 
     List<ExamPaperAnswer> getByExamPaperIdAndUserId(List<ExamTemplatesUserCount> examTemplatesUserCount);
 
-    PageInfo<ExamPaperAnswer> adminPageByGrade(ExamPaperGradePageRequestVM grade);
+    List<ExamPaperAnswer> adminPageByGrade(ExamPaperGradePageRequestVM grade);
+
+    List<ExamPaperAnswer> getByScorePaperIdAndUserId(List<ScoreTemplatesUserCount> scoreTemplatesUserCounts);
+
+    List<ExamPaperAnswer> getByCreatUser(ScoreTemplatesCountVO scoreTemplatesCountVO);
 }
diff --git a/src/main/java/com/mindskip/xzs/service/ExamPaperUserService.java b/src/main/java/com/mindskip/xzs/service/ExamPaperUserService.java
index 2e40a5d..d41a493 100644
--- a/src/main/java/com/mindskip/xzs/service/ExamPaperUserService.java
+++ b/src/main/java/com/mindskip/xzs/service/ExamPaperUserService.java
@@ -1,7 +1,6 @@
 package com.mindskip.xzs.service;
 
 import com.mindskip.xzs.domain.ExamPaperUser;
-import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -16,4 +15,7 @@
     List<ExamPaperUser> getByExamPaperId(Integer examPaperId);
 
     Integer removeByExamPaperId(Integer examPaperId);
+
+
+    Integer getByPaperIdAndCreatUser(Integer examPaperId, Integer createUser);
 }
diff --git a/src/main/java/com/mindskip/xzs/service/ScoreTemplatesUserCountService.java b/src/main/java/com/mindskip/xzs/service/ScoreTemplatesUserCountService.java
new file mode 100644
index 0000000..e82571c
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/service/ScoreTemplatesUserCountService.java
@@ -0,0 +1,11 @@
+package com.mindskip.xzs.service;
+
+import com.mindskip.xzs.domain.ScoreTemplatesUserCount;
+
+public interface ScoreTemplatesUserCountService extends BaseService<ScoreTemplatesUserCount>{
+
+
+
+
+
+}
diff --git a/src/main/java/com/mindskip/xzs/service/UserDepartMentService.java b/src/main/java/com/mindskip/xzs/service/UserDepartMentService.java
new file mode 100644
index 0000000..bd2b247
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/service/UserDepartMentService.java
@@ -0,0 +1,21 @@
+package com.mindskip.xzs.service;
+
+import com.mindskip.xzs.domain.UserDepartment;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+public interface UserDepartMentService extends BaseService<UserDepartment> {
+
+    List<UserDepartment> selectByUserId(@Param("userId") Integer userId);
+
+    List<UserDepartment> selectByDepartmentId(@Param("departmentId") Integer departmentId);
+
+    Integer removeByUserId(@Param("userId") Integer userId);
+    Integer removeByDepartmentId(@Param("departmentId") Integer departmentId);
+
+    UserDepartment selectByUser(Integer id);
+
+    void updateUserDepartMent(UserDepartment userDepartment);
+}
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 ead6f2b..19bf6e4 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java
@@ -10,6 +10,7 @@
 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.domain.vo.ScoreTemplatesCountVO;
 import com.mindskip.xzs.repository.ExamPaperAnswerMapper;
 import com.mindskip.xzs.repository.ExamPaperMapper;
 import com.mindskip.xzs.repository.QuestionMapper;
@@ -295,8 +296,17 @@
     }
 
     @Override
-    public PageInfo<ExamPaperAnswer> adminPageByGrade(ExamPaperGradePageRequestVM grade) {
-        return PageHelper.startPage(grade.getPageIndex(), grade.getPageSize(), "user_score desc").doSelectPageInfo(() ->
-                examPaperAnswerMapper.adminPageByGrade(grade));
+    public List<ExamPaperAnswer> adminPageByGrade(ExamPaperGradePageRequestVM grade) {
+        return examPaperAnswerMapper.adminPageByGrade(grade);
+    }
+
+    @Override
+    public List<ExamPaperAnswer> getByScorePaperIdAndUserId(List<ScoreTemplatesUserCount> scoreTemplatesUserCounts) {
+        return examPaperAnswerMapper.getByScorePaperIdAndUserId(scoreTemplatesUserCounts);
+    }
+
+    @Override
+    public List<ExamPaperAnswer> getByCreatUser(ScoreTemplatesCountVO scoreTemplatesCountVO) {
+        return examPaperAnswerMapper.getByCreatUser(scoreTemplatesCountVO);
     }
 }
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 a16fe1a..15957bc 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
@@ -372,7 +372,6 @@
                 keys.remove(index);
             }
         }
-
         if (!values.isEmpty()) {
             int index = random.nextInt(values.size());
             int score = values.get(index);
@@ -481,6 +480,8 @@
      * @param titleItemsVM           title
      */
     private void randomQuestionType(ExamPaperEditRequestVM examPaperEditRequestVM, List<ExamPaperTitleItemObject> frameTextContentList, List<ExamPaperTitleItemVM> titleItemsVM) throws QuestionException {
+
+
         //鍗曢��
         Integer singleChoice = examPaperEditRequestVM.getQuestionTypeVMS().stream().mapToInt(QuestionTypeVM::getSingleChoice).sum();
         //澶氶��
@@ -522,10 +523,10 @@
 
 
             //鍒ゆ柇
-            Map<Integer, Integer> judgmentMap = list.stream()
-                    .filter(e -> e.getQuestionType().equals(QuestionTypeEnum.TrueFalse.getCode()))
-                    .collect(Collectors.toMap(Question::getId, Question::getScore));
-            Integer trueFalse = questionTypeVM.getTrueFalse() * 2;
+            List<Question> collect1 = list.stream().filter(e -> e.getQuestionType().equals(QuestionTypeEnum.TrueFalse.getCode())).collect(Collectors.toList());
+            Map<Integer, Integer> judgmentMap = collect1.stream().collect(Collectors.toMap(Question::getId, Question::getScore));
+            Integer trueFalse1 = questionTypeVM.getTrueFalse();
+            Integer trueFalse = trueFalse1 * 2;
             selectRandomScores(multiple, judgmentMap, questionTypeVM.getTrueFalse(), trueFalse);
 
             //鍗曢�夊垎鏁�
diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperUserServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperUserServiceImpl.java
index 337bf93..3cb95d8 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperUserServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperUserServiceImpl.java
@@ -42,4 +42,11 @@
     public Integer removeByExamPaperId(Integer examPaperId) {
         return examPaperUserMapper.removeByExamPaperId(examPaperId);
     }
+
+    @Override
+    public Integer getByPaperIdAndCreatUser(Integer examPaperId, Integer createUser) {
+        return examPaperUserMapper.getByPaperIdAndCreatUser(examPaperId, createUser);
+    }
+
+
 }
diff --git a/src/main/java/com/mindskip/xzs/service/impl/ScoreTemplatesUserCountServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ScoreTemplatesUserCountServiceImpl.java
new file mode 100644
index 0000000..9dfcc2b
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/service/impl/ScoreTemplatesUserCountServiceImpl.java
@@ -0,0 +1,37 @@
+package com.mindskip.xzs.service.impl;
+
+import com.mindskip.xzs.domain.ScoreTemplatesUserCount;
+import com.mindskip.xzs.repository.*;
+import com.mindskip.xzs.service.ExamPaperQuestionCustomerAnswerService;
+import com.mindskip.xzs.service.ScoreTemplatesUserCountService;
+import com.mindskip.xzs.service.TextContentService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ScoreTemplatesUserCountServiceImpl extends BaseServiceImpl<ScoreTemplatesUserCount> implements ScoreTemplatesUserCountService {
+
+
+    private final ExamPaperAnswerMapper examPaperAnswerMapper;
+    private final ExamPaperMapper examPaperMapper;
+    private final TextContentService textContentService;
+    private final QuestionMapper questionMapper;
+    private final ExamPaperQuestionCustomerAnswerService examPaperQuestionCustomerAnswerService;
+    private final TaskExamCustomerAnswerMapper taskExamCustomerAnswerMapper;
+    private final ScoreTemplatesUserCountMapper scoreTemplatesUserCountMapper;
+
+    @Autowired
+    public ScoreTemplatesUserCountServiceImpl(ExamPaperAnswerMapper examPaperAnswerMapper, ExamPaperMapper examPaperMapper, TextContentService textContentService, QuestionMapper questionMapper, ExamPaperQuestionCustomerAnswerService examPaperQuestionCustomerAnswerService, TaskExamCustomerAnswerMapper taskExamCustomerAnswerMapper,ScoreTemplatesUserCountMapper scoreTemplatesUserCountMapper) {
+        super(scoreTemplatesUserCountMapper);
+        this.examPaperAnswerMapper = examPaperAnswerMapper;
+        this.examPaperMapper = examPaperMapper;
+        this.textContentService = textContentService;
+        this.questionMapper = questionMapper;
+        this.examPaperQuestionCustomerAnswerService = examPaperQuestionCustomerAnswerService;
+        this.taskExamCustomerAnswerMapper = taskExamCustomerAnswerMapper;
+        this.scoreTemplatesUserCountMapper = scoreTemplatesUserCountMapper;
+    }
+
+
+
+}
diff --git a/src/main/java/com/mindskip/xzs/service/impl/UserDepartMentServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/UserDepartMentServiceImpl.java
new file mode 100644
index 0000000..17ff5f9
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/service/impl/UserDepartMentServiceImpl.java
@@ -0,0 +1,58 @@
+package com.mindskip.xzs.service.impl;
+
+import com.mindskip.xzs.domain.UserDepartment;
+import com.mindskip.xzs.repository.UserDepartmentMapper;
+import com.mindskip.xzs.service.UserDepartMentService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationEventPublisher;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+@Service
+public class UserDepartMentServiceImpl extends BaseServiceImpl<UserDepartment> implements UserDepartMentService {
+
+    private final UserDepartmentMapper userDepartmentMapper;
+    private final ApplicationEventPublisher eventPublisher;
+
+    @Autowired
+    public UserDepartMentServiceImpl(UserDepartmentMapper userDepartMentMapper, ApplicationEventPublisher eventPublisher) {
+        super(userDepartMentMapper);
+        this.userDepartmentMapper = userDepartMentMapper;
+        this.eventPublisher = eventPublisher;
+    }
+
+
+    @Override
+    public List<UserDepartment> selectByUserId(Integer userId) {
+        return userDepartmentMapper.selectByUserId(userId);
+    }
+
+    @Override
+    public List<UserDepartment> selectByDepartmentId(Integer departmentId) {
+        return userDepartmentMapper.selectByDepartmentId(departmentId);
+    }
+
+    @Override
+    public Integer removeByUserId(Integer userId) {
+        return userDepartmentMapper.removeByUserId(userId);
+    }
+
+    @Override
+    public Integer removeByDepartmentId(Integer departmentId) {
+        return userDepartmentMapper.removeByDepartmentId(departmentId);
+    }
+
+    @Override
+    public UserDepartment selectByUser(Integer id) {
+        return userDepartmentMapper.selectByUser(id);
+    }
+
+    @Override
+    public void updateUserDepartMent(UserDepartment userDepartment) {
+        userDepartmentMapper.updateUserDepartMent(userDepartment);
+    }
+
+
+}
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 eabbf69..57cbf69 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
@@ -1,9 +1,11 @@
 package com.mindskip.xzs.viewmodel.student.exampaper;
 
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+
 public class ExamPaperAnswerPageResponseVM {
     private Integer id;
-
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private String createTime;
 
     private String userScore;
@@ -33,6 +35,10 @@
     private Double avgSource;
 
     private Integer counts;
+
+    private Integer userId;
+
+    private Integer createUser;
 
     public Integer getId() {
         return id;
@@ -160,4 +166,19 @@
     public void setCounts(Integer counts) {
         this.counts = counts;
     }
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getCreateUser() {
+        return createUser;
+    }
+
+    public void setCreateUser(Integer createUser) {
+        this.createUser = createUser;
+    }
 }
diff --git a/src/main/resources/mapper/ExamPaperAnswerMapper.xml b/src/main/resources/mapper/ExamPaperAnswerMapper.xml
index d39c223..4d449a4 100644
--- a/src/main/resources/mapper/ExamPaperAnswerMapper.xml
+++ b/src/main/resources/mapper/ExamPaperAnswerMapper.xml
@@ -33,6 +33,11 @@
     paper_score, question_correct, question_count, do_time, status, create_user, create_time,
     task_exam_id,counts
   </sql>
+  <sql id="Base_Column_List3">
+    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,DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') AS formattedTime
+  </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
     select
     <include refid="Base_Column_List" />
@@ -307,7 +312,7 @@
   <select id="adminPageByGrade" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradePageRequestVM">
     select
     <include refid="Base_Column_List2" />
-        from t_exam_paper_answer
+        from t_exam_paper_answer where create_time between '2023-01-01'and '2023-12-31'
     <where>
       <if test="subjectId != null">
         and subject_id = #{subjectId}
@@ -317,5 +322,21 @@
       </if>
     </where>
   </select>
+    <select id="getByScorePaperIdAndUserId" resultMap="BaseResultMap" parameterType="list">
+      select
+      <include refid="Base_Column_List1" />
+      from t_exam_paper_answer
+      where (exam_paper_id,create_user) in
+      <if test="scoreTemplatesUserCounts !=null and scoreTemplatesUserCounts.size() > 0">
+        <foreach collection="scoreTemplatesUserCounts" item="item" index="item" open="(" separator="," close=")">
+          (#{item.examPaperId},#{item.userId})
+        </foreach>
+      </if>
+    </select>
+    <select id="getByCreatUser" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.domain.vo.ScoreTemplatesCountVO">
+      select
+      <include refid="Base_Column_List3"/>
+      from t_exam_paper_answer where create_user = #{createUser} and create_time between '2023-01-01'and '2023-12-31'
+    </select>
 
 </mapper>
diff --git a/src/main/resources/mapper/ExamPaperUserMapper.xml b/src/main/resources/mapper/ExamPaperUserMapper.xml
index 63ddd11..d945130 100644
--- a/src/main/resources/mapper/ExamPaperUserMapper.xml
+++ b/src/main/resources/mapper/ExamPaperUserMapper.xml
@@ -27,6 +27,11 @@
         where exam_paper_id = #{examPaperId} and deleted = 0
     </select>
 
+    <select id="getByPaperIdAndCreatUser" resultType="java.lang.Integer">
+        select user_id from t_exam_paper_user
+        where exam_paper_id = #{examPaperId} and user_id = #{createUser}
+    </select>
+
     <insert id="saves" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
         insert into t_exam_paper_user(id, exam_paper_id, user_id, deleted)
         values
diff --git a/src/main/resources/mapper/ScoreTemplatesUserCountMapper.xml b/src/main/resources/mapper/ScoreTemplatesUserCountMapper.xml
new file mode 100644
index 0000000..328e5d9
--- /dev/null
+++ b/src/main/resources/mapper/ScoreTemplatesUserCountMapper.xml
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mindskip.xzs.repository.ScoreTemplatesUserCountMapper">
+  <resultMap id="BaseResultMap" type="com.mindskip.xzs.domain.ExamPaperAnswer">
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="exam_paper_id" jdbcType="INTEGER" property="examPaperId" />
+    <result column="paper_name" jdbcType="VARCHAR" property="paperName" />
+    <result column="paper_type" jdbcType="INTEGER" property="paperType" />
+    <result column="subject_id" jdbcType="INTEGER" property="subjectId" />
+    <result column="system_score" jdbcType="INTEGER" property="systemScore" />
+    <result column="user_score" jdbcType="INTEGER" property="userScore" />
+    <result column="paper_score" jdbcType="INTEGER" property="paperScore" />
+    <result column="question_correct" jdbcType="INTEGER" property="questionCorrect" />
+    <result column="question_count" jdbcType="INTEGER" property="questionCount" />
+    <result column="do_time" jdbcType="INTEGER" property="doTime" />
+    <result column="status" jdbcType="INTEGER" property="status" />
+    <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" />
+    <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,
+    task_exam_id
+  </sql>
+  <sql id="Base_Column_List1">
+    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>
+  <sql id="Base_Column_List3">
+    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, DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') AS formattedTime,
+    task_exam_id,counts
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List" />
+    from t_exam_paper_answer
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    delete from t_exam_paper_answer
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <insert id="insert" parameterType="com.mindskip.xzs.domain.ExamPaperAnswer" useGeneratedKeys="true" keyProperty="id">
+    insert into t_exam_paper_answer (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
+      )
+    values (#{id,jdbcType=INTEGER}, #{examPaperId,jdbcType=INTEGER}, #{paperName,jdbcType=VARCHAR},
+      #{paperType,jdbcType=INTEGER}, #{subjectId,jdbcType=INTEGER}, #{systemScore,jdbcType=INTEGER},
+      #{userScore,jdbcType=INTEGER}, #{paperScore,jdbcType=INTEGER}, #{questionCorrect,jdbcType=INTEGER},
+      #{questionCount,jdbcType=INTEGER}, #{doTime,jdbcType=INTEGER}, #{status,jdbcType=INTEGER},
+      #{createUser,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{taskExamId,jdbcType=INTEGER}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="com.mindskip.xzs.domain.ExamPaperAnswer" useGeneratedKeys="true" keyProperty="id">
+    insert into t_exam_paper_answer
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="examPaperId != null">
+        exam_paper_id,
+      </if>
+      <if test="paperName != null">
+        paper_name,
+      </if>
+      <if test="paperType != null">
+        paper_type,
+      </if>
+      <if test="subjectId != null">
+        subject_id,
+      </if>
+      <if test="systemScore != null">
+        system_score,
+      </if>
+      <if test="userScore != null">
+        user_score,
+      </if>
+      <if test="paperScore != null">
+        paper_score,
+      </if>
+      <if test="questionCorrect != null">
+        question_correct,
+      </if>
+      <if test="questionCount != null">
+        question_count,
+      </if>
+      <if test="doTime != null">
+        do_time,
+      </if>
+      <if test="status != null">
+        status,
+      </if>
+      <if test="createUser != null">
+        create_user,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+      <if test="taskExamId != null">
+        task_exam_id,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=INTEGER},
+      </if>
+      <if test="examPaperId != null">
+        #{examPaperId,jdbcType=INTEGER},
+      </if>
+      <if test="paperName != null">
+        #{paperName,jdbcType=VARCHAR},
+      </if>
+      <if test="paperType != null">
+        #{paperType,jdbcType=INTEGER},
+      </if>
+      <if test="subjectId != null">
+        #{subjectId,jdbcType=INTEGER},
+      </if>
+      <if test="systemScore != null">
+        #{systemScore,jdbcType=INTEGER},
+      </if>
+      <if test="userScore != null">
+        #{userScore,jdbcType=INTEGER},
+      </if>
+      <if test="paperScore != null">
+        #{paperScore,jdbcType=INTEGER},
+      </if>
+      <if test="questionCorrect != null">
+        #{questionCorrect,jdbcType=INTEGER},
+      </if>
+      <if test="questionCount != null">
+        #{questionCount,jdbcType=INTEGER},
+      </if>
+      <if test="doTime != null">
+        #{doTime,jdbcType=INTEGER},
+      </if>
+      <if test="status != null">
+        #{status,jdbcType=INTEGER},
+      </if>
+      <if test="createUser != null">
+        #{createUser,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="taskExamId != null">
+        #{taskExamId,jdbcType=INTEGER},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.mindskip.xzs.domain.ExamPaperAnswer">
+    update t_exam_paper_answer
+    <set>
+      <if test="examPaperId != null">
+        exam_paper_id = #{examPaperId,jdbcType=INTEGER},
+      </if>
+      <if test="paperName != null">
+        paper_name = #{paperName,jdbcType=VARCHAR},
+      </if>
+      <if test="paperType != null">
+        paper_type = #{paperType,jdbcType=INTEGER},
+      </if>
+      <if test="subjectId != null">
+        subject_id = #{subjectId,jdbcType=INTEGER},
+      </if>
+      <if test="systemScore != null">
+        system_score = #{systemScore,jdbcType=INTEGER},
+      </if>
+      <if test="userScore != null">
+        user_score = #{userScore,jdbcType=INTEGER},
+      </if>
+      <if test="paperScore != null">
+        paper_score = #{paperScore,jdbcType=INTEGER},
+      </if>
+      <if test="questionCorrect != null">
+        question_correct = #{questionCorrect,jdbcType=INTEGER},
+      </if>
+      <if test="questionCount != null">
+        question_count = #{questionCount,jdbcType=INTEGER},
+      </if>
+      <if test="doTime != null">
+        do_time = #{doTime,jdbcType=INTEGER},
+      </if>
+      <if test="status != null">
+        status = #{status,jdbcType=INTEGER},
+      </if>
+      <if test="createUser != null">
+        create_user = #{createUser,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="taskExamId != null">
+        task_exam_id = #{taskExamId,jdbcType=INTEGER},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.mindskip.xzs.domain.ExamPaperAnswer">
+    update t_exam_paper_answer
+    set exam_paper_id = #{examPaperId,jdbcType=INTEGER},
+      paper_name = #{paperName,jdbcType=VARCHAR},
+      paper_type = #{paperType,jdbcType=INTEGER},
+      subject_id = #{subjectId,jdbcType=INTEGER},
+      system_score = #{systemScore,jdbcType=INTEGER},
+      user_score = #{userScore,jdbcType=INTEGER},
+      paper_score = #{paperScore,jdbcType=INTEGER},
+      question_correct = #{questionCorrect,jdbcType=INTEGER},
+      question_count = #{questionCount,jdbcType=INTEGER},
+      do_time = #{doTime,jdbcType=INTEGER},
+      status = #{status,jdbcType=INTEGER},
+      create_user = #{createUser,jdbcType=INTEGER},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      task_exam_id = #{taskExamId,jdbcType=INTEGER}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+
+  <select id="getByUserIdAndTemplatesId" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.domain.vo.ScoreTemplatesCountVO">
+    select
+    <include refid="Base_Column_List1"/>
+    from t_exam_paper_answer
+    where create_user = #{createUser}
+  </select>
+
+</mapper>
diff --git a/src/main/resources/mapper/UserDepartmentMapper.xml b/src/main/resources/mapper/UserDepartmentMapper.xml
index 962c4ed..4434e15 100644
--- a/src/main/resources/mapper/UserDepartmentMapper.xml
+++ b/src/main/resources/mapper/UserDepartmentMapper.xml
@@ -30,6 +30,12 @@
         from t_user_department
         where department_id = #{departmentId,jdbcType=INTEGER}
     </select>
+    <select id="selectByUser" resultType="com.mindskip.xzs.domain.UserDepartment">
+        select
+        <include refid="Base_Column_List" />
+        from t_user_department
+        where user_id=#{id}
+    </select>
 
     <delete id="removeByUserId">
         delete from t_user_department where user_id = #{userId}
@@ -38,4 +44,13 @@
     <delete id="removeByDepartmentId">
         delete from t_user_department where department_id = #{departmentId}
     </delete>
+
+    <update id="updateUserDepartMent" parameterType="com.mindskip.xzs.domain.UserDepartment">
+        update t_user_department
+        <set>
+            <if test="user_id != null">user_id = #{userId},</if>
+            <if test="department_id != null">department_id = #{departmentId},</if>
+        </set>
+        where id = #{id}
+    </update>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0