|
@@ -347,33 +347,7 @@ public class LearnTeacherService {
|
|
|
List<LearnTestPaper> learnTestPaperList = learnTestPaperMapper.selectByBatchAndUniversityIds(req.getBuildType(), req.getBatchId(), req.getSubjectId(),req.getTeacherId(), null);
|
|
List<LearnTestPaper> learnTestPaperList = learnTestPaperMapper.selectByBatchAndUniversityIds(req.getBuildType(), req.getBatchId(), req.getSubjectId(),req.getTeacherId(), null);
|
|
|
LearnTestPaper learnTestPaper;
|
|
LearnTestPaper learnTestPaper;
|
|
|
if(CollectionUtils.isEmpty(learnTestPaperList)) {
|
|
if(CollectionUtils.isEmpty(learnTestPaperList)) {
|
|
|
- LearnPaper paper = new LearnPaper();
|
|
|
|
|
- paper.setSubjectId(req.getSubjectId());
|
|
|
|
|
- String paperName = StringUtils.isBlank(req.getName()) ? learnTest.getName() + "_" + dzSubject.getSubjectName() : req.getName();
|
|
|
|
|
- paper.setPaperName(paperName.length() > 254 ? paperName.substring(0, 254) : paperName);
|
|
|
|
|
- paper.setYear(Calendar.getInstance().get(Calendar.YEAR)); // TODO 年度
|
|
|
|
|
- paper.setPaperType(PaperType.Test.name());
|
|
|
|
|
- paper.setDirectKey("");
|
|
|
|
|
- paper.setStatus(PaperStatus.Valid.getVal());
|
|
|
|
|
- paper.setRelateId(req.getBatchId().longValue());
|
|
|
|
|
- paper.setFenshu(0);
|
|
|
|
|
- if("FullHand".equals(req.getBuildType())) {
|
|
|
|
|
- saveHandPaper(paper, req.getQuestions());
|
|
|
|
|
- } else {
|
|
|
|
|
- Pair<LearnPaper, List<LearnPaperQuestion>> paperResult = paperService.buildPaper(null, paper, req.getPaperDef());
|
|
|
|
|
- paperService.savePaper(paperResult.getKey(), paperResult.getValue());
|
|
|
|
|
- }
|
|
|
|
|
- LearnTestPaper testPaper = new LearnTestPaper();
|
|
|
|
|
- testPaper.setBuildType(req.getBuildType());
|
|
|
|
|
- testPaper.setBatchId(req.getBatchId());
|
|
|
|
|
- testPaper.setExamType(req.getExamType());
|
|
|
|
|
- testPaper.setSubjectId(req.getSubjectId());
|
|
|
|
|
- testPaper.setDirectKey("");
|
|
|
|
|
- testPaper.setPaperId(paper.getId());
|
|
|
|
|
- testPaper.setConditions(JSONObject.toJSONString(req));
|
|
|
|
|
- testPaper.setCreatorId(SecurityUtils.getUserId());
|
|
|
|
|
- testPaper.setTeacherId(req.getTeacherId());
|
|
|
|
|
- learnTestPaperMapper.insertLearnTestPaper(testPaper);
|
|
|
|
|
|
|
+ LearnTestPaper testPaper = getPaper( req, dzSubject, learnTest);
|
|
|
learnTestPaper = testPaper;
|
|
learnTestPaper = testPaper;
|
|
|
} else {
|
|
} else {
|
|
|
learnTestPaper = learnTestPaperList.get(0);
|
|
learnTestPaper = learnTestPaperList.get(0);
|
|
@@ -652,4 +626,82 @@ public class LearnTeacherService {
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ private LearnTestPaper getPaper(TestPaperVO.TestPaperBuildReq req,DzSubject dzSubject,LearnTest learnTest){
|
|
|
|
|
+ LearnPaper paper = new LearnPaper();
|
|
|
|
|
+ paper.setSubjectId(req.getSubjectId());
|
|
|
|
|
+ String paperName = StringUtils.isBlank(req.getName()) ? learnTest.getName() + "_" + (null==dzSubject?"":dzSubject.getSubjectName()) : req.getName();
|
|
|
|
|
+ paper.setPaperName(paperName.length() > 254 ? paperName.substring(0, 254) : paperName);
|
|
|
|
|
+ paper.setYear(Calendar.getInstance().get(Calendar.YEAR)); // TODO 年度
|
|
|
|
|
+ paper.setPaperType(PaperType.Test.name());
|
|
|
|
|
+ paper.setDirectKey("");
|
|
|
|
|
+ paper.setStatus(PaperStatus.Valid.getVal());
|
|
|
|
|
+ paper.setRelateId(req.getBatchId().longValue());
|
|
|
|
|
+ paper.setFenshu(0);
|
|
|
|
|
+ if("FullHand".equals(req.getBuildType())) {
|
|
|
|
|
+ saveHandPaper(paper, req.getQuestions());
|
|
|
|
|
+ } else {
|
|
|
|
|
+ Pair<LearnPaper, List<LearnPaperQuestion>> paperResult = paperService.buildPaper(null, paper, req.getPaperDef());
|
|
|
|
|
+ paperService.savePaper(paperResult.getKey(), paperResult.getValue());
|
|
|
|
|
+ }
|
|
|
|
|
+ LearnTestPaper testPaper = new LearnTestPaper();
|
|
|
|
|
+ testPaper.setBuildType(req.getBuildType());
|
|
|
|
|
+ testPaper.setBatchId(req.getBatchId());
|
|
|
|
|
+ testPaper.setExamType(req.getExamType());
|
|
|
|
|
+ testPaper.setSubjectId(req.getSubjectId());
|
|
|
|
|
+ testPaper.setDirectKey("");
|
|
|
|
|
+ testPaper.setPaperId(paper.getId());
|
|
|
|
|
+ testPaper.setConditions(JSONObject.toJSONString(req));
|
|
|
|
|
+ testPaper.setCreatorId(SecurityUtils.getUserId());
|
|
|
|
|
+ testPaper.setTeacherId(req.getTeacherId());
|
|
|
|
|
+ learnTestPaperMapper.insertLearnTestPaper(testPaper);
|
|
|
|
|
+ return testPaper;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 根据知识点自由组卷
|
|
|
|
|
+ * @param req
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ public String buildPapersFullByKnowledge(TestPaperVO.TestPaperBuildReq req) {
|
|
|
|
|
+
|
|
|
|
|
+ DzSubject dzSubject = dzSubjectService.selectDzSubjectBySubjectId(req.getSubjectId());
|
|
|
|
|
+ LearnTest learnTest = learnTestService.selectLearnTestByBatchId(req.getBatchId());
|
|
|
|
|
+ // 生成试卷
|
|
|
|
|
+ LearnTestPaper testPaper = getPaper( req, dzSubject, learnTest);
|
|
|
|
|
+
|
|
|
|
|
+ updateBuildInfo(req.getTeacherId(), new TestRecordCond(req.getBuildType(), req.getBatchId(), req.getClassId(), req.getSubjectId(), null, null));
|
|
|
|
|
+ return "";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 发送试卷给学生
|
|
|
|
|
+ * @param req
|
|
|
|
|
+ * @param paperId
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ public String sendPaper(TestPaperVO.TestPaperBuildReq req,Long paperId) {
|
|
|
|
|
+ List<LearnStudent> studentList = learnStudentMapper.selectLearnStudentsByMap(req.toMap());
|
|
|
|
|
+ if(CollectionUtils.isEmpty(studentList)) {
|
|
|
|
|
+ throw new ValidationException("无学生可发布");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+// LearnTestPaper learnTestPaper = learnTestPaperMapper.selectLearnTestPaperByPaperId(paperId);
|
|
|
|
|
+ for(LearnStudent student : studentList) {
|
|
|
|
|
+ LearnTestStudent lts = new LearnTestStudent();
|
|
|
|
|
+ lts.setBatchId(req.getBatchId());
|
|
|
|
|
+ lts.setStudentId(student.getStudentId());
|
|
|
|
|
+ lts.setBuildType(req.getBuildType());
|
|
|
|
|
+ lts.setSubjectId(req.getSubjectId());
|
|
|
|
|
+ lts.setDirectKey("");
|
|
|
|
|
+ lts.setPaperId(paperId);
|
|
|
|
|
+ lts.setCampusId(student.getCampusId());
|
|
|
|
|
+ lts.setSchoolId(student.getSchoolId());
|
|
|
|
|
+ lts.setClassId(student.getClassId());
|
|
|
|
|
+ lts.setStatus(ExamineeStatus.Sign.getVal());
|
|
|
|
|
+ lts.setCreatorId(SecurityUtils.getUserId());
|
|
|
|
|
+ learnTestStudentMapper.insertLearnTestStudent(lts);
|
|
|
|
|
+ }
|
|
|
|
|
+ return "";
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|