From 247cb86585a1d1894596ed18a6c93efecb992946 Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期四, 14 十一月 2024 10:34:27 +0800
Subject: [PATCH] 班级成绩图表分析

---
 src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java |  107 +++++++++++++++++++++++++++++++++++------------------
 1 files changed, 71 insertions(+), 36 deletions(-)

diff --git a/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java b/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java
index 1f3c735..fcda5ea 100644
--- a/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java
+++ b/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java
@@ -1,34 +1,37 @@
 package com.ycl.jxkg.controller.student;
 
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.github.pagehelper.PageInfo;
 import com.ycl.jxkg.base.BaseApiController;
 import com.ycl.jxkg.base.Result;
-import com.ycl.jxkg.domain.*;
+import com.ycl.jxkg.domain.ExamPaperAnswerInfo;
 import com.ycl.jxkg.domain.entity.ExamPaperScore;
-import com.ycl.jxkg.domain.entity.Subject;
 import com.ycl.jxkg.domain.entity.User;
-import com.ycl.jxkg.domain.entity.UserEventLog;
-import com.ycl.jxkg.enums.ExamPaperAnswerStatusEnum;
-import com.ycl.jxkg.event.CalculateExamPaperAnswerCompleteEvent;
-import com.ycl.jxkg.event.UserEvent;
-import com.ycl.jxkg.service.ExamPaperScoreService;
-import com.ycl.jxkg.service.ExamPaperService;
-import com.ycl.jxkg.service.SubjectService;
-import com.ycl.jxkg.utils.DateTimeUtil;
-import com.ycl.jxkg.utils.ExamUtil;
-import com.ycl.jxkg.utils.PageInfoHelper;
-import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperEditRequestVO;
-import com.ycl.jxkg.domain.vo.student.exam.ExamPaperReadVO;
+import com.ycl.jxkg.domain.vo.DoQuestionVO;
+import com.ycl.jxkg.domain.vo.PaperFixQuestionVO;
+import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperMarkNavbarVO;
+import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperScoreVO;
 import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitVO;
 import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO;
 import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageVO;
-import com.github.pagehelper.PageInfo;
+import com.ycl.jxkg.domain.vo.student.wrong.CheckWrongVO;
+import com.ycl.jxkg.mapper.ExamPaperMapper;
+import com.ycl.jxkg.mapper.ExamPaperScoreMapper;
+import com.ycl.jxkg.service.ExamPaperScoreService;
+import com.ycl.jxkg.service.ExamPaperService;
+import com.ycl.jxkg.service.SubjectService;
+import com.ycl.jxkg.service.UserService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
 import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
-import java.util.Date;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 @RequiredArgsConstructor
 @RestController("StudentExamPaperAnswerController")
@@ -36,27 +39,18 @@
 public class ExamPaperAnswerController extends BaseApiController {
 
     private final ExamPaperScoreService examPaperScoreService;
+    private final UserService userService;
     private final ExamPaperService examPaperService;
     private final SubjectService subjectService;
     private final ApplicationEventPublisher eventPublisher;
+    private final ExamPaperScoreMapper examPaperScoreMapper;
+    private final ExamPaperMapper examPaperMapper;
 
 
     @RequestMapping(value = "/pageList", method = RequestMethod.POST)
     public Result<PageInfo<ExamPaperAnswerPageResponseVO>> pageList(@RequestBody @Valid ExamPaperAnswerPageVO model) {
         model.setCreateUser(getCurrentUser().getId());
-        PageInfo<ExamPaperScore> pageInfo = examPaperScoreService.studentPage(model);
-        PageInfo<ExamPaperAnswerPageResponseVO> page = PageInfoHelper.copyMap(pageInfo, e -> {
-            ExamPaperAnswerPageResponseVO vo = new ExamPaperAnswerPageResponseVO();
-//            BeanUtils.copyProperties(e, vo);
-//            Subject subject = subjectService.getById(vo.getSubjectId());
-//            vo.setDoTime(ExamUtil.secondToVM(e.getDoTime()));
-//            vo.setSystemScore(ExamUtil.scoreToVM(e.getSystemScore()));
-//            vo.setUserScore(ExamUtil.scoreToVM(e.getUserScore()));
-//            vo.setPaperScore(ExamUtil.scoreToVM(e.getPaperScore()));
-//            vo.setSubjectName(subject.getName());
-//            vo.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime()));
-            return vo;
-        });
+        PageInfo<ExamPaperAnswerPageResponseVO> page = examPaperScoreService.studentPage(model);
         return Result.ok(page);
     }
 
@@ -104,15 +98,56 @@
     }
 
     @RequestMapping(value = "/read/{id}", method = RequestMethod.POST)
-    public Result<ExamPaperReadVO> read(@PathVariable Integer id) {
+    public Result<ExamPaperScoreVO> read(@PathVariable Integer id) {
         ExamPaperScore examPaperScore = examPaperScoreService.getById(id);
-        ExamPaperReadVO vm = new ExamPaperReadVO();
-        ExamPaperEditRequestVO paper = examPaperService.examPaperToVM(examPaperScore.getPaperId());
-        ExamPaperSubmitVO answer = examPaperScoreService.examPaperAnswerToVM(examPaperScore.getId());
-        vm.setPaper(paper);
-        vm.setAnswer(answer);
-        return Result.ok(vm);
+        ExamPaperScoreVO examPaperScoreVO = new ExamPaperScoreVO();
+        BeanUtils.copyProperties(examPaperScore, examPaperScoreVO);
+        User user = userService.getById(examPaperScore.getUserId());
+        examPaperScoreVO.setUserName(Objects.nonNull(user) ? user.getRealName() : "鐢ㄦ埛宸叉敞閿�");
+        examPaperScoreVO.setNavbar(JSON.parseArray(examPaperScore.getNavbar(), ExamPaperMarkNavbarVO.class));
+        examPaperScoreVO.setTitleItems(JSON.parseArray(examPaperScore.getPaperContent(), PaperFixQuestionVO.class));
+        return Result.ok(examPaperScoreVO);
     }
 
 
+    @RequestMapping(value = "/checkWrong", method = RequestMethod.POST)
+    public Result<ExamPaperScoreVO> checkWrong(@RequestBody @Valid CheckWrongVO model) {
+        ExamPaperScore info = new LambdaQueryChainWrapper<>(examPaperScoreMapper)
+                .eq(ExamPaperScore::getExamId, model.getExamId())
+                .eq(ExamPaperScore::getUserId, getCurrentUser().getId())
+                .one();
+
+//        model.setUserId(getCurrentUser().getId());
+//        ExamPaperScore examPaperScore = examPaperScoreMapper.checkWrong(model);
+
+        ExamPaperScore examPaperScore = examPaperScoreService.getById(info.getId());
+        ExamPaperScoreVO examPaperScoreVO = new ExamPaperScoreVO();
+        BeanUtils.copyProperties(examPaperScore, examPaperScoreVO);
+        User user = userService.getById(examPaperScore.getUserId());
+        examPaperScoreVO.setUserName(Objects.nonNull(user) ? user.getRealName() : "鐢ㄦ埛宸叉敞閿�");
+        examPaperScoreVO.setNavbar(JSON.parseArray(examPaperScore.getNavbar(), ExamPaperMarkNavbarVO.class));
+        examPaperScoreVO.setTitleItems(JSON.parseArray(examPaperScore.getPaperContent(), PaperFixQuestionVO.class));
+
+        List<PaperFixQuestionVO> collect = JSON.parseArray(examPaperScore.getPaperContent(), PaperFixQuestionVO.class).stream()
+                .filter(item -> item.getQuestionType() == model.getQuestionType())
+                .collect(Collectors.toList());
+        List<DoQuestionVO> doQuestionVOS = new ArrayList<>();
+
+        collect.stream().forEach(item -> {
+            item.getQuestionList().stream().forEach(question -> {
+                if (question.getId() == model.getQuestionId()) {
+                    doQuestionVOS.add(question);
+                }
+            });
+        });
+        collect.stream().forEach(item -> {
+            item.setQuestionList(doQuestionVOS);
+        });
+
+        PaperFixQuestionVO paperFixQuestionVO = new PaperFixQuestionVO();
+        paperFixQuestionVO.setQuestionType(model.getQuestionType());
+        examPaperScoreVO.setTitleItems(collect);
+        return Result.ok(examPaperScoreVO);
+    }
+
 }

--
Gitblit v1.8.0