龚焕茏
2024-06-05 c93bdeb8ed528d015865f763dfc240cbad7aa00b
src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java
@@ -85,16 +85,16 @@
            frameTextContent.setContent(frameTextContentStr);
            frameTextContent.setCreateTime(now);
            textContentService.save(frameTextContent);
            examPaper.setFrameTextContentId(frameTextContent.getId());
            examPaper.setCreateTime(now);
            examPaper.setCreateUser(user.getId());
            examPaperFromVM(examPaperEditRequestVO, examPaper, titleItemsVM);
            examPaperMapper.insert(examPaper);
        } else {
            examPaper = examPaperMapper.selectById(examPaperEditRequestVO.getId());
            TextContent frameTextContent = textContentService.getById(examPaper.getFrameTextContentId());
            frameTextContent.setContent(frameTextContentStr);
            textContentService.updateById(frameTextContent);
            //TODO:待完成
//            TextContent frameTextContent = textContentService.getById(examPaper.getFrameTextContentId());
//            frameTextContent.setContent(frameTextContentStr);
//            textContentService.updateById(frameTextContent);
            examPaperFromVM(examPaperEditRequestVO, examPaper, titleItemsVM);
            examPaperMapper.updateById(examPaper);
        }
@@ -106,32 +106,32 @@
        ExamPaper examPaper = examPaperMapper.selectById(id);
        ExamPaperEditRequestVO vo = new ExamPaperEditRequestVO();
        BeanUtils.copyProperties(examPaper, vo);
        vo.setLevel(examPaper.getGradeLevel());
        TextContent frameTextContent = textContentService.getById(examPaper.getFrameTextContentId());
        List<ExamPaperTitleItemObject> examPaperTitleItemObjects = JsonUtil.toJsonListObject(frameTextContent.getContent(), ExamPaperTitleItemObject.class);
        List<Integer> questionIds = examPaperTitleItemObjects.stream()
                .flatMap(t -> t.getQuestionItems().stream()
                        .map(q -> q.getId()))
                .collect(Collectors.toList());
        List<Question> questions = questionMapper.selectByIds(questionIds);
        List<ExamPaperTitleItemVO> examPaperTitleItemVOS = examPaperTitleItemObjects.stream().map(t -> {
            ExamPaperTitleItemVO tTitleVM = new ExamPaperTitleItemVO();
            BeanUtils.copyProperties(t, tTitleVM);
            List<QuestionEditRequestVO> questionItemsVM = t.getQuestionItems().stream().map(i -> {
                Question question = questions.stream().filter(q -> q.getId().equals(i.getId())).findFirst().get();
                QuestionEditRequestVO questionEditRequestVO = questionService.getQuestionEditRequestVM(question);
                questionEditRequestVO.setItemOrder(i.getItemOrder());
                return questionEditRequestVO;
            }).collect(Collectors.toList());
            tTitleVM.setQuestionItems(questionItemsVM);
            return tTitleVM;
        }).collect(Collectors.toList());
        vo.setTitleItems(examPaperTitleItemVOS);
        vo.setScore(ExamUtil.scoreToVM(examPaper.getScore()));
        if (ExamPaperTypeEnum.Random == ExamPaperTypeEnum.fromCode(examPaper.getPaperType())) {
            List<String> limitDateTime = Arrays.asList(DateTimeUtil.dateFormat(examPaper.getLimitStartTime()), DateTimeUtil.dateFormat(examPaper.getLimitEndTime()));
            vo.setLimitDateTime(limitDateTime);
        }
        //TODO:待完成
//        TextContent frameTextContent = textContentService.getById(examPaper.getFrameTextContentId());
//        List<ExamPaperTitleItemObject> examPaperTitleItemObjects = JsonUtil.toJsonListObject(frameTextContent.getContent(), ExamPaperTitleItemObject.class);
//        List<Integer> questionIds = examPaperTitleItemObjects.stream()
//                .flatMap(t -> t.getQuestionItems().stream()
//                        .map(q -> q.getId()))
//                .collect(Collectors.toList());
//        List<Question> questions = questionMapper.selectByIds(questionIds);
//        List<ExamPaperTitleItemVO> examPaperTitleItemVOS = examPaperTitleItemObjects.stream().map(t -> {
//            ExamPaperTitleItemVO tTitleVM = new ExamPaperTitleItemVO();
//            BeanUtils.copyProperties(t, tTitleVM);
//            List<QuestionEditRequestVO> questionItemsVM = t.getQuestionItems().stream().map(i -> {
//                Question question = questions.stream().filter(q -> q.getId().equals(i.getId())).findFirst().get();
//                QuestionEditRequestVO questionEditRequestVO = questionService.getQuestionEditRequestVM(question);
//                questionEditRequestVO.setItemOrder(i.getItemOrder());
//                return questionEditRequestVO;
//            }).collect(Collectors.toList());
//            tTitleVM.setQuestionItems(questionItemsVM);
//            return tTitleVM;
//        }).collect(Collectors.toList());
//        vo.setTitleItems(examPaperTitleItemVOS);
//        vo.setScore(ExamUtil.scoreToVM(examPaper.getScore()));
//        if (ExamPaperTypeEnum.Random == ExamPaperTypeEnum.fromCode(examPaper.getPaperType())) {
//            List<String> limitDateTime = Arrays.asList(DateTimeUtil.dateFormat(examPaper.getLimitStartTime()), DateTimeUtil.dateFormat(examPaper.getLimitEndTime()));
//            vo.setLimitDateTime(limitDateTime);
//        }
        return vo;
    }
@@ -159,21 +159,22 @@
    }
    private void examPaperFromVM(ExamPaperEditRequestVO examPaperEditRequestVO, ExamPaper examPaper, List<ExamPaperTitleItemVO> titleItemsVM) {
        Integer gradeLevel = subjectService.levelBySubjectId(examPaperEditRequestVO.getSubjectId());
        Integer questionCount = titleItemsVM.stream()
                .mapToInt(t -> t.getQuestionItems().size()).sum();
        Integer score = titleItemsVM.stream().
                flatMapToInt(t -> t.getQuestionItems().stream()
                        .mapToInt(q -> ExamUtil.scoreFromVM(q.getScore()))
                ).sum();
        examPaper.setQuestionCount(questionCount);
        examPaper.setScore(score);
        examPaper.setGradeLevel(gradeLevel);
        List<String> dateTimes = examPaperEditRequestVO.getLimitDateTime();
        if (ExamPaperTypeEnum.Random == ExamPaperTypeEnum.fromCode(examPaper.getPaperType())) {
            examPaper.setLimitStartTime(DateTimeUtil.parse(dateTimes.get(0), DateTimeUtil.STANDER_FORMAT));
            examPaper.setLimitEndTime(DateTimeUtil.parse(dateTimes.get(1), DateTimeUtil.STANDER_FORMAT));
        }
        //TODO:待完成
//        Integer gradeLevel = subjectService.levelBySubjectId(examPaperEditRequestVO.getSubjectId());
//        Integer questionCount = titleItemsVM.stream()
//                .mapToInt(t -> t.getQuestionItems().size()).sum();
//        Integer score = titleItemsVM.stream().
//                flatMapToInt(t -> t.getQuestionItems().stream()
//                        .mapToInt(q -> ExamUtil.scoreFromVM(q.getScore()))
//                ).sum();
//        examPaper.setQuestionCount(questionCount);
//        examPaper.setScore(score);
//        examPaper.setGradeLevel(gradeLevel);
//        List<String> dateTimes = examPaperEditRequestVO.getLimitDateTime();
//        if (ExamPaperTypeEnum.Random == ExamPaperTypeEnum.fromCode(examPaper.getPaperType())) {
//            examPaper.setLimitStartTime(DateTimeUtil.parse(dateTimes.get(0), DateTimeUtil.STANDER_FORMAT));
//            examPaper.setLimitEndTime(DateTimeUtil.parse(dateTimes.get(1), DateTimeUtil.STANDER_FORMAT));
//        }
    }
    private List<ExamPaperTitleItemObject> frameTextContentFromVM(List<ExamPaperTitleItemVO> titleItems) {