|
@@ -25,6 +25,7 @@ import com.qmth.cqb.paper.model.Paper;
|
|
import com.qmth.cqb.paper.model.PaperDetailUnit;
|
|
import com.qmth.cqb.paper.model.PaperDetailUnit;
|
|
import com.qmth.cqb.paper.service.AudioTimeConfigService;
|
|
import com.qmth.cqb.paper.service.AudioTimeConfigService;
|
|
import com.qmth.cqb.paper.service.ExtractConfigService;
|
|
import com.qmth.cqb.paper.service.ExtractConfigService;
|
|
|
|
+import com.qmth.cqb.question.model.Question;
|
|
import com.qmth.cqb.question.service.QuesService;
|
|
import com.qmth.cqb.question.service.QuesService;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -80,16 +81,14 @@ public class AudioTimeConfigServiceImpl implements AudioTimeConfigService{
|
|
//根据试卷查询所有小题
|
|
//根据试卷查询所有小题
|
|
List<PaperDetailUnit> list = paperDetailUnitRepo.findByPaperOrderByNumber(paper);
|
|
List<PaperDetailUnit> list = paperDetailUnitRepo.findByPaperOrderByNumber(paper);
|
|
for(PaperDetailUnit paperDetailUnit:list){
|
|
for(PaperDetailUnit paperDetailUnit:list){
|
|
- if(paperDetailUnit.getQuestion().getHasAudio() != null && paperDetailUnit.getQuestion().getHasAudio() == true){
|
|
|
|
- AudioTimeConfig audioTimeCon = new AudioTimeConfig();
|
|
|
|
- audioTimeCon.setExamId(audioTimeConfig.getExamId());
|
|
|
|
- audioTimeCon.setExamName(audioTimeConfig.getExamName());
|
|
|
|
- audioTimeCon.setGroupCode(audioTimeConfig.getGroupCode());
|
|
|
|
- audioTimeCon.setPaper(paper);
|
|
|
|
- audioTimeCon.setCourseCode(audioTimeConfig.getCourseCode());
|
|
|
|
|
|
+ if(paperDetailUnit.getQuestion().getHasAudio() != null
|
|
|
|
+ && paperDetailUnit.getQuestion().getHasAudio()){
|
|
quesService.formatQues(paperDetailUnit.getQuestion());
|
|
quesService.formatQues(paperDetailUnit.getQuestion());
|
|
- audioTimeCon.setPaperDetailUnit(paperDetailUnit);
|
|
|
|
- audioTimeConfigList.add(audioTimeCon);
|
|
|
|
|
|
+ audioTimeConfigList.add(new AudioTimeConfig(audioTimeConfig.getExamId(),
|
|
|
|
+ audioTimeConfig.getExamName(),
|
|
|
|
+ audioTimeConfig.getGroupCode(),
|
|
|
|
+ audioTimeConfig.getCourseCode(),
|
|
|
|
+ paperDetailUnit));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -105,46 +104,57 @@ public class AudioTimeConfigServiceImpl implements AudioTimeConfigService{
|
|
@Override
|
|
@Override
|
|
public List<AudioTimeConfig> findAudioTimeConfigByExamId(String examId,String courseCode) {
|
|
public List<AudioTimeConfig> findAudioTimeConfigByExamId(String examId,String courseCode) {
|
|
List<AudioTimeConfig> audioTimeConfigList = audioTimeConfigRepo.findByExamIdAndCourseCodeOrderByGroupCode(examId,courseCode);
|
|
List<AudioTimeConfig> audioTimeConfigList = audioTimeConfigRepo.findByExamIdAndCourseCodeOrderByGroupCode(examId,courseCode);
|
|
|
|
+ //添加后面成为音频题的设置
|
|
|
|
+ addAudioTimeConfig(examId,courseCode,audioTimeConfigList);
|
|
|
|
+ //删除已经不是音频题的设置
|
|
|
|
+ deleteAudioTimeConfig(audioTimeConfigList);
|
|
|
|
+ return audioTimeConfigList;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void addAudioTimeConfig(String examId,String courseCode,List<AudioTimeConfig> audioTimeConfigList){
|
|
List<String> questionIds = new ArrayList<String>();
|
|
List<String> questionIds = new ArrayList<String>();
|
|
for(AudioTimeConfig audioTimeConfig:audioTimeConfigList){
|
|
for(AudioTimeConfig audioTimeConfig:audioTimeConfigList){
|
|
questionIds.add(audioTimeConfig.getQuestionId());
|
|
questionIds.add(audioTimeConfig.getQuestionId());
|
|
}
|
|
}
|
|
- ExtractConfig condition = new ExtractConfig();
|
|
|
|
- condition.setExamId(Long.valueOf(examId));
|
|
|
|
- condition.setCourseCode(courseCode);
|
|
|
|
- ExtractConfig extractConfig = extractConfigService.findConfig(condition);
|
|
|
|
-
|
|
|
|
|
|
+ //添加后面成为音频题的设置
|
|
|
|
+ ExtractConfig extractConfig = extractConfigService.findConfig(new ExtractConfig(Long.valueOf(examId),courseCode));
|
|
Map<String,String> paperIdMap = extractConfig.getFinishedPaperIdMap();
|
|
Map<String,String> paperIdMap = extractConfig.getFinishedPaperIdMap();
|
|
- Set<Entry<String,String>> entrySet = paperIdMap.entrySet();
|
|
|
|
- Iterator<Entry<String,String>> iterator = entrySet.iterator();
|
|
|
|
- while(iterator.hasNext()){
|
|
|
|
- Entry<String,String> entry = iterator.next();
|
|
|
|
- String groupCode = entry.getKey();
|
|
|
|
- String paperId = entry.getValue();
|
|
|
|
- Paper paper = paperRepo.findOne(paperId);
|
|
|
|
- //根据试卷查询所有小题
|
|
|
|
- List<PaperDetailUnit> list = paperDetailUnitRepo.findByPaperOrderByNumber(paper);
|
|
|
|
- for(PaperDetailUnit paperDetailUnit:list){
|
|
|
|
- if(paperDetailUnit.getQuestion().getHasAudio() != null && paperDetailUnit.getQuestion().getHasAudio() == true){
|
|
|
|
- if(questionIds.contains(paperDetailUnit.getQuestion().getId())){
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- AudioTimeConfig audioTimeConfig = new AudioTimeConfig();
|
|
|
|
- audioTimeConfig.setExamId(examId);
|
|
|
|
- audioTimeConfig.setExamName(extractConfig.getExamName());
|
|
|
|
- audioTimeConfig.setGroupCode(groupCode);
|
|
|
|
- audioTimeConfig.setPaper(paper);
|
|
|
|
- audioTimeConfig.setCourseCode(courseCode);
|
|
|
|
- audioTimeConfig.setPaperDetailUnit(paperDetailUnit);
|
|
|
|
- audioTimeConfigList.add(audioTimeConfig);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ if(paperIdMap!=null&&paperIdMap.size()>0){
|
|
|
|
+ Set<Entry<String,String>> entrySet = paperIdMap.entrySet();
|
|
|
|
+ Iterator<Entry<String,String>> iterator = entrySet.iterator();
|
|
|
|
+ while(iterator.hasNext()){
|
|
|
|
+ Entry<String,String> entry = iterator.next();
|
|
|
|
+ Paper paper = paperRepo.findOne(entry.getValue());
|
|
|
|
+ //根据试卷查询所有小题
|
|
|
|
+ List<PaperDetailUnit> list = paperDetailUnitRepo.findByPaperOrderByNumber(paper);
|
|
|
|
+ for(PaperDetailUnit paperDetailUnit:list){
|
|
|
|
+ if(paperDetailUnit.getQuestion().getHasAudio() != null
|
|
|
|
+ && paperDetailUnit.getQuestion().getHasAudio()){
|
|
|
|
+ if(questionIds.contains(paperDetailUnit.getQuestion().getId())){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ audioTimeConfigList.add(new AudioTimeConfig(examId,extractConfig.getExamName(),entry.getKey(),courseCode,paperDetailUnit));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 将题目已经不是音频题的对象从集合中删除,并将对象从数据库删除
|
|
|
|
+ * @param audioTimeConfigList
|
|
|
|
+ */
|
|
|
|
+ private void deleteAudioTimeConfig(List<AudioTimeConfig> audioTimeConfigList){
|
|
|
|
+ List<AudioTimeConfig> configs = new ArrayList<AudioTimeConfig>();
|
|
for(AudioTimeConfig audioTimeConfig : audioTimeConfigList){
|
|
for(AudioTimeConfig audioTimeConfig : audioTimeConfigList){
|
|
|
|
+ Question question = audioTimeConfig.getPaperDetailUnit().getQuestion();
|
|
|
|
+ if(question.getHasAudio()==null||!question.getHasAudio()){
|
|
|
|
+ configs.add(audioTimeConfig);
|
|
|
|
+ }
|
|
quesService.formatQues(audioTimeConfig.getPaperDetailUnit().getQuestion());
|
|
quesService.formatQues(audioTimeConfig.getPaperDetailUnit().getQuestion());
|
|
}
|
|
}
|
|
- return audioTimeConfigList;
|
|
|
|
|
|
+ audioTimeConfigList.removeAll(configs);
|
|
|
|
+ audioTimeConfigRepo.delete(configs);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|