|
@@ -1,8 +1,10 @@
|
|
|
package com.qmth.teachcloud.mark.service.impl;
|
|
|
|
|
|
+import com.qmth.teachcloud.common.entity.SysUser;
|
|
|
import com.qmth.teachcloud.common.enums.mark.MarkArbitrateStatus;
|
|
|
import com.qmth.teachcloud.common.enums.mark.MarkPaperStatus;
|
|
|
import com.qmth.teachcloud.common.enums.mark.MarkProblemStatus;
|
|
|
+import com.qmth.teachcloud.common.enums.mark.MarkProblemType;
|
|
|
import com.qmth.teachcloud.common.enums.mark.SubjectiveStatus;
|
|
|
import com.qmth.teachcloud.mark.dto.mark.ScoreItem;
|
|
|
import com.qmth.teachcloud.mark.dto.mark.mark.MarkGroupDto;
|
|
@@ -10,6 +12,7 @@ import com.qmth.teachcloud.mark.dto.mark.mark.MarkSettingDto;
|
|
|
import com.qmth.teachcloud.mark.dto.mark.mark.MarkStatusDto;
|
|
|
import com.qmth.teachcloud.mark.dto.mark.mark.MarkTaskDto;
|
|
|
import com.qmth.teachcloud.mark.entity.*;
|
|
|
+import com.qmth.teachcloud.mark.enums.ExamType;
|
|
|
import com.qmth.teachcloud.mark.enums.LockType;
|
|
|
import com.qmth.teachcloud.mark.enums.MarkTaskStatus;
|
|
|
import com.qmth.teachcloud.mark.enums.ScorePolicy;
|
|
@@ -620,21 +623,65 @@ public class MarkServiceImpl implements MarkService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public MarkSettingDto getSetting(Long userId, Long examId, String paperNumber, Integer groupNumber) {
|
|
|
- // TODO Auto-generated method stub
|
|
|
- return null;
|
|
|
+ public MarkSettingDto getSetting(SysUser user, Long examId, String paperNumber, Integer groupNumber) {
|
|
|
+ MarkUserGroup markUserGroup = markUserGroupService.getByExamIdAndPaperNumberAndGroupNumberAndUserId(examId, paperNumber, groupNumber, user.getId());
|
|
|
+ MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(examId, paperNumber);
|
|
|
+
|
|
|
+ MarkSettingDto dto = new MarkSettingDto();
|
|
|
+ dto.setExamType(ExamType.SCAN_IMAGE);
|
|
|
+ dto.setMode(markPaper.getMarkMode());
|
|
|
+ dto.setSheetView(markPaper.getSheetView());
|
|
|
+ dto.setSheetConfig(markPaper.getSheetConfig());
|
|
|
+ dto.setEnableAllZore(false);
|
|
|
+ dto.setFileServer(null);
|
|
|
+ dto.setUserName(user.getRealName());
|
|
|
+ dto.getSubject().setAnswerUrl(markPaper.getAnswerFilePath());
|
|
|
+ dto.getSubject().setPaperUrl(markPaper.getPaperFilePath());
|
|
|
+ dto.getSubject().setCode(markPaper.getPaperNumber());
|
|
|
+ dto.getSubject().setName(markPaper.getCourseName());
|
|
|
+ dto.setForceSpecialTag(true);
|
|
|
+ dto.setUiSetting(user.getUiSetting());
|
|
|
+ dto.setStatusValue(markPaper.getStatus());
|
|
|
+ dto.setProblemTypes(MarkProblemType.getOptionList());
|
|
|
+ dto.setGroupNumber(groupNumber);
|
|
|
+ dto.setTopCount(markUserGroup.getTopCount());
|
|
|
+ dto.setSplitConfig(new Double[0]);
|
|
|
+ dto.setPrefetchCount(3);
|
|
|
+ dto.setStartTime(markPaper.getMarkStartTime());
|
|
|
+ dto.setEndTime(markPaper.getMarkEndTime());
|
|
|
+ dto.setSelective(false);
|
|
|
+ dto.setAutoScroll(markPaper.getAutoScroll());
|
|
|
+ dto.setEnableSplit(false);
|
|
|
+ return dto;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public MarkStatusDto getStatus(Long userId, Long examId, String paperNumber, Integer groupNumber) {
|
|
|
- // TODO Auto-generated method stub
|
|
|
- return null;
|
|
|
+ MarkUserGroup markUserGroup = markUserGroupService.getByExamIdAndPaperNumberAndGroupNumberAndUserId(examId, paperNumber, groupNumber, userId);
|
|
|
+ MarkStatusDto dto = new MarkStatusDto();
|
|
|
+ dto.setArbitrateCount(markTaskService.countByExamIdAndPaperNumberAndGroupNumberAndUserIdAndStatusIn(examId, paperNumber, groupNumber, userId,MarkTaskStatus.WAIT_ARBITRATE));
|
|
|
+ dto.setMarkedCount(markTaskService.countByExamIdAndPaperNumberAndGroupNumberAndStatusIn(examId, paperNumber, markUserGroup.getGroupNumber(), Arrays.asList(MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED)));
|
|
|
+ dto.setPersonCount(markTaskService.countByExamIdAndPaperNumberAndGroupNumberAndUserIdAndStatusIn(examId, paperNumber, groupNumber, userId,MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED));
|
|
|
+ dto.setProblemCount(markTaskService.countByExamIdAndPaperNumberAndGroupNumberAndUserIdAndStatusIn(examId, paperNumber, groupNumber, userId,MarkTaskStatus.PROBLEM));
|
|
|
+ dto.setTotalCount(markTaskService.countByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, groupNumber));
|
|
|
+ return dto;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public List<MarkGroupDto> getGroup(Long userId, Long examId, String paperNumber) {
|
|
|
- // TODO Auto-generated method stub
|
|
|
- return null;
|
|
|
+ List<MarkUserGroup> markUserGroups = markUserGroupService.listByExamIdAndPaperNumberAndUserId(examId, paperNumber, userId);
|
|
|
+ List<MarkGroupDto> list = new ArrayList<MarkGroupDto>();
|
|
|
+ for (MarkUserGroup markUserGroup : markUserGroups) {
|
|
|
+ MarkGroup markGroup = markGroupService.getByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, markUserGroup.getGroupNumber());
|
|
|
+ MarkGroupDto dto = new MarkGroupDto();
|
|
|
+ dto.setGroupNumber(markUserGroup.getGroupNumber());
|
|
|
+ dto.setTotalCount(markTaskService.countByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, markUserGroup.getGroupNumber()));
|
|
|
+ dto.setMarkedCount(markTaskService.countByExamIdAndPaperNumberAndGroupNumberAndStatusIn(examId, paperNumber, markUserGroup.getGroupNumber(), Arrays.asList(MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED)));
|
|
|
+ dto.setGroupQuestions(markGroup.getQuestionTitle());
|
|
|
+ dto.setTitle(markGroup.getTitle());
|
|
|
+ list.add(dto);
|
|
|
+ }
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
@Override
|