|
@@ -113,33 +113,20 @@ public class QuestionAudioServiceImpl implements QuestionAudioService{
|
|
|
@Override
|
|
|
public void sortAudio(Question question) {
|
|
|
if(question.getHasAudio()!=null&&question.getHasAudio()){
|
|
|
- StringBuffer buffer = new StringBuffer();
|
|
|
- buffer.append(question.getQuesBody());
|
|
|
+ //音频顺序改变后,更新bodyHtml
|
|
|
+ String newQusBody = getFileNames(question.getQuesBody(),question);
|
|
|
+ question.setQuesBody(newQusBody);
|
|
|
+ //跟新选项中的optionsHtml
|
|
|
if(question.getQuesOptions()!=null&&question.getQuesOptions().size()>0){
|
|
|
for(QuesOption option:question.getQuesOptions()){
|
|
|
- buffer.append(option.getOptionBody());
|
|
|
+ String newOptionBody = getFileNames(option.getOptionBody(),question);
|
|
|
+ option.setOptionBody(newOptionBody);
|
|
|
}
|
|
|
}
|
|
|
- String questionBodyAndOptionStr = buffer.toString();
|
|
|
- //定义一个集合添加音频信息
|
|
|
- Map<String, String> map = getFileNames(questionBodyAndOptionStr);
|
|
|
- //循环替换
|
|
|
- for(String key:map.keySet()){
|
|
|
- questionBodyAndOptionStr = questionBodyAndOptionStr.replace(key, map.get(key));
|
|
|
- }
|
|
|
- //替换并更新数据
|
|
|
- for(String key:map.keySet()){
|
|
|
- String fileName = key;
|
|
|
- questionBodyAndOptionStr = questionBodyAndOptionStr.replace(map.get(key), map.get(key).substring(0, map.get(key).indexOf("@")));
|
|
|
- QuestionAudio questionAudio = questionAudioRepo.findByQuestionIdAndFileName(question.getId(),fileName);
|
|
|
- questionAudio.setFileName(map.get(key).substring(0, map.get(key).indexOf("@")));
|
|
|
- questionAudioRepo.save(questionAudio);
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private Map<String, String> getFileNames(String str){
|
|
|
- StringBuffer buffer = new StringBuffer();
|
|
|
+ private String getFileNames(String str, Question question){
|
|
|
Map<String, String> map = new LinkedHashMap<String, String>();
|
|
|
Pattern p = Pattern.compile("<a\\s+[^<>]*\\s+name=\"([^<>\"]*)\"[^<>]*>");
|
|
|
Matcher m = p.matcher(str);
|
|
@@ -147,23 +134,37 @@ public class QuestionAudioServiceImpl implements QuestionAudioService{
|
|
|
int y = 1;
|
|
|
while(m.find()) {
|
|
|
String name = m.group(1);
|
|
|
+ StringBuffer buffer = new StringBuffer();
|
|
|
if(name.substring(0, name.indexOf("_")+1).contains("2")){
|
|
|
buffer.append(name.substring(0,name.lastIndexOf("_")+1));
|
|
|
buffer.append(i);
|
|
|
- buffer.append(name.substring(name.lastIndexOf(".")));
|
|
|
buffer.append("@temp");
|
|
|
- map.put(m.group(1), buffer.toString());
|
|
|
+ buffer.append(name.substring(name.lastIndexOf(".")));
|
|
|
+ map.put(name, buffer.toString());
|
|
|
i++;
|
|
|
}else {
|
|
|
buffer.append(name.substring(0,name.lastIndexOf("_")+1));
|
|
|
buffer.append(y);
|
|
|
- buffer.append(name.substring(name.lastIndexOf(".")));
|
|
|
buffer.append("@temp");
|
|
|
- map.put(m.group(1), buffer.toString());
|
|
|
+ buffer.append(name.substring(name.lastIndexOf(".")));
|
|
|
+ map.put(name, buffer.toString());
|
|
|
y++;
|
|
|
}
|
|
|
}
|
|
|
- return map;
|
|
|
+ //循环替换
|
|
|
+ for(String key:map.keySet()){
|
|
|
+ str = str.replace(key, map.get(key));
|
|
|
+ }
|
|
|
+ //替换并更新数据
|
|
|
+ for(String key:map.keySet()){
|
|
|
+ String fileName = key;
|
|
|
+ String value = map.get(key).replace("@temp", "");
|
|
|
+ str = str.replace(map.get(key), value);
|
|
|
+ QuestionAudio questionAudio = questionAudioRepo.findByQuestionIdAndFileName(question.getId(),fileName);
|
|
|
+ questionAudio.setFileName(value);
|
|
|
+ questionAudioRepo.save(questionAudio);
|
|
|
+ }
|
|
|
+ return str;
|
|
|
}
|
|
|
|
|
|
}
|