From 99b29966852e4f8e1dfb2e444db4f86ce786a3b1 Mon Sep 17 00:00:00 2001
From: qirong <2032486488@qq.com>
Date: 星期二, 28 十一月 2023 11:08:35 +0800
Subject: [PATCH] 随机试卷修改

---
 src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 50 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java
index 40207d5..d06ee00 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java
@@ -4,10 +4,7 @@
 import com.github.pagehelper.PageInfo;
 import com.mindskip.xzs.domain.*;
 import com.mindskip.xzs.domain.vo.ExamTemplatesVO;
-import com.mindskip.xzs.repository.BaseMapper;
-import com.mindskip.xzs.repository.ExamTemplatesMapper;
-import com.mindskip.xzs.repository.ExamTemplatesQuestionMapper;
-import com.mindskip.xzs.repository.ExamTemplatesSubjectMapper;
+import com.mindskip.xzs.repository.*;
 import com.mindskip.xzs.service.DepartmentService;
 import com.mindskip.xzs.service.ExamPaperService;
 import com.mindskip.xzs.service.ExamTemplatesService;
@@ -20,6 +17,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -33,8 +31,9 @@
     private final DepartmentService departmentService;
     private final ExamPaperService examPaperService;
     private final ExamTemplatesUserCountService examTemplatesUserCountService;
+    private final ExamTemplatesUserMapper examTemplatesUserMapper;
 
-    public ExamTemplatesServiceImpl(BaseMapper<ExamTemplates> baseMapper, ExamTemplatesMapper examTemplatesMapper, ExamTemplatesQuestionMapper examTemplatesQuestionMapper, ExamTemplatesSubjectMapper examTemplatesSubjectMapper, DepartmentService departmentService, ExamPaperService examPaperService, ExamTemplatesUserCountService examTemplatesUserCountService) {
+    public ExamTemplatesServiceImpl(BaseMapper<ExamTemplates> baseMapper, ExamTemplatesMapper examTemplatesMapper, ExamTemplatesQuestionMapper examTemplatesQuestionMapper, ExamTemplatesSubjectMapper examTemplatesSubjectMapper, DepartmentService departmentService, ExamPaperService examPaperService, ExamTemplatesUserCountService examTemplatesUserCountService, ExamTemplatesUserMapper examTemplatesUserMapper) {
         super(baseMapper);
         this.examTemplatesMapper = examTemplatesMapper;
         this.examTemplatesQuestionMapper = examTemplatesQuestionMapper;
@@ -42,6 +41,7 @@
         this.departmentService = departmentService;
         this.examPaperService = examPaperService;
         this.examTemplatesUserCountService = examTemplatesUserCountService;
+        this.examTemplatesUserMapper = examTemplatesUserMapper;
     }
 
     @Transactional(rollbackFor = Exception.class)
@@ -54,6 +54,8 @@
         ExamTemplates examTemplates = ExamTemplatesClassConvert.INSTANCE.ExamPaperEditRequestVMToExamTemplates(model);
         examTemplates.setCtime(new Date());
         examTemplates.setTitleName(model.getTitleItems().get(0).getName());
+        examTemplates.setStatus(model.getStatus());
+        examTemplates.setMenuIds(model.getMenuIds());
         examTemplatesMapper.add(examTemplates);
 
         List<ExamTemplatesQuestion> examTemplatesQuestions = ExamTemplatesClassConvert.INSTANCE.QuestionTypeVMListToExamTemplatesQuestionList(model.getQuestionTypeVMS())
@@ -71,6 +73,19 @@
             subjects.add(examTemplatesSubject);
         }
         examTemplatesSubjectMapper.saves(subjects);
+        if("0".equals(model.getStatus())){
+            Object[] obj = Arrays.stream(model.getUserIds()).sorted().distinct().toArray();
+            Integer[] userIds = new Integer[obj.length];
+            for(int i = 0;i<obj.length;i++) {
+                userIds[i] = (Integer)obj[i];
+            }
+            for (Integer userId : userIds) {
+                ExamTemplatesUser templatesUser = new ExamTemplatesUser();
+                templatesUser.setTemplatesId(examTemplates.getId().toString());
+                templatesUser.setUserId(userId.toString());
+                examTemplatesUserMapper.add(templatesUser);
+            }
+        }
     }
 
     @Override
@@ -81,7 +96,7 @@
     @Override
     public PageInfo<ExamTemplates> gets(ExamTemplatesVO templatesVO) {
         return PageHelper.startPage(templatesVO.getPageIndex(), templatesVO.getPageSize(), "id desc").doSelectPageInfo(() ->
-                examTemplatesMapper.gets());
+                examTemplatesMapper.gets(templatesVO));
     }
 
     @Override
@@ -114,6 +129,25 @@
     }
 
     @Override
+    public Integer randomExam1(User user, Integer templatesId) throws Exception {
+
+        ExamTemplatesUserCount count = new ExamTemplatesUserCount();
+
+        ExamPaperEditRequestVM vm = restore(templatesId);
+        count.setExamTemplatesId(vm.getId());
+        Integer[] id = {user.getId()};
+        vm.setUserIds(id);
+        vm.setType("1");
+        vm.setId(null);
+        ExamPaper examPaper = examPaperService.savePaperFromVM(vm, user);
+        ExamPaperEditRequestVM newVM = examPaperService.examPaperToVM(examPaper.getId());
+        count.setExamPaperId(examPaper.getId());
+        count.setUserId(user.getId());
+        examTemplatesUserCountService.add(count);
+        return count.getExamPaperId();
+    }
+
+    @Override
     public void remove(Integer id) {
         removes(id);
     }
@@ -125,6 +159,7 @@
         }
         ExamTemplates examTemplates = examTemplatesMapper.getById(id);
         ExamPaperEditRequestVM vm = ExamTemplatesClassConvert.INSTANCE.ExamTemplatesToExamPaperEditRequestVM(examTemplates);
+        vm.setMenuIds(examTemplates.getMenuIds());
         Integer[] ids = examTemplatesSubjectMapper.getTemplatesId(id)
                 .stream().map(ExamTemplatesSubject::getSubjectId).toArray(Integer[]::new);
         vm.setSubjectId(ids);
@@ -137,6 +172,15 @@
         list.add(examPaperTitleItemVM);
         vm.setTitleItems(list);
         vm.setAggregateSource(100);
+        if("0".equals(examTemplates.getStatus())){
+            List<ExamTemplatesUser> byId = examTemplatesUserMapper.getById(id);
+            List<String> collect = byId.stream().map(ExamTemplatesUser::getUserId).collect(Collectors.toList());
+            Integer[] userIds = new Integer[collect.size()];
+            for (int i = 0; i < collect.size(); i++) {
+                userIds[i] = Integer.parseInt(collect.get(i));
+            }
+            vm.setUserIds(userIds);
+        }
         return vm;
     }
     public void removes(Integer id){

--
Gitblit v1.8.0