|
@@ -10,6 +10,7 @@ import cn.com.qmth.stmms.ms.core.domain.*;
|
|
import cn.com.qmth.stmms.ms.core.domain.enums.TrialEnum;
|
|
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.domain.user.MarkUser;
|
|
|
|
+import cn.com.qmth.stmms.ms.core.domain.user.Role;
|
|
import cn.com.qmth.stmms.ms.core.repository.*;
|
|
import cn.com.qmth.stmms.ms.core.repository.*;
|
|
import cn.com.qmth.stmms.ms.core.vo.Subject;
|
|
import cn.com.qmth.stmms.ms.core.vo.Subject;
|
|
import cn.com.qmth.stmms.ms.marking.assembler.MarkTaskAssembler;
|
|
import cn.com.qmth.stmms.ms.marking.assembler.MarkTaskAssembler;
|
|
@@ -648,25 +649,44 @@ public class MarkTaskApi {
|
|
* @param stage 阶段
|
|
* @param stage 阶段
|
|
* @param markerId 评卷员ID
|
|
* @param markerId 评卷员ID
|
|
*/
|
|
*/
|
|
- @RequestMapping(value = "/list_mark_task", method = RequestMethod.GET)
|
|
|
|
|
|
+ @GetMapping("/list_mark_task")
|
|
public PageableDTO listMarkTask(@RequestParam Long workId,
|
|
public PageableDTO listMarkTask(@RequestParam Long workId,
|
|
@RequestParam Subject subject,
|
|
@RequestParam Subject subject,
|
|
@RequestParam MarkStage stage,
|
|
@RequestParam MarkStage stage,
|
|
@RequestParam Long markerId,
|
|
@RequestParam Long markerId,
|
|
Pageable pageable) {
|
|
Pageable pageable) {
|
|
- List<MarkTaskDTO> markTaskDTOs = new ArrayList<>();
|
|
|
|
- Specification<MarkTask> specification = (root, query, builder) -> {
|
|
|
|
- List<Predicate> predicates = new ArrayList<>();
|
|
|
|
- predicates.add(builder.equal(root.get("workId"), workId));
|
|
|
|
- predicates.add(builder.equal(root.get("subject"), subject));
|
|
|
|
- predicates.add(builder.equal(root.get("stage"), stage));
|
|
|
|
- predicates.add(builder.equal(root.get("markerId"), markerId));
|
|
|
|
- predicates.add(builder.equal(root.get("isMark"), true));
|
|
|
|
- return builder.and(predicates.toArray(new Predicate[0]));
|
|
|
|
- };
|
|
|
|
- Page<MarkTask> markTasks = markTaskRepo.findAll(specification, pageable);
|
|
|
|
|
|
+ MarkUser markUser = markUserRepo.findOne(markerId);
|
|
|
|
+ if(Role.MARKER.equals(markUser.getRole())) {
|
|
|
|
+ List<PaperDTO> paperDTOS = new ArrayList<>();
|
|
|
|
+ Specification<MarkTask> specification = (root, query, builder) -> {
|
|
|
|
+ List<Predicate> predicates = new ArrayList<>();
|
|
|
|
+ predicates.add(builder.equal(root.get("workId"), workId));
|
|
|
|
+ predicates.add(builder.equal(root.get("subject"), subject));
|
|
|
|
+ predicates.add(builder.equal(root.get("stage"), stage));
|
|
|
|
+ predicates.add(builder.equal(root.get("markerId"), markerId));
|
|
|
|
+ predicates.add(builder.equal(root.get("isMark"), true));
|
|
|
|
+ return builder.and(predicates.toArray(new Predicate[0]));
|
|
|
|
+ };
|
|
|
|
+ Page<MarkTask> markTasks = markTaskRepo.findAll(specification, pageable);
|
|
|
|
+
|
|
|
|
+ markTasks.getContent().forEach(m -> paperDTOS.add(paperAssembler.toDTO(m.getPaper())));
|
|
|
|
+ return new PageableDTO(paperDTOS, markTasks.getTotalElements(), markTasks.getTotalPages(), pageable.getPageNumber());
|
|
|
|
+ } else if(Role.MARK_LEADER.equals(markUser.getRole())){
|
|
|
|
+ List<PaperDTO> paperDTOS = new ArrayList<>();
|
|
|
|
+ Specification<Paper> specification = (root, query, builder) -> {
|
|
|
|
+ List<Predicate> predicates = new ArrayList<>();
|
|
|
|
+ predicates.add(builder.equal(root.get("workId"), workId));
|
|
|
|
+ predicates.add(builder.equal(root.get("subject"), subject));
|
|
|
|
+ predicates.add(builder.equal(root.get("isMark"), true));
|
|
|
|
+ return builder.and(predicates.toArray(new Predicate[0]));
|
|
|
|
+ };
|
|
|
|
+ Page<Paper> papers = paperRepo.findAll(specification, pageable);
|
|
|
|
+
|
|
|
|
+ papers.getContent().forEach(m -> paperDTOS.add(paperAssembler.toDTO(m)));
|
|
|
|
+ return new PageableDTO(paperDTOS, papers.getTotalElements(), papers.getTotalPages(), pageable.getPageNumber());
|
|
|
|
+ } else {
|
|
|
|
+ throw new RuntimeException("当前角色无法查询标记试卷");
|
|
|
|
+ }
|
|
|
|
|
|
- markTasks.getContent().forEach(m -> markTaskDTOs.add(markTaskAssembler.toDTO(m)));
|
|
|
|
- return new PageableDTO(markTaskDTOs, markTasks.getTotalElements(), markTasks.getTotalPages(), pageable.getPageNumber());
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|