Browse Source

机考数据包提交

weiwenhai 7 năm trước cách đây
mục cha
commit
04c7078328

+ 10 - 6
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/BuildComputerTestJsonService.java

@@ -197,16 +197,20 @@ public class BuildComputerTestJsonService {
 					&&questionRowStrings[i].contains("id")
 					&&questionRowStrings[i].contains("name")){	//处理音频
 				questionRowStrings[i] = "<"+questionRowStrings[i]+">";
-				if(paperDetailUnit == null){
-					block.setPlayTime(null);
+				/*if(paperDetailUnit == null){
+					block.setPlayTime(-1);
 				}else {
 					List<AudioTimeConfig> audioTimeConfigs = audioTimeConfigRepo.findByPaperDetailUnit(paperDetailUnit);
 					if(audioTimeConfigs != null && audioTimeConfigs.size()>0){
-						block.setPlayTime(audioTimeConfigs.get(0).getPlayTime());
+						if(audioTimeConfigs.get(0).getPlayTime() == null){
+							block.setPlayTime(-1);
+						}else {
+							block.setPlayTime(audioTimeConfigs.get(0).getPlayTime());
+						}
 					}else {
-						block.setPlayTime(null);
+						block.setPlayTime(-1);
 					}
-				}
+				}*/
 				block.setType("audio");
 				block.setValue(CommonUtils.getAttrValue(questionRowStrings[i],"id"));
 				blocks.add(block);
@@ -225,7 +229,7 @@ public class BuildComputerTestJsonService {
     	}
 		return blocks;
 	}
-
+    
 	/**
      * 获取图片里面的路径,长度,宽度
      * @param s

+ 27 - 6
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/ExportPaperAbstractService.java

@@ -1036,10 +1036,10 @@ public abstract class ExportPaperAbstractService {
 		for(ComputerTestPaperDetail detail:details){
 			List<ComputerTestQuestion> questions = detail.getQuestions();
 			for(ComputerTestQuestion computerTestQuestion:questions){
-				getBodyAndOptionAudioFile(computerTestQuestion,computerTestQuestion.getBody(),jsonDirectoryPath,computerTestPaper,examId);
+				getBodyAndOptionAudioFile(computerTestQuestion,computerTestQuestion.getBody(),jsonDirectoryPath,computerTestPaper,examId,detail,null,1);
 				List<ComputerTestOption> options = computerTestQuestion.getOptions();
 				for(ComputerTestOption option:options){
-					getBodyAndOptionAudioFile(computerTestQuestion,option.getBody(),jsonDirectoryPath,computerTestPaper,examId);
+					getBodyAndOptionAudioFile(computerTestQuestion,option.getBody(),jsonDirectoryPath,computerTestPaper,examId,detail,option,2);
 				}
 				//子题音频处理
 				//List<ComputerTestQuestion> subQuestions = question.getSubQuestions();
@@ -1051,8 +1051,13 @@ public abstract class ExportPaperAbstractService {
 										   Sections bodySections,
 										   String jsonDirectoryPath,
 										   ComputerTestPaper computerTestPaper,
-										   String examId){
+										   String examId,
+										   ComputerTestPaperDetail detail,
+										   ComputerTestOption option,
+										   int number){
     	List<Section> sectionList = bodySections.getSections();
+    	int bNum = 1;
+    	int oNum = 1;
 		for(Section section:sectionList){
 			List<Block> blocks = section.getBlocks();
 			for(Block block:blocks){
@@ -1060,7 +1065,7 @@ public abstract class ExportPaperAbstractService {
 					computerTestPaper.setHasVideo(1);
 					PaperDetailUnit paperDetailUnit = paperDetailUnitRepo.findById(computerTestQuestion.getId());
 					QuestionAudio audio = questionAudioService.findAudioById(block.getValue());
-					block.setValue(block.getValue()+"."+audio.getFileSuffixes());
+					//block.setValue(block.getValue()+"."+audio.getFileSuffixes());
 					if(audio!=null){
 						AudioTimeConfig audioTime = new AudioTimeConfig();
 						audioTime.setCourseCode(computerTestPaper.getCourseCode());
@@ -1069,9 +1074,25 @@ public abstract class ExportPaperAbstractService {
 						audioTime.setPaperDetailUnit(paperDetailUnit);
 						AudioTimeConfig audioTimeConfig = audioTimeConfigRepo.findOne(Example.of(audioTime));
 						if(audioTimeConfig!=null){
-							block.setPlayTime(audioTimeConfig.getPlayTime());
+							if(audioTimeConfig.getPlayTime() == null){
+								block.setPlayTime(-1);
+							}else {
+								block.setPlayTime(audioTimeConfig.getPlayTime());
+							}
+						}else {
+							block.setPlayTime(-1);
+						}
+						String audioFileName = "";
+						if(number == 1){
+							audioFileName = audio.getId() + "_" + detail.getNumber() + "_" + computerTestQuestion.getNumber() 
+									+ "_1_" + bNum + "." + audio.getFileSuffixes();
+							bNum++;
+						}else {
+							audioFileName = audio.getId() + "_" + detail.getNumber() + "_" + computerTestQuestion.getNumber() 
+									+ "_2_" + option.getNumber() + oNum + "." + audio.getFileSuffixes();
+							oNum++;
 						}
-						FileDisposeUtil.saveUrlAs(downloadUrl+audio.getFileUrl(),jsonDirectoryPath+File.separator+block.getValue());
+						FileDisposeUtil.saveUrlAs(downloadUrl+audio.getFileUrl(),jsonDirectoryPath+File.separator+audioFileName);
 					}
 				}
 			}

+ 2 - 4
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExportPaperServiceImpl.java

@@ -186,8 +186,7 @@ public class ExportPaperServiceImpl implements ExportPaperService {
                                     if (block.getType().equals("audio")) {
                                         String id = block.getValue();
                                         QuestionAudio questionAudio = questionAudioRepo.findOne(id);
-                                        String audioFileName = computerTestPaper.getCourseCode() + "_" +
-                                                computerTestPaper.getName() + "_" + "_试卷_" +
+                                        String audioFileName = questionAudio.getId() + "_" +
                                                 detail.getNumber() + "_" + question.getNumber() +
                                                 "_1_" + bodyNum + "." + questionAudio.getFileSuffixes();
                                         UpYun upyun = new UpYun(bucketName, userName, password);
@@ -214,8 +213,7 @@ public class ExportPaperServiceImpl implements ExportPaperService {
                                                 if (block.getType().equals("audio")) {
                                                     String id = block.getValue();
                                                     QuestionAudio questionAudio = questionAudioRepo.findOne(id);
-                                                    String audioFileName = computerTestPaper.getCourseCode() + "_" +
-                                                            computerTestPaper.getName() + "_" + "_试卷_" +
+                                                    String audioFileName = questionAudio.getId() + "_" +
                                                             detail.getNumber() + "_" + question.getNumber() +
                                                             "_2_" + computerTestOption.getNumber() + "_" + optionNum + "." + questionAudio.getFileSuffixes();
                                                     UpYun upyun = new UpYun(bucketName, userName, password);

+ 3 - 5
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExtractConfigFileServiceImpl.java

@@ -148,7 +148,7 @@ public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
     private void uploadPaperFile(ExtractConfig extractConfig, String paperId, ExportStructure exportStructure, User user) throws Exception {
         ExportServiceManage esm = exportServiceManageRepo.findByOrgName(user.getRootOrgName());
         if (esm == null) {
-            esm = exportServiceManageRepo.findByOrgName("陕西师范大学");
+            esm = exportServiceManageRepo.findByOrgName("天津大学");
         }
         ExportPaperAbstractService exportPaperAbstractService = (ExportPaperAbstractService) SpringContextUtils.getBeanById(esm.getExportServiceName());
         exportPaperAbstractService.uploadFile(extractConfig, paperId, exportStructure, user);
@@ -278,10 +278,8 @@ public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
                         if (unit.getQuestion().getHasAudio() != null && unit.getQuestion().getHasAudio()) {
                             List<QuestionAudio> questionAudios = questionAudioService.findQuestionAudiosByQuestionId(unit.getQuestion().getId());
                             for (QuestionAudio audio : questionAudios) {
-                                String audioFileName = examFile.getCourseName()
-                                        + "_" + examFile.getCourseId()
-                                        + "_试卷_" + examFile.getGroupCode()
-                                        + "_" + exportPaperAbstractService.getAudioFileName(audio, unit, paperDetailExp);
+                                String audioFileName = audio.getId()+
+                                         "_" + exportPaperAbstractService.getAudioFileName(audio, unit, paperDetailExp);
                                 UpYun upyun = new UpYun(bucketName, userName, password);
                                 File file = new File(downloadDir + File.separator + audioFileName);
                                 upyun.readFile(audio.getFileUrl(), file);