From b19d7869a20efec118e6e2b3384b43b53e3ffb27 Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期二, 14 五月 2024 17:28:11 +0800 Subject: [PATCH] feat:答卷统计新需求 --- src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java | 63 +++++++++++++++++++++++++++---- 1 files changed, 54 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java index a197e18..5319359 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java +++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java @@ -1,14 +1,15 @@ package com.mindskip.xzs.service.impl; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import com.mindskip.xzs.domain.*; import com.mindskip.xzs.domain.enums.ExamPaperAnswerStatusEnum; import com.mindskip.xzs.domain.enums.ExamPaperTypeEnum; import com.mindskip.xzs.domain.enums.QuestionTypeEnum; import com.mindskip.xzs.domain.exam.ExamPaperTitleItemObject; -import com.mindskip.xzs.domain.other.KeyValue; import com.mindskip.xzs.domain.other.ExamPaperAnswerUpdate; +import com.mindskip.xzs.domain.other.KeyValue; import com.mindskip.xzs.domain.task.TaskItemAnswerObject; -import com.mindskip.xzs.repository.*; import com.mindskip.xzs.repository.ExamPaperAnswerMapper; import com.mindskip.xzs.repository.ExamPaperMapper; import com.mindskip.xzs.repository.QuestionMapper; @@ -19,19 +20,16 @@ import com.mindskip.xzs.utility.DateTimeUtil; import com.mindskip.xzs.utility.ExamUtil; import com.mindskip.xzs.utility.JsonUtil; +import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradePageRequestVM; +import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradeQuery; import com.mindskip.xzs.viewmodel.student.exam.ExamPaperSubmitItemVM; import com.mindskip.xzs.viewmodel.student.exam.ExamPaperSubmitVM; import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageVM; -import com.github.pagehelper.PageHelper; -import com.github.pagehelper.PageInfo; -import com.mindskip.xzs.domain.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; @Service @@ -220,13 +218,17 @@ QuestionTypeEnum questionTypeEnum = QuestionTypeEnum.fromCode(examPaperQuestionCustomerAnswer.getQuestionType()); switch (questionTypeEnum) { case SingleChoice: + examPaperQuestionCustomerAnswer.setAnswer(customerQuestionAnswer.getContent()); + examPaperQuestionCustomerAnswer.setDoRight(question.getCorrect().equals(customerQuestionAnswer.getContent())); + examPaperQuestionCustomerAnswer.setCustomerScore(examPaperQuestionCustomerAnswer.getDoRight() ? question.getScore() : 0); + break; case TrueFalse: examPaperQuestionCustomerAnswer.setAnswer(customerQuestionAnswer.getContent()); examPaperQuestionCustomerAnswer.setDoRight(question.getCorrect().equals(customerQuestionAnswer.getContent())); examPaperQuestionCustomerAnswer.setCustomerScore(examPaperQuestionCustomerAnswer.getDoRight() ? question.getScore() : 0); break; case MultipleChoice: - String customerAnswer = ExamUtil.contentToString(customerQuestionAnswer.getContentArray()); + String customerAnswer = customerQuestionAnswer.getContent() ==null ? ExamUtil.contentToString(customerQuestionAnswer.getContentArray()) : customerQuestionAnswer.getContent(); examPaperQuestionCustomerAnswer.setAnswer(customerAnswer); examPaperQuestionCustomerAnswer.setDoRight(customerAnswer.equals(question.getCorrect())); examPaperQuestionCustomerAnswer.setCustomerScore(examPaperQuestionCustomerAnswer.getDoRight() ? question.getScore() : 0); @@ -275,4 +277,47 @@ return PageHelper.startPage(requestVM.getPageIndex(), requestVM.getPageSize(), "user_score desc").doSelectPageInfo(() -> examPaperAnswerMapper.adminPage(requestVM)); } + + @Override + public ExamPaperAnswer getById(Integer id) { + return examPaperAnswerMapper.getById(id); + } + + @Override + public List<ExamPaperAnswer> selectByPaperName(String paperName) { + return examPaperAnswerMapper.selectByPaperName(paperName); + } + + @Override + public List<ExamPaperAnswer> getByExamPaperIdAndUserId(List<ExamTemplatesUserCount> examTemplatesUserCount) { + return examPaperAnswerMapper.getByExamPaperIdAndUserId(examTemplatesUserCount); + } + + @Override + public PageInfo<ExamPaperAnswer> adminPageByGrade(ExamPaperGradePageRequestVM grade) { + return PageHelper.startPage(grade.getPageIndex(), grade.getPageSize(), "id desc").doSelectPageInfo(() -> + examPaperAnswerMapper.adminPageByGrade(grade)); + } + + @Override + public List<ExamPaperAnswer> getByScorePaperIdAndUserId(List<ScoreTemplatesUserCount> scoreTemplatesUserCounts) { + return examPaperAnswerMapper.getByScorePaperIdAndUserId(scoreTemplatesUserCounts); + } + + @Override + public PageInfo<ExamPaperAnswer> getByCreatUser(ExamPaperGradeQuery query) { + query.setFullTime(); + return PageHelper.startPage(query.getPageIndex(), query.getPageSize(), "id desc").doSelectPageInfo(() -> + examPaperAnswerMapper.getByCreatUser(query)); + } + + @Override + public Map<String, Object> statistic(String examPaperId, String departmentId) { + HashMap<String, Object> map = new HashMap<>(); + Map<String, Object> histogram = examPaperAnswerMapper.histogram(examPaperId, departmentId); + Map<String, Object> pieChart = examPaperAnswerMapper.pieChart(examPaperId, departmentId); + map.put("histogram", histogram); + map.put("pieChart", pieChart); + return map; + } } -- Gitblit v1.8.0