Browse Source

提交上传音频文件代码

chenken 8 năm trước cách đây
mục cha
commit
d1f38aaffe

+ 1 - 1
cqb-paper/src/main/java/com/qmth/cqb/paper/dao/PaperDetailUnitRepo.java

@@ -12,7 +12,7 @@ import java.util.List;
 
 
 public interface PaperDetailUnitRepo extends MongoRepository<PaperDetailUnit, String>,QueryByExampleExecutor<PaperDetailUnit> {
-    List<PaperDetailUnit> findByPaperDetail(PaperDetail paperDetail);
+    List<PaperDetailUnit> findByPaperDetailOrderByNumber(PaperDetail paperDetail);
     List<PaperDetailUnit> findByPaper(Paper paper);
     List<PaperDetailUnit> findByQuestion(Question question);
     List<PaperDetailUnit> findByQuestionIn(List<Question> questionList);

+ 14 - 2
cqb-paper/src/main/java/com/qmth/cqb/paper/model/Paper.java

@@ -57,6 +57,11 @@ public class Paper implements Serializable {
     private String orgId;
 
     private Map<String, String> params;// 导入试卷属性
+    
+    /**
+     * 是否包含音频题
+     */
+    private boolean hasAudioQuestion;
 
     public static long getSerialVersionUID() {
         return serialVersionUID;
@@ -209,6 +214,13 @@ public class Paper implements Serializable {
 	public void setLevel(CourseLevel level) {
 		this.level = level;
 	}
-    
-    
+
+	public boolean isHasAudioQuestion() {
+		return hasAudioQuestion;
+	}
+
+	public void setHasAudioQuestion(boolean hasAudioQuestion) {
+		this.hasAudioQuestion = hasAudioQuestion;
+	}
+	
 }

+ 1 - 1
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperDetailUnitService.java

@@ -114,7 +114,7 @@ public class PaperDetailUnitService {
      * @return
      */
     public List<PaperDetailUnit> getUnitsByPaperDetail(PaperDetail paperDetail) {
-        return paperDetailUnitRepo.findByPaperDetail(paperDetail);
+        return paperDetailUnitRepo.findByPaperDetailOrderByNumber(paperDetail);
     }
 
     /**

+ 4 - 4
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperService.java

@@ -422,7 +422,7 @@ public class PaperService {
 
         // 封装小题
         for (int i = 0; i < paperDetailExps.size(); i++) {
-            List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperDetail(paperDetails.get(i));
+            List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperDetailOrderByNumber(paperDetails.get(i));
             if (paperDetailUnits != null && paperDetailUnits.size() > 0) {
                 List<PaperDetailUnitExp> paperDetailUnitExps = BeanCopierUtil.copyPropertiesOfList(paperDetailUnits,
                         PaperDetailUnitExp.class);
@@ -571,7 +571,7 @@ public class PaperService {
         }
         // 计算各大题总分
         for (PaperDetail paperDetail : paperDetails) {
-            List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperDetail(paperDetail);
+            List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperDetailOrderByNumber(paperDetail);
             Collections.sort(paperDetailUnits);
             if (paperDetailUnits.size() > 0) {
                 int count = 0;
@@ -656,7 +656,7 @@ public class PaperService {
         Paper paper = paperRepo.findOne(paperId);
         PaperDetail pd = paperDetailRepo.findOne(paperDetailId);
         PaperDetailUnit pdu = new PaperDetailUnit();
-        List<PaperDetailUnit> pdus = paperDetailUnitRepo.findByPaperDetail(pd);
+        List<PaperDetailUnit> pdus = paperDetailUnitRepo.findByPaperDetailOrderByNumber(pd);
         pdu.setPaper(paper);
         pdu.setQuestionType(question.getQuestionType());
         pdu.setQuestion(question);
@@ -721,7 +721,7 @@ public class PaperService {
             AccessUser user) {
         Paper paper = paperRepo.findOne(paperId);
         PaperDetail pd = paperDetailRepo.findOne(paperDetailId);
-        List<PaperDetailUnit> pdus = paperDetailUnitRepo.findByPaperDetail(pd);
+        List<PaperDetailUnit> pdus = paperDetailUnitRepo.findByPaperDetailOrderByNumber(pd);
         List<PaperDetailUnit> saveUnits = new ArrayList<PaperDetailUnit>();
         for (Question ques : questions) {
             PaperDetailUnit pdu = new PaperDetailUnit();

+ 1 - 1
cqb-paper/src/main/java/com/qmth/cqb/paper/service/export/DzkdExportPaperService.java

@@ -87,7 +87,7 @@ public class DzkdExportPaperService extends ExportPaperAbstractService{
 		int objetcUnitSum = 0;
 		for (int i = 0; i < paperDetails.size(); i++) {
 			PaperDetailExp paperDetailExp = BeanCopierUtil.copyProperties(paperDetails.get(i), PaperDetailExp.class);
-			List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperDetail(paperDetails.get(i));
+			List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperDetailOrderByNumber(paperDetails.get(i));
 			// 把大题分类 :客观题和主观题
 			List<PaperDetailUnitExp> paperDetailUnitExps = BeanCopierUtil.copyPropertiesOfList(paperDetailUnits,PaperDetailUnitExp.class);
 			// 选择题,套题下选择题 选项顺序重新排列

+ 1 - 1
cqb-paper/src/main/java/com/qmth/cqb/paper/service/export/ExportPaperAbstractService.java

@@ -242,7 +242,7 @@ public abstract class ExportPaperAbstractService {
 		int objetcUnitSum = 0;
 		for (int i = 0; i < paperDetails.size(); i++) {
 			PaperDetailExp paperDetailExp = BeanCopierUtil.copyProperties(paperDetails.get(i), PaperDetailExp.class);
-			List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperDetail(paperDetails.get(i));
+			List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperDetailOrderByNumber(paperDetails.get(i));
 			// 把大题分类 :客观题和主观题
 			List<PaperDetailUnitExp> paperDetailUnitExps = BeanCopierUtil.copyPropertiesOfList(paperDetailUnits,PaperDetailUnitExp.class);
 			// 选择题,套题下选择题 选项顺序重新排列

+ 1 - 1
cqb-paper/src/main/java/com/qmth/cqb/paper/service/export/SydxExportPaperService.java

@@ -147,7 +147,7 @@ public class SydxExportPaperService extends ExportPaperAbstractService{
         for(int i = 0; i < paperDetailExps.size(); i++){
             PaperDetailExp paperDetailExp = paperDetailExps.get(i);
             paperDetailExp.setTitle(getDetailTitle(paperDetailExp));
-            List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperDetail(paperDetails.get(i));
+            List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperDetailOrderByNumber(paperDetails.get(i));
 
             setAnswerWord(paperDetailUnits);
 

+ 1 - 1
cqb-paper/src/main/java/com/qmth/cqb/paper/service/impl/ExtractConfigServiceImpl.java

@@ -405,7 +405,7 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
         // 封装小题
         for (int i = 0; i < paperDetailDtos.size(); i++) {
         	//根据大题查出大题下面的小题
-            List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperDetail(paperDetails.get(i));
+            List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperDetailOrderByNumber(paperDetails.get(i));
             //小题根据number进行排序 perDetailUnit 对象中有compareTo方法
             Collections.sort(paperDetailUnits);
 			//设置答案

+ 21 - 0
cqb-question-resource/src/main/java/com/qmth/cqb/question/dao/QuestionAudioRepo.java

@@ -0,0 +1,21 @@
+package com.qmth.cqb.question.dao;
+
+import java.util.List;
+
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.data.repository.query.QueryByExampleExecutor;
+
+import com.qmth.cqb.question.model.QuestionAudio;
+
+/**
+ * @author  	chenken
+ * @date    	2017年8月1日 上午11:31:23
+ * @company 	QMTH
+ * @description QuestionRadioRepo.java
+ */
+public interface QuestionAudioRepo extends MongoRepository<QuestionAudio, String>, QueryByExampleExecutor<QuestionAudio> {
+	
+	public List<QuestionAudio> findByQuestionId(String questionId);
+	
+}
+

+ 21 - 1
cqb-question-resource/src/main/java/com/qmth/cqb/question/model/Question.java

@@ -7,7 +7,6 @@ import java.util.Map;
 import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
 import org.springframework.data.annotation.Id;
 
-import com.qmth.cqb.utils.CommonUtils;
 import com.qmth.cqb.utils.word.DocxProcessUtil;
 
 import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
@@ -63,7 +62,13 @@ public class Question implements Serializable {
     private String orgId; // 机构ID
 
     private Map<String, String> quesParams;// 试题属性
+    /**
+     * 是否包含音频
+     */
+    private boolean hasAudio;
 
+    private List<QuestionAudio> questionAudios;
+    
     public static long getSerialVersionUID() {
         return serialVersionUID;
     }
@@ -249,5 +254,20 @@ public class Question implements Serializable {
         this.courseMajor = courseMajor;
     }
 
+	public boolean isHasAudio() {
+		return hasAudio;
+	}
+
+	public void setHasAudio(boolean hasAudio) {
+		this.hasAudio = hasAudio;
+	}
+
+	public List<QuestionAudio> getQuestionAudios() {
+		return questionAudios;
+	}
+
+	public void setQuestionAudios(List<QuestionAudio> questionAudios) {
+		this.questionAudios = questionAudios;
+	}
 
 }

+ 78 - 0
cqb-question-resource/src/main/java/com/qmth/cqb/question/model/QuestionAudio.java

@@ -0,0 +1,78 @@
+package com.qmth.cqb.question.model;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author  	chenken
+ * @date    	2017年8月1日 上午10:56:23
+ * @company 	QMTH
+ * @description QuestionRadio.java
+ */
+public class QuestionAudio implements Serializable{
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 7190928471784053821L;
+
+	private String id;
+	/**
+	 * 试题ID
+	 */
+	private String questionId;
+	/**
+	 * 文件名称
+	 */
+	private String fileName;
+	/**
+	 * 存放路径
+	 */
+	private String fileUrl;
+	/**
+	 * 创建时间
+	 */
+	private Date createTime;
+	/**
+	 * 创建人
+	 */
+	private String createUser;
+	
+	public String getId() {
+		return id;
+	}
+	public void setId(String id) {
+		this.id = id;
+	}
+	public String getQuestionId() {
+		return questionId;
+	}
+	public void setQuestionId(String questionId) {
+		this.questionId = questionId;
+	}
+	public String getFileName() {
+		return fileName;
+	}
+	public void setFileName(String fileName) {
+		this.fileName = fileName;
+	}
+	public String getFileUrl() {
+		return fileUrl;
+	}
+	public void setFileUrl(String fileUrl) {
+		this.fileUrl = fileUrl;
+	}
+	public Date getCreateTime() {
+		return createTime;
+	}
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
+	}
+	public String getCreateUser() {
+		return createUser;
+	}
+	public void setCreateUser(String createUser) {
+		this.createUser = createUser;
+	}
+	
+}
+

+ 27 - 0
cqb-question-resource/src/main/java/com/qmth/cqb/question/service/QuestionAudioService.java

@@ -0,0 +1,27 @@
+package com.qmth.cqb.question.service;
+
+import java.util.List;
+
+import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
+
+import com.qmth.cqb.question.model.QuestionAudio;
+
+/**
+ * @author  	chenken
+ * @date    	2017年8月1日 上午11:26:40
+ * @company 	QMTH
+ * @description QuestionRadioService.java
+ */
+public interface QuestionAudioService {
+	/**
+	 * 保存试题音频文件
+	 * @param questionRadio
+	 */
+	public void saveQuestionAudio(QuestionAudio questionAudio,AccessUser accessUser);
+	 /**
+	  * 根据试题ID获取音频文件
+	  * @return
+	  */
+	public List<QuestionAudio> findQuestionAudiosByQuestionId(String questionId);
+}
+

+ 42 - 0
cqb-question-resource/src/main/java/com/qmth/cqb/question/service/impl/QuestionAudioServiceImpl.java

@@ -0,0 +1,42 @@
+package com.qmth.cqb.question.service.impl;
+
+import java.util.Date;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.Assert;
+
+import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
+
+import com.qmth.cqb.question.dao.QuestionAudioRepo;
+import com.qmth.cqb.question.model.QuestionAudio;
+import com.qmth.cqb.question.service.QuestionAudioService;
+
+/**
+ * @author  	chenken
+ * @date    	2017年8月1日 上午11:27:33
+ * @company 	QMTH
+ * @description QuestionRadioServiceImpl.java
+ */
+@Service("questionAudioService")
+public class QuestionAudioServiceImpl implements QuestionAudioService{
+
+	@Autowired
+	private QuestionAudioRepo questionAudioRepo;
+	
+	@Override
+	public void saveQuestionAudio(QuestionAudio questionAudio,AccessUser accessUser) {
+		questionAudio.setCreateTime(new Date());
+		questionAudio.setCreateUser(accessUser.getName());
+		questionAudioRepo.save(questionAudio);
+	}
+
+	@Override
+	public List<QuestionAudio> findQuestionAudiosByQuestionId(String questionId) {
+		Assert.hasLength(questionId, "questionId不能为空");
+		return questionAudioRepo.findByQuestionId(questionId);
+	}
+
+}
+