deason 7 年之前
父節點
當前提交
2ecf80d3ce

+ 11 - 4
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/ClonePaperService.java

@@ -13,6 +13,7 @@ import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.exception.PaperException;
 import cn.com.qmth.examcloud.core.questions.dao.*;
 import cn.com.qmth.examcloud.core.questions.dao.entity.*;
+import com.google.common.collect.Lists;
 import main.java.com.UpYun;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -95,12 +96,18 @@ public class ClonePaperService {
 
         //复制原试卷的信息
         Paper newPaper = this.copyPaper(oldPaper, paperName, course, user);
-
         //保存新试卷
         paperRepo.save(newPaper);
-
-        //保存新试卷的所有试题信息
-        this.savePaperDetails(detailMaps, newPaper, user);
+        try {
+            //保存新试卷的所有试题信息
+            this.savePaperDetails(detailMaps, newPaper, user);
+        } catch (Exception e) {
+            if (newPaper.getId() != null) {
+                //如果试题保存失败,则还原数据
+                paperService.deletePapers(Lists.newArrayList(newPaper.getId()));
+            }
+            throw new PaperException("克隆试卷失败!");
+        }
     }
 
     /**