|
@@ -1,10 +1,13 @@
|
|
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.MarkTaskRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.MarkTaskRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.PaperRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.PaperRepo;
|
|
import cn.com.qmth.stmms.ms.marking.assembler.MarkTaskAssembler;
|
|
import cn.com.qmth.stmms.ms.marking.assembler.MarkTaskAssembler;
|
|
@@ -17,8 +20,12 @@ 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.*;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -35,9 +42,6 @@ public class MarkTaskApi {
|
|
@Autowired
|
|
@Autowired
|
|
private MarkingService markingService;
|
|
private MarkingService markingService;
|
|
|
|
|
|
- @Autowired
|
|
|
|
- private LevelRepo levelRepo;
|
|
|
|
-
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private MarkTaskAssembler markTaskAssembler;
|
|
private MarkTaskAssembler markTaskAssembler;
|
|
|
|
|
|
@@ -95,42 +99,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));
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
- 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));
|
|
|
|
|
|
+ ExamQuestion examQuestion = examQuestionRepo.findOne(questionId);
|
|
|
|
+ if (examQuestion.getTest() == TrialEnum.DEFAULT.getId()) {
|
|
|
|
+ Paper paper = paperRepo.findTopByLevelAndIsSampleAndIsMissingAndSubjectAndTestAndAreaCodeOrderByUpdatedOnDesc(level, isSample, false, examQuestion.getSubject(), TrialEnum.START_FORMAL.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));
|
|
}
|
|
}
|
|
- 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);
|
|
|
|
|
|
+ }
|
|
|
|
+// 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 -> {
|