gaoxing преди 8 години
родител
ревизия
8bb29f5687

+ 26 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperService.java

@@ -7,6 +7,8 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -324,15 +326,19 @@ public class PaperService {
                     List<Question> subQuesList = paperDetailUnit.getQuestion().getSubQuestions();
                     // 套题序号
                     if (subQuesList != null && subQuesList.size() > 0) {
+                        int index = subNum;
                         for (Question subQues : subQuesList) {
                             Map<String, String> params = new HashMap<String, String>();
                             params.put("number", String.valueOf(++subNum));
                             subQues.setQuesParams(params);
                             quesService.formatQuesUnit(subQues);
                         }
+                        String quesBodyHtml = relaceRuestionIdx(paperDetailUnit.getQuestion().getQuesBody(), index);
+                        paperDetailUnit.getQuestion().setQuesBody(quesBodyHtml);
                     } else {
                         paperDetailUnit.setNumber(++subNum);
                     }
+
                 }
             }
         }
@@ -549,6 +555,7 @@ public class PaperService {
     public String checkPaperName(String paperName, String orgId) {
         String msg = null;
         Paper paperTemp = new Paper();
+        paperTemp.setCreateTime(null);
         paperTemp.setName(paperName.trim());
         paperTemp.setOrgId(orgId);
         Paper paper = paperRepo.findOne(Example.of(paperTemp));
@@ -559,4 +566,23 @@ public class PaperService {
 
     }
 
+    private String relaceRuestionIdx(String str, int baseIdx) {
+        StringBuffer sb = new StringBuffer("");
+        Pattern pattern = Pattern.compile("##(\\d+)##");
+
+        Matcher matcher = pattern.matcher(str);
+
+        while (matcher.find()) {
+            String idx = matcher.group(1);
+            matcher.appendReplacement(sb, "___" + String.valueOf(Integer.parseInt(idx) + baseIdx) + "___");
+        }
+
+        if (StringUtils.isEmpty(sb.toString())) {
+            return str;
+        } else {
+            matcher.appendTail(sb);
+            return sb.toString();
+        }
+    }
+
 }

+ 11 - 1
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperStructService.java

@@ -39,7 +39,8 @@ public class PaperStructService {
      * @param pageSize
      * @return
      */
-    public Page<PaperStruct> getPaperStructs(PaperStructSearchInfo searchInfo, int curPage, int pageSize,AccessUser user) {
+    public Page<PaperStruct> getPaperStructs(PaperStructSearchInfo searchInfo, int curPage, int pageSize,
+            AccessUser user) {
         searchInfo.setOrgId(user.getOrgId().toString());
         formatSearchInfo(searchInfo);
         PaperStruct paperStruct = BeanCopierUtil.copyProperties(searchInfo, PaperStruct.class);
@@ -98,4 +99,13 @@ public class PaperStructService {
         return paperStructRepo.save(paperStruct);
     }
 
+    public PaperStruct checkNameUnique(String name, String orgId) {
+        PaperStruct paperTemp = new PaperStruct();
+        paperTemp.setCreateTime(null);
+        paperTemp.setName(name.trim());
+        paperTemp.setOrgId(orgId);
+        PaperStruct paperStruct = paperStructRepo.findOne(Example.of(paperTemp));
+        return paperStruct;
+    }
+
 }

+ 11 - 7
cqb-paper/src/main/java/com/qmth/cqb/paper/web/PaperStructController.java

@@ -48,12 +48,11 @@ public class PaperStructController {
      */
     @ApiOperation(value = "获取试卷结构带分页", notes = "获取试卷结构带分页")
     @GetMapping(value = "/paperStruct/{curPage}/{pageSize}")
-    public ResponseEntity getPaperStructs(  HttpServletRequest request,
-                                            @ModelAttribute PaperStructSearchInfo searchInfo, 
-                                            @PathVariable int curPage,
-                                            @PathVariable int pageSize) {
+    public ResponseEntity getPaperStructs(HttpServletRequest request, @ModelAttribute PaperStructSearchInfo searchInfo,
+            @PathVariable int curPage, @PathVariable int pageSize) {
         AccessUser user = (AccessUser) request.getAttribute("accessUser");
-        return new ResponseEntity(paperStructService.getPaperStructs(searchInfo, curPage, pageSize,user), HttpStatus.OK);
+        return new ResponseEntity(paperStructService.getPaperStructs(searchInfo, curPage, pageSize, user),
+                HttpStatus.OK);
     }
 
     /**
@@ -104,8 +103,13 @@ public class PaperStructController {
     @PostMapping(value = "/paperStruct")
     public ResponseEntity addPaperStruct(HttpServletRequest request, @RequestBody PaperStruct ps) {
         AccessUser user = (AccessUser) request.getAttribute("accessUser");
-        PaperStruct paperStruct = paperStructService.save(ps, user);
-        return new ResponseEntity(paperStruct, HttpStatus.OK);
+        PaperStruct paperStructTemp = paperStructService.checkNameUnique(ps.getName(), user.getOrgId().toString());
+        if (paperStructTemp != null) {
+            return new ResponseEntity("试卷结构名称重复,请重新命名!", HttpStatus.INTERNAL_SERVER_ERROR);
+        } else {
+            PaperStruct paperStruct = paperStructService.save(ps, user);
+            return new ResponseEntity(paperStruct, HttpStatus.OK);
+        }
     }
 
     /**

+ 4 - 0
cqb-question-resource/src/main/java/com/qmth/cqb/question/service/QuesService.java

@@ -125,6 +125,8 @@ public class QuesService {
             updateQuesWord(saveQues);
             return quesRepo.save(saveQues);
         }
+        
+        
     }
 
     /**
@@ -245,6 +247,8 @@ public class QuesService {
             question.setQuesAnswerWord(null);
             question.setQuesAnswerAnalysisWord(null);
             question.setQuesPkg(new byte[0]);
+            String newQuesBody = question.getQuesBody().replaceAll("<span>", "").replaceAll("</span>", "").replaceAll("###", "______");
+            question.setQuesBody(newQuesBody);
             if (question.getQuesOptions() != null && question.getQuesOptions().size() > 0) {
                 question.getQuesOptions().stream().forEach(quesOption -> {
                     quesOption.setOptionBodyWord(null);