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

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

@@ -59,6 +59,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import static cn.com.qmth.examcloud.core.questions.service.cache.Constants.CACHE_KEY_PAPER;
+import static cn.com.qmth.examcloud.core.questions.service.cache.Constants.CACHE_KEY_QUESTION;
 
 /**
  * @author chenken
@@ -1160,6 +1161,9 @@ public class PaperServiceImpl implements PaperService {
             question = paperDetailUnitRepo.findByPaperAndNumber(paper, Integer.valueOf(numbers[0])).getQuestion();
             uploadAudioFile(paperId, question.getId(), file, user);
             appendAudioTag(file.getOriginalFilename(), question.getId());
+
+            //清除缓存
+            this.clearQuestionCache(question.getId());
         }
         //删除服务器文件夹
         String mp3DirectoryPath = TEMP_FILE_EXP + File.separator + paperId;
@@ -1756,4 +1760,13 @@ public class PaperServiceImpl implements PaperService {
         }
     }
 
+    private void clearQuestionCache(String questionId) {
+        //清理与当前试题相关的缓存
+        final String patternKey = CACHE_KEY_QUESTION + "*" + questionId;
+        Set<String> keys = redisTemplate.keys(patternKey);
+        if (CollectionUtils.isNotEmpty(keys)) {
+            redisTemplate.delete(keys);
+        }
+    }
+
 }