龚焕茏
2024-07-09 c5c10c1bb95f5bb7fdc8b714c5c998e78c26e0f7
src/main/java/com/mindskip/xzs/service/impl/ExamTemplatesServiceImpl.java
@@ -11,15 +11,15 @@
import com.mindskip.xzs.service.ExamTemplatesUserCountService;
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.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
@@ -55,19 +55,25 @@
        if (model.getId() != null) {
            removes(model.getId());
        }
        ExamTemplates examTemplates = ExamTemplatesClassConvert.INSTANCE.ExamPaperEditRequestVMToExamTemplates(model);
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime startTime = LocalDateTime.parse(model.getLimitDateTime().get(0),dateTimeFormatter);
        LocalDateTime endTime = LocalDateTime.parse(model.getLimitDateTime().get(1),dateTimeFormatter);
        if (!CollectionUtils.isEmpty(model.getLimitDateTime())) {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date startTime = null;
            Date endTime = null;
            try {
                startTime = dateFormat.parse(model.getLimitDateTime().get(0));
                endTime = dateFormat.parse(model.getLimitDateTime().get(1));
            } catch (Exception e) {
                log.info(e.getMessage());
            }
            examTemplates.setStartTime(startTime);
            examTemplates.setEndTime(endTime);
        }
        examTemplates.setCtime(new Date());
        examTemplates.setTitleName(model.getTitleItems().get(0).getName());
        examTemplates.setStatus(model.getStatus());
        examTemplates.setMenuIds(model.getMenuIds());
        examTemplates.setStartTime(startTime);
        examTemplates.setEndTime(endTime);
        examTemplates.setCreateUser(model.getCreateUser());
        examTemplatesMapper.add(examTemplates);
        List<ExamTemplatesQuestion> examTemplatesQuestions = ExamTemplatesClassConvert.INSTANCE.QuestionTypeVMListToExamTemplatesQuestionList(model.getQuestionTypeVMS())
@@ -85,11 +91,11 @@
            subjects.add(examTemplatesSubject);
        }
        examTemplatesSubjectMapper.saves(subjects);
        if("0".equals(model.getStatus())){
        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 (int i = 0; i < obj.length; i++) {
                userIds[i] = (Integer) obj[i];
            }
            for (Integer userId : userIds) {
                ExamTemplatesUser templatesUser = new ExamTemplatesUser();
@@ -109,6 +115,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
@@ -133,7 +145,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);
@@ -143,20 +155,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
@@ -164,14 +176,27 @@
        removes(id);
    }
    public ExamPaperEditRequestVM restore(Integer id){
        if(id == null){
    public ExamPaperEditRequestVM restore(Integer id) {
        if (id == null) {
            ExamTemplates examTemplates = examTemplatesMapper.getTime();
            id = examTemplates.getId();
        }
        ExamTemplates examTemplates = examTemplatesMapper.getById(id);
        ExamPaperEditRequestVM vm = ExamTemplatesClassConvert.INSTANCE.ExamTemplatesToExamPaperEditRequestVM(examTemplates);
        vm.setMenuIds(examTemplates.getMenuIds());
        List<String> limitDateTime = new ArrayList<>();
        Date startTime = examTemplates.getStartTime();
        Date endTime = examTemplates.getEndTime();
        if (startTime != null && endTime != null) {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String start = dateFormat.format(startTime);
            String end = dateFormat.format(endTime);
            limitDateTime.add(start);
            limitDateTime.add(end);
            vm.setLimitDateTime(limitDateTime);
        }
        Integer[] ids = examTemplatesSubjectMapper.getTemplatesId(id)
                .stream().map(ExamTemplatesSubject::getSubjectId).toArray(Integer[]::new);
        vm.setSubjectId(ids);
@@ -184,7 +209,7 @@
        list.add(examPaperTitleItemVM);
        vm.setTitleItems(list);
        vm.setAggregateSource(100);
        if("0".equals(examTemplates.getStatus())){
        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()];
@@ -195,7 +220,8 @@
        }
        return vm;
    }
    public void removes(Integer id){
    public void removes(Integer id) {
        examTemplatesMapper.removeById(id);
        examTemplatesQuestionMapper.removeByTemplatesId(id);
        examTemplatesSubjectMapper.removeByTemplatesId(id);