From c50e176c4a6b9331d2d1c0520bafb18f54f0dee6 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 08 三月 2024 17:35:10 +0800
Subject: [PATCH] 部门增加管理员

---
 src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java |   47 ++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 38 insertions(+), 9 deletions(-)

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 75766ed..9d80ead 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
@@ -8,8 +8,10 @@
 import com.mindskip.xzs.domain.exam.ExamPaperQuestionItemObject;
 import com.mindskip.xzs.domain.exam.ExamPaperTitleItemObject;
 import com.mindskip.xzs.domain.other.KeyValue;
+import com.mindskip.xzs.domain.vo.PaperExcelVO;
 import com.mindskip.xzs.repository.ExamPaperMapper;
 import com.mindskip.xzs.repository.QuestionMapper;
+import com.mindskip.xzs.repository.UserDepartmentMapper;
 import com.mindskip.xzs.service.*;
 import com.mindskip.xzs.service.enums.ActionEnum;
 import com.mindskip.xzs.utility.DateTimeUtil;
@@ -52,9 +54,13 @@
     private final QuestionSubjectService questionSubjectService;
     private final ExamPaperUserService examPaperUserService;
     private final UserService userService;
+    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) {
+    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);
         this.examPaperMapper = examPaperMapper;
         this.questionMapper = questionMapper;
@@ -66,6 +72,8 @@
         this.questionSubjectService = questionSubjectService;
         this.examPaperUserService = examPaperUserService;
         this.userService = userService;
+        this.userDepartmentMapper = userDepartmentMapper;
+        this.departmentService = departmentService;
     }
 
 
@@ -120,6 +128,7 @@
             examPaper.setCreateTime(now);
             examPaper.setCreateUser(user.getId());
             examPaper.setDeleted(false);
+            examPaper.setUserIds(examPaperEditRequestVM.getMenuIds());
             examPaperFromVM(examPaperEditRequestVM, examPaper, titleItemsVM);
             examPaperMapper.insertSelective(examPaper);
 
@@ -146,6 +155,7 @@
         ExamPaper examPaper = examPaperMapper.selectByPrimaryKey(id);
         ExamPaperEditRequestVM vm = modelMapper.map(examPaper, ExamPaperEditRequestVM.class);
         vm.setLevel(examPaper.getGradeLevel());
+        vm.setMenuIds(examPaper.getUserIds());
         TextContent frameTextContent = textContentService.selectById(examPaper.getFrameTextContentId());
         List<ExamPaperTitleItemObject> examPaperTitleItemObjects = JsonUtil.toJsonListObject(frameTextContent.getContent(), ExamPaperTitleItemObject.class);
         List<Integer> questionIds = examPaperTitleItemObjects.stream()
@@ -232,6 +242,22 @@
     @Override
     public List<ExamPaper> gets(Integer[] ids) {
         return examPaperMapper.gets(ids);
+    }
+
+    @Override
+    public List<PaperExcelVO> getPaperExcelById(Integer id) {
+        List<PaperExcelVO> paperExcel = examPaperMapper.getPaperExcelById(id);
+        paperExcel = paperExcel.stream().map(e->{
+            e.setPaperScore(ExamUtil.scoreToVM(Integer.parseInt(e.getPaperScore())));
+            e.setUserScore(ExamUtil.scoreToVM(Integer.parseInt(e.getUserScore())));
+            List<UserDepartment> userDepartments = userDepartmentMapper.selectByUserId(Integer.parseInt(e.getUserId()));
+            if(userDepartments.size() != 0){
+                Department byId = departmentService.getById(userDepartments.get(0).getDepartmentId());
+                e.setDepartmentName(byId.getName());
+            }
+            return e;
+        }).collect(Collectors.toList());
+        return paperExcel;
     }
 
     private void examPaperFromVM(ExamPaperEditRequestVM examPaperEditRequestVM, ExamPaper examPaper, List<ExamPaperTitleItemVM> titleItemsVM) {
@@ -348,7 +374,6 @@
                 keys.remove(index);
             }
         }
-
         if (!values.isEmpty()) {
             int index = random.nextInt(values.size());
             int score = values.get(index);
@@ -364,7 +389,7 @@
      * @param frameTextContentList
      * @param titleItemsVM           title
      */
-    private void randomQuestion(ExamPaperEditRequestVM examPaperEditRequestVM, List<ExamPaperTitleItemObject> frameTextContentList, List<ExamPaperTitleItemVM> titleItemsVM) throws QuestionException {
+    private void randomQuesrandomQuestiontion(ExamPaperEditRequestVM examPaperEditRequestVM, List<ExamPaperTitleItemObject> frameTextContentList, List<ExamPaperTitleItemVM> titleItemsVM) throws QuestionException {
         Map<Integer, Integer> subjectSource = examPaperEditRequestVM.getSubjectSource();
         //鎬绘暟閲�
         Integer sum = subjectSource.values().stream().mapToInt(Integer::intValue).sum();
@@ -457,13 +482,17 @@
      * @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();
         //澶氶��
         Integer multipleChoice = examPaperEditRequestVM.getQuestionTypeVMS().stream().mapToInt(QuestionTypeVM::getMultipleChoice).sum();
         //鍒ゆ柇
         Integer judgment = examPaperEditRequestVM.getQuestionTypeVMS().stream().mapToInt(QuestionTypeVM::getTrueFalse).sum();
-        if ((singleChoice * 4 + multipleChoice * 5 + judgment * 2) != 100) {
+
+
+        if ((singleChoice * 2 + multipleChoice * 2 + judgment * 2) != new Integer(100)) {
             throw new QuestionException();
         }
 
@@ -491,15 +520,15 @@
             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);
 
 
             //鍒ゆ柇
-            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);
 
             //鍗曢�夊垎鏁�

--
Gitblit v1.8.0