|
@@ -1216,40 +1216,51 @@ public class PaperServiceImpl implements PaperService {
|
|
|
*/
|
|
|
private void appendAudioTag(String fileName, String questionId) {
|
|
|
QuestionAudio questionAudio = questionAudioService.findByQuestionIdAndFileName(questionId, fileName);
|
|
|
- if (questionAudio != null) {
|
|
|
- String numbers[] = fileName.split("_");
|
|
|
- Question question = Model.of(quesRepo.findById(questionAudio.getQuestionId()));
|
|
|
- if (numbers[1].equals("1")) {
|
|
|
- String quesBody = question.getQuesBody();
|
|
|
- if (!quesBody.contains(fileName)) {
|
|
|
- String quesBodyNew = quesBody.substring(0, quesBody.lastIndexOf("</p>")) + "<a id=\"" + questionAudio.getId() + "\" name=\"" + fileName + "\"></a></p>";
|
|
|
- question.setQuesBody(quesBodyNew);
|
|
|
+ if (questionAudio == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ Question question = Model.of(quesRepo.findById(questionAudio.getQuestionId()));
|
|
|
+
|
|
|
+ final String audioTag = String.format("<a id=\"%s\" name=\"%s\"></a>", questionAudio.getId(), fileName);
|
|
|
+ String numbers[] = fileName.split("_");
|
|
|
+
|
|
|
+ if (numbers[1].equals("1")) {
|
|
|
+ String quesBody = question.getQuesBody();
|
|
|
+ if (!quesBody.contains(audioTag)) {
|
|
|
+ int lastTagIndex = quesBody.lastIndexOf("</p>");
|
|
|
+ if (lastTagIndex > 0) {
|
|
|
+ question.setQuesBody(quesBody.substring(0, lastTagIndex) + audioTag + "</p>");
|
|
|
+ } else {
|
|
|
+ question.setQuesBody(quesBody + audioTag);
|
|
|
}
|
|
|
- } else {
|
|
|
- List<QuesOption> quesOptions = question.getQuesOptions();
|
|
|
- List<QuesOption> quesOptionsNew = new ArrayList<QuesOption>();
|
|
|
- for (QuesOption quesOption : quesOptions) {
|
|
|
- if (quesOption.getNumber().equals(CommonUtils.characterToNumber(numbers[2]).toString())) {
|
|
|
- String optionBody = quesOption.getOptionBody();
|
|
|
- if (!optionBody.contains(fileName)) {
|
|
|
- String optionBodyNew = "";
|
|
|
- if (StringUtils.isBlank(optionBody)) {
|
|
|
- optionBodyNew = "<p><a id=\"" + questionAudio.getId() + "\" name=\"" + fileName + "\"></a></p>";
|
|
|
- } else {
|
|
|
- optionBodyNew = optionBody.substring(0, optionBody.lastIndexOf("</p>"))
|
|
|
- + "<a id=\"" + questionAudio.getId() + "\" name=\"" + fileName + "\"></a></p>";
|
|
|
- }
|
|
|
- quesOption.setOptionBody(optionBodyNew);
|
|
|
- }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for (QuesOption quesOption : question.getQuesOptions()) {
|
|
|
+ Integer optNumber = CommonUtils.characterToNumber(numbers[2]);
|
|
|
+ if (!quesOption.getNumber().equals(optNumber)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ String optionBody = quesOption.getOptionBody();
|
|
|
+ if (StringUtils.isBlank(optionBody)) {
|
|
|
+ quesOption.setOptionBody("<p>" + audioTag + "</p>");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!optionBody.contains(audioTag)) {
|
|
|
+ int lastTagIndex = optionBody.lastIndexOf("</p>");
|
|
|
+ if (lastTagIndex > 0) {
|
|
|
+ quesOption.setOptionBody(optionBody.substring(0, lastTagIndex) + audioTag + "</p>");
|
|
|
+ } else {
|
|
|
+ quesOption.setOptionBody(optionBody + audioTag);
|
|
|
}
|
|
|
- quesOptionsNew.add(quesOption);
|
|
|
}
|
|
|
- quesOptions = null;
|
|
|
- question.setQuesOptions(quesOptionsNew);
|
|
|
}
|
|
|
- question.setHasAudio(true);
|
|
|
- quesRepo.save(question);
|
|
|
}
|
|
|
+
|
|
|
+ question.setHasAudio(true);
|
|
|
+ quesRepo.save(question);
|
|
|
}
|
|
|
|
|
|
@Override
|