deason 5 年之前
父节点
当前提交
bb4f259407

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

@@ -40,13 +40,16 @@ public class QuestionAudioServiceImpl implements QuestionAudioService {
 
     @Override
     public void saveQuestionAudio(QuestionAudio questionAudio, User user) {
-        QuestionAudio questionAudio2 = this.findByQuestionIdAndFileName(questionAudio.getQuestionId(), questionAudio.getFileName());
-        if (questionAudio2 != null) {
-            questionAudio.setId(questionAudio2.getId());
+        QuestionAudio existQuestionAudio = this.findByQuestionIdAndFileName(questionAudio.getQuestionId(), questionAudio.getFileName());
+        if (existQuestionAudio != null) {
+            questionAudio.setId(existQuestionAudio.getId());
+
             UpYun upYun = new UpYun(sysProperty.getBucketName(), sysProperty.getUserName(), sysProperty.getPassword());
-            upYun.deleteFile(questionAudio2.getFileUrl());
-            questionAudioRepo.delete(questionAudio2);
+            upYun.deleteFile(existQuestionAudio.getFileUrl());
+
+            questionAudioRepo.delete(existQuestionAudio);
         }
+
         questionAudio.setCreateTime(new Date());
         questionAudio.setCreateUser(user.getDisplayName());
         questionAudioRepo.save(questionAudio);
@@ -66,6 +69,20 @@ public class QuestionAudioServiceImpl implements QuestionAudioService {
 
         List<QuestionAudio> audioList = questionAudioRepo.findByQuestionIdAndFileName(questionId, fileName);
         if (CollectionUtils.isNotEmpty(audioList)) {
+
+            Collections.sort(audioList, (target1, target2) -> {
+                if (target1.getCreateTime() == null || target2.getCreateTime() == null) {
+                    return 0;
+                }
+
+                if (target1.getCreateTime().before(target2.getCreateTime())) {
+                    return 1;
+                }
+
+                return -1;
+            });
+
+            //取最新的一个
             return audioList.get(0);
         }