龚焕茏
2024-07-03 3ec909b27b3eba956aa9d00cc7a94c179bd04bbf
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);
@@ -161,7 +167,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);