From 3ec909b27b3eba956aa9d00cc7a94c179bd04bbf Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期三, 03 七月 2024 18:29:31 +0800
Subject: [PATCH] feat:新增随机时间题目配置

---
 src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java |   62 +++++++++++++++++--------------
 1 files changed, 34 insertions(+), 28 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 d1da647..8f7bf10 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java
@@ -5,28 +5,19 @@
 import com.mindskip.xzs.domain.*;
 import com.mindskip.xzs.domain.vo.ExamTemplatesVO;
 import com.mindskip.xzs.repository.*;
-import com.mindskip.xzs.service.DepartmentService;
-import com.mindskip.xzs.service.ExamPaperService;
-import com.mindskip.xzs.service.ExamTemplatesService;
-import com.mindskip.xzs.service.ExamTemplatesUserCountService;
+import com.mindskip.xzs.service.*;
 import com.mindskip.xzs.utility.convert.ExamTemplatesClassConvert;
 import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM;
+import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVO;
 import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperTitleItemVM;
 import com.mindskip.xzs.viewmodel.admin.exam.QuestionTypeVM;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
-import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -40,8 +31,9 @@
     private final ExamPaperService examPaperService;
     private final ExamTemplatesUserCountService examTemplatesUserCountService;
     private final ExamTemplatesUserMapper examTemplatesUserMapper;
+    private final ExamTemplatesConfigService examTemplatesConfigService;
 
-    public ExamTemplatesServiceImpl(BaseMapper<ExamTemplates> baseMapper, ExamTemplatesMapper examTemplatesMapper, ExamTemplatesQuestionMapper examTemplatesQuestionMapper, ExamTemplatesSubjectMapper examTemplatesSubjectMapper, DepartmentService departmentService, ExamPaperService examPaperService, ExamTemplatesUserCountService examTemplatesUserCountService, ExamTemplatesUserMapper examTemplatesUserMapper) {
+    public ExamTemplatesServiceImpl(BaseMapper<ExamTemplates> baseMapper, ExamTemplatesMapper examTemplatesMapper, ExamTemplatesQuestionMapper examTemplatesQuestionMapper, ExamTemplatesSubjectMapper examTemplatesSubjectMapper, DepartmentService departmentService, ExamPaperService examPaperService, ExamTemplatesUserCountService examTemplatesUserCountService, ExamTemplatesUserMapper examTemplatesUserMapper, ExamTemplatesConfigService examTemplatesConfigService) {
         super(baseMapper);
         this.examTemplatesMapper = examTemplatesMapper;
         this.examTemplatesQuestionMapper = examTemplatesQuestionMapper;
@@ -50,6 +42,7 @@
         this.examPaperService = examPaperService;
         this.examTemplatesUserCountService = examTemplatesUserCountService;
         this.examTemplatesUserMapper = examTemplatesUserMapper;
+        this.examTemplatesConfigService = examTemplatesConfigService;
     }
 
     @Transactional(rollbackFor = Exception.class)
@@ -58,7 +51,6 @@
         if (model.getId() != null) {
             removes(model.getId());
         }
-
         ExamTemplates examTemplates = ExamTemplatesClassConvert.INSTANCE.ExamPaperEditRequestVMToExamTemplates(model);
         if (!CollectionUtils.isEmpty(model.getLimitDateTime())) {
             SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -77,14 +69,11 @@
         examTemplates.setTitleName(model.getTitleItems().get(0).getName());
         examTemplates.setStatus(model.getStatus());
         examTemplates.setMenuIds(model.getMenuIds());
+        examTemplates.setCreateUser(model.getCreateUser());
         examTemplatesMapper.add(examTemplates);
 
-        List<ExamTemplatesQuestion> examTemplatesQuestions = ExamTemplatesClassConvert.INSTANCE.QuestionTypeVMListToExamTemplatesQuestionList(model.getQuestionTypeVMS())
-                .stream().map(e -> {
-                    e.setTemplatesId(examTemplates.getId());
-                    return e;
-                }).collect(Collectors.toList());
-        examTemplatesQuestionMapper.saves(examTemplatesQuestions);
+        // 闅忔満鏃堕棿棰樼洰閰嶇疆
+        examTemplatesQuestionMapper.add(getExamTemplatesQuestion(examTemplates.getId()));
 
         List<ExamTemplatesSubject> subjects = new ArrayList<>();
         for (Integer e : model.getSubjectId()) {
@@ -109,6 +98,17 @@
         }
     }
 
+    private ExamTemplatesQuestion getExamTemplatesQuestion(Integer templatesId) {
+        ExamTemplatesConfig examTemplatesConfig = examTemplatesConfigService.getConfig();
+        if (Objects.isNull(examTemplatesConfig)) { throw new RuntimeException("璇峰厛閰嶇疆璇曞嵎妯℃澘"); }
+        ExamTemplatesQuestion examTemplatesQuestion = new ExamTemplatesQuestion();
+        examTemplatesQuestion.setSingleChoice(examTemplatesConfig.getRadioNum().toString());
+        examTemplatesQuestion.setMultipleChoice(examTemplatesConfig.getCheckNum().toString());
+        examTemplatesQuestion.setTrueFalse(examTemplatesConfig.getJudgingNum().toString());
+        examTemplatesQuestion.setTemplatesId(templatesId);
+        return examTemplatesQuestion;
+    }
+
     @Override
     public List<ExamTemplatesVO> list(ExamTemplatesVO examTemplatesVO) {
         return null;
@@ -118,6 +118,12 @@
     public PageInfo<ExamTemplates> gets(ExamTemplatesVO templatesVO) {
         return PageHelper.startPage(templatesVO.getPageIndex(), templatesVO.getPageSize(), "id desc").doSelectPageInfo(() ->
                 examTemplatesMapper.gets(templatesVO));
+    }
+
+    @Override
+    public PageInfo<ExamTemplates> getByadmins(ExamTemplatesVO templatesVO) {
+        return PageHelper.startPage(templatesVO.getPageIndex(), templatesVO.getPageSize(), "id desc").doSelectPageInfo(() ->
+                examTemplatesMapper.getByadmins(templatesVO));
     }
 
     @Override
@@ -142,7 +148,7 @@
         vm.setType("1");
         vm.setId(null);
         ExamPaper examPaper = examPaperService.savePaperFromVM(vm, user);
-        ExamPaperEditRequestVM newVM = examPaperService.examPaperToVM(examPaper.getId());
+        ExamPaperEditRequestVO newVM = examPaperService.examPaperToVM(examPaper.getId());
         count.setExamPaperId(examPaper.getId());
         count.setUserId(user.getId());
         examTemplatesUserCountService.add(count);
@@ -152,20 +158,20 @@
     @Override
     public Integer randomExam1(User user, Integer templatesId) throws Exception {
 
-        ExamTemplatesUserCount count = new ExamTemplatesUserCount();
+//        ExamTemplatesUserCount count = new ExamTemplatesUserCount();
 
         ExamPaperEditRequestVM vm = restore(templatesId);
-        count.setExamTemplatesId(vm.getId());
+//        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();
+        ExamPaperEditRequestVO newVM = examPaperService.examPaperToVM(examPaper.getId());
+//        count.setExamPaperId(examPaper.getId());
+//        count.setUserId(user.getId());
+//        examTemplatesUserCountService.add(count);
+        return examPaper.getId();
     }
 
     @Override

--
Gitblit v1.8.0