From 1dd3f8fdbbfc8a41f35a32f153201724a8faa2b3 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期二, 14 五月 2024 18:12:27 +0800 Subject: [PATCH] 保存顺序练习记录 --- src/main/java/com/mindskip/xzs/service/impl/SelfPracticeServiceImpl.java | 44 +++++++++++++++++++++++++++++++++++--------- 1 files changed, 35 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/mindskip/xzs/service/impl/SelfPracticeServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/SelfPracticeServiceImpl.java index 09cac23..dba31af 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/SelfPracticeServiceImpl.java +++ b/src/main/java/com/mindskip/xzs/service/impl/SelfPracticeServiceImpl.java @@ -114,11 +114,13 @@ return RestResponse.ok(list); } else if (PracticeTypeEnum.RANDOM.getValue().equals(en.getPracticeType())) { // 闅忔満缁冧範锛屾槸涓�閬撻涓�閬撻缁冧範 - List<QuestionVO> one = questionSubjectMapper.getRandomQuestionId(subjectIds, 1); + List<QuestionVO> one = questionSubjectMapper.getRandomQuestionId(subjectIds, PracticeQuestionTypeEnum.getDataBaseValueByValue(en.getQuestionType()), 1); if (one.size() < 1) { throw new RuntimeException("娌℃湁鎵惧埌棰樼洰锛屽彲鑳芥墍閫夎鐩寘鍚鐩笉瓒�"); } - return RestResponse.ok(one.get(0)); + QuestionVO questionVO = one.get(0); + jsonQuestion(questionVO); + return RestResponse.ok(questionVO); } return RestResponse.ok(); } @@ -129,18 +131,42 @@ return RestResponse.ok(num); } + @Override + public RestResponse randomOneQuestion(Integer id) { + SelfPractice en = selfPracticeMapper.selectById(id); + if (Objects.isNull(en)) { + throw new RuntimeException("缁冧範涓嶅瓨鍦�"); + } + List<Integer> subjectIds = JSON.parseArray(en.getSubjects(), Integer.class); + List<QuestionVO> one = questionSubjectMapper.getRandomQuestionId(subjectIds, PracticeQuestionTypeEnum.getDataBaseValueByValue(en.getQuestionType()), 1); + if (one.size() < 1) { + throw new RuntimeException("娌℃湁鎵惧埌棰樼洰锛屽彲鑳芥墍閫夎鐩寘鍚鐩笉瓒�"); + } + QuestionVO questionVO = one.get(0); + jsonQuestion(questionVO); + + return RestResponse.ok(questionVO); + } /** * 澶勭悊棰樼洰鍐呭JSON * - * @param vos + * @param questionVO */ - public void jsonQuestion(List<QuestionVO> vos) { - vos.stream().forEach(vo -> { - if (StringUtils.hasText(vo.getContentJson())) { - QuestionContentVO questionContent = JSON.parseObject(vo.getContentJson(), QuestionContentVO.class); - vo.setContent(questionContent); + public void jsonQuestion(QuestionVO questionVO) { + if (StringUtils.hasText(questionVO.getContentJson())) { + QuestionContentVO questionContent = JSON.parseObject(questionVO.getContentJson(), QuestionContentVO.class); + questionVO.setContent(questionContent); + } + if (QuestionTypeEnum.MultipleChoice.getCode().equals(questionVO.getQuestionType())) { + // 澶氶�夐闇�瑕佽繑鍥炵瓟妗堟暟閲忥紝瀛﹀憳閫変腑瀵瑰簲鏁伴噺鎵嶆煡璇㈢瓟妗� + if (StringUtils.hasText(questionVO.getCorrect())) { + questionVO.setAnswerNum(questionVO.getCorrect().split(",").length); } - }); + } + questionVO.setContentJson(""); + questionVO.setCorrect(""); + questionVO.getContent().setCorrect(""); + questionVO.getContent().setAnalyze(""); } } -- Gitblit v1.8.0