|
@@ -447,12 +447,14 @@ public class PaperService {
|
|
|
*/
|
|
|
public PaperExp getPaperDto(String id) {
|
|
|
Paper paper = paperRepo.findOne(id);
|
|
|
+ /*
|
|
|
List<PaperDetailUnit> paperDetailUnitsByPaper = paperDetailUnitRepo.findByPaperOrderByNumber(paper);
|
|
|
for(int i = 0;i<paperDetailUnitsByPaper.size();i++){
|
|
|
PaperDetailUnit unit = paperDetailUnitsByPaper.get(i);
|
|
|
unit.setNumber(i+1);
|
|
|
}
|
|
|
paperDetailUnitRepo.save(paperDetailUnitsByPaper);
|
|
|
+ */
|
|
|
// 创建paperDto
|
|
|
PaperExp paperExp = BeanCopierUtil.copyProperties(paper,PaperExp.class);
|
|
|
paperExp.setCourse(paper.getCourse());
|
|
@@ -598,6 +600,7 @@ public class PaperService {
|
|
|
if (unit.getScore() != null) {
|
|
|
totalScore += unit.getScore();
|
|
|
}
|
|
|
+ //重新设置序号
|
|
|
unit.setNumber(i+1);
|
|
|
}
|
|
|
// 计算各大题总分
|
|
@@ -656,7 +659,6 @@ public class PaperService {
|
|
|
paperNames.add(pdu.getPaper().getName());
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
if (paperNames.size() == 0) {
|
|
@@ -665,9 +667,8 @@ public class PaperService {
|
|
|
quesBakRepo.save(BeanCopierUtil.copyProperties(ques, QuestionBak.class));
|
|
|
quesRepo.delete(ques);
|
|
|
for (Paper paper : papers) {
|
|
|
- formatPaper(paper, user);
|
|
|
+ formatPaper(paper,user);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
return paperNames;
|
|
|
}
|
|
@@ -693,8 +694,7 @@ public class PaperService {
|
|
|
pdu.setCreateTime(CommonUtils.getCurDateTime());
|
|
|
pdu.setPaperDetail(pd);
|
|
|
pdus.add(pdu);
|
|
|
- Collections.sort(pdus);
|
|
|
- pdu.setNumber(pdus.indexOf(pdu) + 1);
|
|
|
+ pdu.setNumber(pdus.size());
|
|
|
pdu.setScore(0d);
|
|
|
paperDetailUnitRepo.save(pdu);
|
|
|
formatPaper(paper, user);
|
|
@@ -754,21 +754,10 @@ public class PaperService {
|
|
|
List<PaperDetailUnit> pdus = paperDetailUnitRepo.findByPaperDetailOrderByNumber(pd);
|
|
|
List<PaperDetailUnit> saveUnits = new ArrayList<PaperDetailUnit>();
|
|
|
for (Question ques : questions) {
|
|
|
- PaperDetailUnit pdu = new PaperDetailUnit();
|
|
|
- pdu.setPaper(paper);
|
|
|
- pdu.setQuestionType(ques.getQuestionType());
|
|
|
- pdu.setQuestion(ques);
|
|
|
- pdu.setCreateTime(CommonUtils.getCurDateTime());
|
|
|
- pdu.setPaperDetail(pd);
|
|
|
- pdu.setScore(0d);
|
|
|
- pdus.add(pdu);
|
|
|
+ PaperDetailUnit pdu = new PaperDetailUnit(paper,pd,ques);
|
|
|
+ pdu.setNumber(pdus.size());//暂时设置为原集合的最大size
|
|
|
saveUnits.add(pdu);
|
|
|
}
|
|
|
- Collections.sort(pdus);
|
|
|
- for (int i = 0; i < saveUnits.size(); i++) {
|
|
|
- saveUnits.get(i).setNumber(pdus.indexOf(saveUnits.get(i)) + 1);
|
|
|
- }
|
|
|
-
|
|
|
paperDetailUnitRepo.save(saveUnits);
|
|
|
formatPaper(paper, user);
|
|
|
return paper;
|
|
@@ -900,11 +889,11 @@ public class PaperService {
|
|
|
String[] fileNames = fileName.split("\\.");
|
|
|
String fileType = fileNames[fileNames.length-1];
|
|
|
if(radioType.indexOf(fileType)<0){
|
|
|
- messageMap.put("errorMsg", fileName+"文件格式不正确,当前支持格式:"+radioType);
|
|
|
+ messageMap.put("errorMsg", fileName+",文件格式不正确,当前支持格式:"+radioType);
|
|
|
return messageMap;
|
|
|
}
|
|
|
- String pattern_01 = "\\d+_[1|2]_\\d{1,2}"; //题干正则
|
|
|
- String pattern_02 = "\\d+_[1|2]_[A-Z|a-z]_\\d{1,2}"; //选项正则
|
|
|
+ String pattern_01 = "\\d+_1_\\d{1,2}"; //题干正则
|
|
|
+ String pattern_02 = "\\d+_2_[A-Z|a-z]_\\d{1,2}"; //选项正则
|
|
|
if(!(Pattern.matches(pattern_01,fileNames[0])||
|
|
|
Pattern.matches(pattern_02,fileNames[0]))){
|
|
|
messageMap.put("errorMsg", fileName+"文件名格式不正确,请检查");
|
|
@@ -1004,19 +993,28 @@ public class PaperService {
|
|
|
throw new RuntimeException("音频文件大小超过5M,不能上传");
|
|
|
}
|
|
|
//根据试卷查询所有的小题,根据文件名匹配出当前小题ID
|
|
|
- String questionId = "";
|
|
|
+ Question question = null;
|
|
|
String numbers[] = file.getOriginalFilename().split("_");
|
|
|
List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperOrderByNumber(paper);
|
|
|
for(PaperDetailUnit paperDetailUnit:paperDetailUnits){
|
|
|
if(paperDetailUnit.getNumber().toString().equals(numbers[0])){
|
|
|
- questionId = paperDetailUnit.getQuestion().getId();
|
|
|
+ question = paperDetailUnit.getQuestion();
|
|
|
}
|
|
|
}
|
|
|
- uploadAudioFile(paperId,questionId,file,accessUser);
|
|
|
- appendAudioTag(file.getOriginalFilename(),questionId);
|
|
|
+ uploadAudioFile(paperId,question.getId(),file,accessUser);
|
|
|
+ appendAudioTag(file.getOriginalFilename(),question.getId());
|
|
|
+ //将所有关联了此试题的试卷(类型为IMPORT或者GENERATE)都设置为hasAudio=true
|
|
|
+ List<PaperType> paperTypes = new ArrayList<PaperType>();
|
|
|
+ paperTypes.add(PaperType.GENERATE);
|
|
|
+ paperTypes.add(PaperType.IMPORT);
|
|
|
+ List<PaperDetailUnit> paperDetailUnitsByQuestion = paperDetailUnitService.findByQuestionAndPaperTypes(question,paperTypes);
|
|
|
+ for(PaperDetailUnit unit:paperDetailUnitsByQuestion){
|
|
|
+ Paper paper2 = unit.getPaper();
|
|
|
+ paper2.setHasAudio(true);
|
|
|
+ paper2.setLastModifyName(accessUser.getName());
|
|
|
+ paperRepo.save(paper2);
|
|
|
+ }
|
|
|
}
|
|
|
- paper.setHasAudio(true);
|
|
|
- paperRepo.save(paper);
|
|
|
//删除服务器文件夹
|
|
|
String mp3DirectoryPath = TEMP_FILE_EXP + File.separator + paperId;
|
|
|
File mp3Directory = new File(mp3DirectoryPath);
|