|
@@ -5,11 +5,13 @@ import com.yaoxiang.diagnosis.dao.PaperRepo;
|
|
import com.yaoxiang.diagnosis.dao.QuestionRepo;
|
|
import com.yaoxiang.diagnosis.dao.QuestionRepo;
|
|
import com.yaoxiang.diagnosis.dao.RemarkTemplateRepo;
|
|
import com.yaoxiang.diagnosis.dao.RemarkTemplateRepo;
|
|
import com.yaoxiang.diagnosis.entity.*;
|
|
import com.yaoxiang.diagnosis.entity.*;
|
|
|
|
+import com.yaoxiang.diagnosis.model.AuthUser;
|
|
import com.yaoxiang.diagnosis.util.CommonUtil;
|
|
import com.yaoxiang.diagnosis.util.CommonUtil;
|
|
import com.yaoxiang.diagnosis.util.ObjectUtil;
|
|
import com.yaoxiang.diagnosis.util.ObjectUtil;
|
|
import com.yaoxiang.diagnosis.config.Constants;
|
|
import com.yaoxiang.diagnosis.config.Constants;
|
|
import com.yaoxiang.diagnosis.model.PaperVo;
|
|
import com.yaoxiang.diagnosis.model.PaperVo;
|
|
import com.yaoxiang.diagnosis.model.Result;
|
|
import com.yaoxiang.diagnosis.model.Result;
|
|
|
|
+import com.yaoxiang.diagnosis.util.SecurityUtil;
|
|
import com.yaoxiang.diagnosis.word.WordService;
|
|
import com.yaoxiang.diagnosis.word.WordService;
|
|
import com.yaoxiang.diagnosis.word.WordUtil;
|
|
import com.yaoxiang.diagnosis.word.WordUtil;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
@@ -66,8 +68,12 @@ public class PaperService {
|
|
private static final Logger logger = LoggerFactory.getLogger(PaperService.class);
|
|
private static final Logger logger = LoggerFactory.getLogger(PaperService.class);
|
|
|
|
|
|
public List<Paper> listPapers(Long subjectId, Integer status) {
|
|
public List<Paper> listPapers(Long subjectId, Integer status) {
|
|
|
|
+ AuthUser user = SecurityUtil.getCurrentUser();
|
|
Sort sort = new Sort(Sort.Direction.DESC, "updatetime");
|
|
Sort sort = new Sort(Sort.Direction.DESC, "updatetime");
|
|
List<Paper> papers = paperRepo.findAll(sort);
|
|
List<Paper> papers = paperRepo.findAll(sort);
|
|
|
|
+ if (Constants.USER_TYPE_STUDENT.equals(user.getUser().getUserType())) {
|
|
|
|
+ papers = papers.stream().filter(p -> p.getGrade().contains(user.getUser().getGrade())).collect(Collectors.toList());
|
|
|
|
+ }
|
|
if (subjectId != null) {
|
|
if (subjectId != null) {
|
|
papers = papers.stream().filter(p -> p.getSubjectId() == subjectId.longValue())
|
|
papers = papers.stream().filter(p -> p.getSubjectId() == subjectId.longValue())
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
@@ -90,6 +96,8 @@ public class PaperService {
|
|
}
|
|
}
|
|
|
|
|
|
public Paper getOnePaper(Long id) {
|
|
public Paper getOnePaper(Long id) {
|
|
|
|
+ AuthUser user = SecurityUtil.getCurrentUser();
|
|
|
|
+ boolean student = Constants.USER_TYPE_STUDENT.equals(user.getUser().getUserType());
|
|
Paper paper = paperRepo.getOne(id);
|
|
Paper paper = paperRepo.getOne(id);
|
|
if (paper == null || paper.getStatus() == Constants.NOTREADY) {
|
|
if (paper == null || paper.getStatus() == Constants.NOTREADY) {
|
|
return null;
|
|
return null;
|
|
@@ -97,19 +105,6 @@ public class PaperService {
|
|
List<Question> questions = questionRepo.findByPidOrderBySectionAscNumberAsc(id);
|
|
List<Question> questions = questionRepo.findByPidOrderBySectionAscNumberAsc(id);
|
|
List<Section> sections = sectionService.findByPid(id);
|
|
List<Section> sections = sectionService.findByPid(id);
|
|
paper.setSections(sections);
|
|
paper.setSections(sections);
|
|
-// questions.sort((q1, q2) -> {
|
|
|
|
-// if (q1.getSection() < q2.getSection()) {
|
|
|
|
-// return -1;
|
|
|
|
-// } else if (q1.getSection() > q2.getSection()) {
|
|
|
|
-// return 1;
|
|
|
|
-// }
|
|
|
|
-// if (q1.getNumber() < q2.getNumber()) {
|
|
|
|
-// return -1;
|
|
|
|
-// } else if (q1.getNumber() > q2.getNumber()) {
|
|
|
|
-// return 1;
|
|
|
|
-// }
|
|
|
|
-// return 0;
|
|
|
|
-// });
|
|
|
|
paper.setQuestions(questions);
|
|
paper.setQuestions(questions);
|
|
List<Long> qids = questions.stream().map(Question::getId).collect(Collectors.toList());
|
|
List<Long> qids = questions.stream().map(Question::getId).collect(Collectors.toList());
|
|
//一次查出该试卷所有的选项
|
|
//一次查出该试卷所有的选项
|
|
@@ -117,14 +112,13 @@ public class PaperService {
|
|
//然后根据Id进行分组
|
|
//然后根据Id进行分组
|
|
Map<Long, List<QuestionOption>> group = options.stream().collect(Collectors.groupingBy(QuestionOption::getQid));
|
|
Map<Long, List<QuestionOption>> group = options.stream().collect(Collectors.groupingBy(QuestionOption::getQid));
|
|
for (Question question : questions) {
|
|
for (Question question : questions) {
|
|
-// List<QuestionOption> options = optionRepo.findByQid(question.getId());
|
|
|
|
-// for (QuestionOption option : options) {
|
|
|
|
- //todo 判断是否考生,如是 将答案设为null
|
|
|
|
-// option.setCorrect(null);
|
|
|
|
-// option.setUpdatetime(null);
|
|
|
|
-// option.setCreatetime(null);
|
|
|
|
-// }
|
|
|
|
- question.setOptions(group.get(question.getId()));
|
|
|
|
|
|
+ List<QuestionOption> optionList = group.get(question.getId());
|
|
|
|
+ //学生要去掉答案
|
|
|
|
+ if (student) {
|
|
|
|
+ question.setCorrectNum(0);
|
|
|
|
+ optionList.forEach(o -> o.setCorrect(null));
|
|
|
|
+ }
|
|
|
|
+ question.setOptions(optionList);
|
|
}
|
|
}
|
|
return paper;
|
|
return paper;
|
|
}
|
|
}
|