|
@@ -1,12 +1,8 @@
|
|
package cn.com.qmth.stmms.ms.marking.api;
|
|
package cn.com.qmth.stmms.ms.marking.api;
|
|
|
|
|
|
import cn.com.qmth.stmms.ms.commons.web.PageableDTO;
|
|
import cn.com.qmth.stmms.ms.commons.web.PageableDTO;
|
|
-import cn.com.qmth.stmms.ms.core.domain.ExamQuestion;
|
|
|
|
import cn.com.qmth.stmms.ms.core.domain.MarkStage;
|
|
import cn.com.qmth.stmms.ms.core.domain.MarkStage;
|
|
-import cn.com.qmth.stmms.ms.core.domain.Paper;
|
|
|
|
-import cn.com.qmth.stmms.ms.core.domain.enums.TrialEnum;
|
|
|
|
import cn.com.qmth.stmms.ms.core.domain.task.MarkTask;
|
|
import cn.com.qmth.stmms.ms.core.domain.task.MarkTask;
|
|
-import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
|
|
|
|
import cn.com.qmth.stmms.ms.core.repository.ExamQuestionRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.ExamQuestionRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.LevelRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.LevelRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.MarkTaskRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.MarkTaskRepo;
|
|
@@ -21,12 +17,8 @@ import org.springframework.data.jpa.domain.Specification;
|
|
import org.springframework.http.HttpStatus;
|
|
import org.springframework.http.HttpStatus;
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
-import org.springframework.web.context.request.RequestContextHolder;
|
|
|
|
-import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
|
|
|
|
|
import javax.persistence.criteria.Predicate;
|
|
import javax.persistence.criteria.Predicate;
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
|
-import javax.servlet.http.HttpSession;
|
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -103,22 +95,42 @@ public class MarkTaskApi {
|
|
Page<MarkTask> markTasks = markTaskRepo.findAll(specification, pageable);
|
|
Page<MarkTask> markTasks = markTaskRepo.findAll(specification, pageable);
|
|
if (Objects.isNull(markTasks) || markTasks.getContent().size() == 0) {
|
|
if (Objects.isNull(markTasks) || markTasks.getContent().size() == 0) {
|
|
if (Objects.nonNull(isSample) && isSample) {
|
|
if (Objects.nonNull(isSample) && isSample) {
|
|
- ExamQuestion examQuestion = examQuestionRepo.findOne(questionId);
|
|
|
|
- if (examQuestion.getTest() == TrialEnum.DEFAULT.getId()) {
|
|
|
|
- Paper paper = paperRepo.findTopByLevelAndIsSampleAndIsMissingAndSubjectAndTestAndAreaCodeOrderByUpdatedOnDesc(level, isSample, false, examQuestion.getSubject(), TrialEnum.START_TRIAL.getId(), examQuestion.getAreaCode());
|
|
|
|
- if (Objects.nonNull(paper)) {
|
|
|
|
- ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
|
|
|
- HttpServletRequest request = attributes.getRequest();
|
|
|
|
- HttpSession session = request.getSession();
|
|
|
|
- String token = (String) session.getAttribute("token");
|
|
|
|
- if (Objects.isNull(token)) {
|
|
|
|
- throw new Exception("请先登录");
|
|
|
|
- }
|
|
|
|
- MarkUser markUser = (MarkUser) session.getAttribute("markUser");
|
|
|
|
- MarkTask markTask = new MarkTask(markUser, paper, stage, 1L);
|
|
|
|
- markTaskDTOs.add(markTaskAssembler.toDTO(markTask));
|
|
|
|
|
|
+// ExamQuestion examQuestion = examQuestionRepo.findOne(questionId);
|
|
|
|
+// if (examQuestion.getTest() == TrialEnum.DEFAULT.getId()) {
|
|
|
|
+// Paper paper = paperRepo.findTopByLevelAndIsSampleAndIsMissingAndSubjectAndTestAndAreaCodeOrderByUpdatedOnDesc(level, isSample, false, examQuestion.getSubject(), TrialEnum.START_TRIAL.getId(), examQuestion.getAreaCode());
|
|
|
|
+// if (Objects.nonNull(paper)) {
|
|
|
|
+// ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
|
|
|
+// HttpServletRequest request = attributes.getRequest();
|
|
|
|
+// HttpSession session = request.getSession();
|
|
|
|
+// String token = (String) session.getAttribute("token");
|
|
|
|
+// if (Objects.isNull(token)) {
|
|
|
|
+// throw new Exception("请先登录");
|
|
|
|
+// }
|
|
|
|
+// MarkUser markUser = (MarkUser) session.getAttribute("markUser");
|
|
|
|
+// MarkTask markTask = new MarkTask(markUser, paper, stage, 1L);
|
|
|
|
+// markTaskDTOs.add(markTaskAssembler.toDTO(markTask));
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+ specification = (root, query, builder) -> {
|
|
|
|
+ List<Predicate> predicates = new ArrayList<>();
|
|
|
|
+ predicates.add(builder.equal(root.get("questionId"), questionId));
|
|
|
|
+ predicates.add(builder.equal(root.get("markerId"), markerId));
|
|
|
|
+ predicates.add(builder.equal(root.get("stage"), stage));
|
|
|
|
+ if (level == null) {
|
|
|
|
+ predicates.add(builder.isNull(root.get("paper").get("level")));
|
|
|
|
+ } else if (stage == MarkStage.LEVEL) {
|
|
|
|
+ predicates.add(builder.equal(root.get("paper").get("level"), level));
|
|
|
|
+ } else if (stage == MarkStage.SCORE) {
|
|
|
|
+ predicates.add(builder.isNotNull(root.get("paper").get("level")));
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
+ if (isSample != null) {
|
|
|
|
+ predicates.add(builder.equal(root.get("paper").get("isSample"), isSample));
|
|
|
|
+ }
|
|
|
|
+ predicates.add(builder.equal(root.get("paper").get("isMissing"), false));
|
|
|
|
+ predicates.add(builder.equal(root.get("paper").get("active"), true));
|
|
|
|
+ return builder.and(predicates.toArray(new Predicate[predicates.size()]));
|
|
|
|
+ };
|
|
|
|
+ markTasks = markTaskRepo.findAll(specification, pageable);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
markTasks.getContent().forEach(m -> {
|
|
markTasks.getContent().forEach(m -> {
|