浏览代码

修改题库机构分离的bug

宋悦 8 年之前
父节点
当前提交
766165896a

+ 6 - 2
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperService.java

@@ -689,7 +689,11 @@ public class PaperService {
 
     }
 
-    public Page<Question> listQuestionforSelect(String paperId, int curPage, int pageSize, QuesStructType quesType) {
+    public Page<Question> listQuestionforSelect(String paperId,
+                                                int curPage,
+                                                int pageSize,
+                                                QuesStructType quesType,
+                                                AccessUser accessUser) {
         Set<String> selectedIds = new HashSet<>();
         Paper paper = paperRepo.findOne(paperId);
         // QuestionSearchCondition ques = new QuestionSearchCondition();
@@ -711,7 +715,7 @@ public class PaperService {
         // que.remove();
         // }
         // }
-        return quesService.findByIdExclude(selectedIds, paper.getCourseNo(), quesType, curPage, pageSize);
+        return quesService.findByIdExclude(selectedIds, paper.getCourseNo(), quesType, curPage, pageSize,accessUser.getRootOrgId());
     }
 
     public Paper selectQuestionsToPaper(String paperId, String paperDetailId, List<Question> questions,

+ 13 - 4
cqb-paper/src/main/java/com/qmth/cqb/paper/web/PaperController.java

@@ -15,6 +15,8 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.domain.Example;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageImpl;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.DeleteMapping;
@@ -446,14 +448,21 @@ public class PaperController {
     @ApiOperation(value = "查询用于选题的试题列表", notes = "查询用于选题的试题列表")
     @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
     @GetMapping(value = "/paper/listQuestion/{paperId}/{curPage}/{pageSize}")
-    public ResponseEntity listQuestionforSelect(@PathVariable String paperId, @PathVariable int curPage,
-            @PathVariable int pageSize, @RequestParam(name = "quesType") String quesType) {
+    public ResponseEntity listQuestionforSelect(HttpServletRequest request,
+                                                @PathVariable String paperId,
+                                                @PathVariable int curPage,
+                                                @PathVariable int pageSize,
+                                                @RequestParam(name = "quesType") String quesType) {
+        AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
+        if(accessUser == null){
+            return new ResponseEntity(new PageImpl<Question>(new ArrayList<Question>()),HttpStatus.OK);
+        }
         if (StringUtils.isNotEmpty(quesType)) {
             return new ResponseEntity(
-                    paperService.listQuestionforSelect(paperId, curPage, pageSize, QuesStructType.valueOf(quesType)),
+                    paperService.listQuestionforSelect(paperId, curPage, pageSize, QuesStructType.valueOf(quesType),accessUser),
                     HttpStatus.OK);
         } else {
-            return new ResponseEntity(paperService.listQuestionforSelect(paperId, curPage, pageSize, null),
+            return new ResponseEntity(paperService.listQuestionforSelect(paperId, curPage, pageSize, null,accessUser),
                     HttpStatus.OK);
         }
 

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

@@ -58,7 +58,7 @@ public class PaperStructController {
                                           @PathVariable int pageSize) {
         AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
         if(accessUser != null){
-            searchInfo.setOrgId(String.valueOf(accessUser.getRootOrgId()));
+            searchInfo.setOrgId(accessUser.getRootOrgId().toString());
         }
         Page<PaperStruct> paperStructs= paperStructService.getPaperStructs(searchInfo, curPage, pageSize);
         return new ResponseEntity(paperStructs, HttpStatus.OK);
@@ -75,7 +75,7 @@ public class PaperStructController {
     public ResponseEntity getPaperStructs(HttpServletRequest request,@ModelAttribute PaperStructSearchInfo searchInfo) {
         AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
         if(accessUser != null){
-            searchInfo.setOrgId(String.valueOf(accessUser.getRootOrgId()));
+            searchInfo.setOrgId(accessUser.getRootOrgId().toString());
         }
         List<PaperStruct> paperStructs = paperStructService.getPaperStructs(searchInfo);
         return new ResponseEntity(paperStructs, HttpStatus.OK);

+ 3 - 3
cqb-question-resource/src/main/java/com/qmth/cqb/question/dao/QuesRepo.java

@@ -14,8 +14,8 @@ import java.util.Set;
  */
 public interface QuesRepo extends MongoRepository<Question, String>, QueryByExampleExecutor<Question> {
 
-    public Page<Question> findByIdNotInAndCourseNo(Set<String> idSet, String courseNo, Pageable page);
+    Page<Question> findByIdNotInAndCourseNoAndOrgId(Set<String> idSet, String courseNo, Long orgId,Pageable page);
 
-    public Page<Question> findByIdNotInAndCourseNoAndQuestionType(Set<String> idSet, String courseNo,
-            QuesStructType quesType, Pageable page);
+    Page<Question> findByIdNotInAndCourseNoAndQuestionTypeAndOrgId(Set<String> idSet, String courseNo,
+                                                                   QuesStructType quesType, Long orgId,Pageable page);
 }

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

@@ -5,6 +5,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Set;
 
+import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
 import org.apache.commons.lang3.StringEscapeUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
@@ -204,12 +205,16 @@ public class QuesService {
      * @param pageSize
      * @return
      */
-    public Page<Question> findByIdExclude(Set<String> idSet, String courseNo, QuesStructType quesType, int curPage,
-            int pageSize) {
+    public Page<Question> findByIdExclude(Set<String> idSet,
+                                          String courseNo,
+                                          QuesStructType quesType,
+                                          int curPage,
+                                          int pageSize,
+                                          Long orgId) {
         Pageable page = new PageRequest(curPage - 1, pageSize);
         Page<Question> list = quesType != null
-                ? quesRepo.findByIdNotInAndCourseNoAndQuestionType(idSet, courseNo, quesType, page)
-                : quesRepo.findByIdNotInAndCourseNo(idSet, courseNo, page);
+                ? quesRepo.findByIdNotInAndCourseNoAndQuestionTypeAndOrgId(idSet, courseNo, quesType, orgId,page)
+                : quesRepo.findByIdNotInAndCourseNoAndOrgId(idSet, courseNo,orgId,page);
         for (Question question : list) {
             formatQues(question);
         }