Prechádzať zdrojové kódy

删除试卷时,将音频删除。

weiwenhai 7 rokov pred
rodič
commit
dde033d3d5

+ 2 - 0
examcloud-core-questions-dao/src/main/java/cn/com/qmth/examcloud/core/questions/dao/QuestionAudioRepo.java

@@ -19,5 +19,7 @@ public interface QuestionAudioRepo extends MongoRepository<QuestionAudio, String
 
 	public QuestionAudio findByQuestionIdAndFileName(String questionId,String fileName);
 	
+	public List<QuestionAudio> findByQuestionIdIn(List<String> ids);
+	
 }
 

+ 5 - 0
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/QuestionAudioService.java

@@ -49,5 +49,10 @@ public interface QuestionAudioService {
 	 * @param question
 	 */
 	public void sortAudio(Question question);
+	
+	/**
+	 * 根据试题集合删除音频
+	 */
+	public void deleteAudio(List<Question> questions);
 }
 

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

@@ -446,6 +446,8 @@ public class PaperServiceImpl implements PaperService{
                     // }
                 }
             }
+            //删除音频
+            questionAudioService.deleteAudio(quesList);
             quesRepo.delete(quesList);
         } else if (papers.get(0).getPaperType() == PaperType.GENERATE) {
             for (Paper paper : papers) {

+ 19 - 0
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/QuestionAudioServiceImpl.java

@@ -167,5 +167,24 @@ public class QuestionAudioServiceImpl implements QuestionAudioService{
 	    return str;
 	}
 
+	@Override
+	public void deleteAudio(List<Question> questions) {
+		//筛选有音频的试题
+		List<String> ids = new ArrayList<String>();
+		for(Question question:questions){
+			if(question.getHasAudio()!=null&&question.getHasAudio()){
+				ids.add(question.getId());
+			}
+		}
+		List<QuestionAudio> questionAudios = questionAudioRepo.findByQuestionIdIn(ids);
+		Iterator<QuestionAudio> audioIterator = questionAudios.iterator();
+		while(audioIterator.hasNext()){
+			QuestionAudio audio = audioIterator.next();
+			UpYun upYun = new UpYun(bucketName, userName, password);
+			upYun.deleteFile(audio.getFileUrl());
+		}
+		questionAudioRepo.delete(questionAudios);
+	}
+
 }