From 99701274f83bc7c54beedfe7e18577e9d6b7198e Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 17 六月 2024 11:20:55 +0800
Subject: [PATCH] 阅卷、bug

---
 src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java |   66 ++++++++++++++++++++++++++++----
 1 files changed, 57 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
index 921cff5..438aff3 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
@@ -4,28 +4,23 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.ycl.jxkg.context.WebContext;
-import com.ycl.jxkg.domain.entity.Exam;
-import com.ycl.jxkg.domain.entity.ExamSubmitTemp;
-import com.ycl.jxkg.domain.entity.Question;
-import com.ycl.jxkg.domain.vo.DoQuestionVO;
-import com.ycl.jxkg.domain.vo.ExamSubmitVO;
+import com.ycl.jxkg.domain.entity.*;
+import com.ycl.jxkg.domain.vo.*;
 import com.ycl.jxkg.enums.QuestionTypeEnum;
 import com.ycl.jxkg.enums.general.ExamStatusEnum;
 import com.ycl.jxkg.enums.general.ExamSubmitTempStatusEnum;
-import com.ycl.jxkg.mapper.ExamMapper;
-import com.ycl.jxkg.mapper.ExamSubmitTempMapper;
-import com.ycl.jxkg.mapper.QuestionMapper;
+import com.ycl.jxkg.mapper.*;
 import com.ycl.jxkg.service.ExamService;
 import com.ycl.jxkg.base.Result;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ycl.jxkg.domain.form.ExamForm;
-import com.ycl.jxkg.domain.vo.ExamVO;
 import com.ycl.jxkg.domain.query.ExamQuery;
 import org.springframework.stereotype.Service;
 import lombok.RequiredArgsConstructor;
 import com.ycl.jxkg.utils.PageUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.util.Assert;
+import org.springframework.util.StringUtils;
 
 import java.util.Date;
 import java.util.List;
@@ -47,6 +42,8 @@
     private final WebContext webContext;
     private final QuestionMapper questionMapper;
     private final ExamSubmitTempMapper examSubmitTempMapper;
+    private final ClassesUserMapper classesUserMapper;
+    private final ExamPaperMapper examPaperMapper;
 
     /**
      * 娣诲姞
@@ -114,6 +111,16 @@
     public Result page(ExamQuery query) {
         IPage<ExamVO> page = PageUtil.getPage(query, ExamVO.class);
         baseMapper.getPage(page, query);
+        page.getRecords().stream().forEach(item -> {
+            if (! StringUtils.hasText(item.getClassName())) {
+                item.setClassName("鐝骇涓嶅瓨鍦ㄦ垨琚垹闄�");
+                item.setClassesId(null);
+            }
+            if (! StringUtils.hasText(item.getExamPaperName())) {
+                item.setExamPaperName("璇曞嵎涓嶅瓨鍦ㄦ垨琚垹闄�");
+                item.setExamPaperId(null);
+            }
+        });
         return Result.ok().data(page.getRecords()).total(page.getTotal());
     }
 
@@ -215,4 +222,45 @@
             examSubmitTempMapper.insert(examSubmitTemp);
         }
     }
+
+    @Override
+    public Result getMarkPaperInfo(Integer id) {
+        Exam exam = baseMapper.selectById(id);
+        if (Objects.isNull(exam)) {
+            throw new RuntimeException("璇ヨ�冭瘯涓嶅瓨鍦�");
+        }
+        ExamPaper examPaper = examPaperMapper.selectById(exam.getExamPaperId());
+        if (Objects.isNull(examPaper)) {
+            throw new RuntimeException("鑰冭瘯璇曞嵎涓嶅瓨鍦�");
+        }
+        List<ExamSubmitTemp> examSubmitTempList = new LambdaQueryChainWrapper<>(examSubmitTempMapper)
+                .eq(ExamSubmitTemp::getExamId, id)
+                .list();
+        // 鍙傝�冧汉鏁�
+        Integer joinExamNum = examSubmitTempList.size();
+        // 鍙傝�冧絾鏈畬鎴愭彁浜や汉鏁�
+        Integer joinButNotFinishedNum = Math.toIntExact(examSubmitTempList.stream().filter(item -> ExamSubmitTempStatusEnum.TEMP.equals(item.getStatus())).count());
+
+        List<StudentExamInfoVO> studentExamList = classesUserMapper.getClassesUserList(exam.getClassesId());
+        // 搴旇�冧汉鏁�
+        Integer shouldUserNum = studentExamList.size();
+
+        studentExamList.stream().forEach(item -> {
+            if (StringUtils.hasText(item.getExamSubmit())) {
+                item.setQuestionList(JSON.parseArray(item.getExamSubmit(), DoQuestionVO.class));
+            }
+        });
+
+        MarkPaperVO markPaperVO = new MarkPaperVO();
+        markPaperVO.setExamName(exam.getExamName());
+        markPaperVO.setExamId(exam.getId());
+        markPaperVO.setJoinButNotFinishNum(joinButNotFinishedNum);
+        markPaperVO.setShouldJoinNum(shouldUserNum);
+        markPaperVO.setStudentExamInfoVOList(studentExamList);
+        markPaperVO.setMissJoinNum(shouldUserNum - joinExamNum);
+        markPaperVO.setJoinNum(joinExamNum);
+        markPaperVO.setExamPaperName(examPaper.getName());
+        markPaperVO.setSuggestTime(examPaper.getSuggestTime());
+        return Result.ok().data(markPaperVO);
+    }
 }

--
Gitblit v1.8.0