浏览代码

提交BUG

chenken 7 年之前
父节点
当前提交
eca1624375

+ 6 - 1
cqb-comm-utils/src/main/java/com/qmth/cqb/utils/CommonUtils.java

@@ -236,7 +236,12 @@ public final class CommonUtils {
 		try {
 			Document document = DocumentHelper.parseText(htmlString);
 			Element rootElement = document.getRootElement();
-			List<Element> nodes = rootElement.elements(flagName);
+			List<Element> nodes = new ArrayList<Element>();
+			if(flagName.equals(rootElement.getName())){
+				nodes.add(rootElement);
+			}else{
+				nodes = rootElement.elements(flagName);
+			}
 			for(Iterator<Element> itr = nodes.iterator();itr.hasNext();){
 				Element element = (Element) itr.next();
 				Attribute attr = element.attribute(attrName);  

+ 0 - 8
cqb-comm-utils/src/main/java/com/qmth/cqb/utils/FileDisposeUtil.java

@@ -175,7 +175,6 @@ public class FileDisposeUtil {
 		BufferedInputStream bis = null;
 		FileOutputStream fos = null;
 		ZipOutputStream zos = null;
-
 		if (sourceFile.exists() == false) {
 			logger.error("待压缩的文件目录:" + sourceFilePath + "不存在.");
 		} else {
@@ -209,16 +208,10 @@ public class FileDisposeUtil {
 						flag = true;
 					}
 				}
-				bis.close();
-				fis.close();
-				zos.close();
-				fos.close();
 			} catch (FileNotFoundException e) {
 				e.printStackTrace();
-				throw new RuntimeException(e);
 			} catch (IOException e) {
 				e.printStackTrace();
-				throw new RuntimeException(e);
 			} finally {
 				try {
 					if (null != bis){
@@ -239,7 +232,6 @@ public class FileDisposeUtil {
 					}
 				} catch (IOException e) {
 					e.printStackTrace();
-					throw new RuntimeException(e);
 				}
 			}
 		}

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

@@ -206,8 +206,7 @@ public interface PaperService {
 
     public void checkPaperNameNew(String paperName, String orgId)throws Exception;
 
-    public Page<Paper> getImportPapersNotInIds(PaperSearchInfo paperSearchInfo, String[] ids, int curPage,
-            int pageSize);
+    public Page<Paper> getImportPapersNotInIds(PaperSearchInfo paperSearchInfo, String[] ids, int curPage,int pageSize);
     /**
      * 将选中的导入试卷复制为卷库试卷
      */

+ 17 - 10
cqb-paper/src/main/java/com/qmth/cqb/paper/service/impl/PaperServiceImpl.java

@@ -27,7 +27,6 @@ import org.springframework.data.domain.Example;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageImpl;
 import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Pageable;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.domain.Sort.Direction;
 import org.springframework.data.domain.Sort.Order;
@@ -824,15 +823,23 @@ public class PaperServiceImpl implements PaperService{
         }
     }
 
-    public Page<Paper> getImportPapersNotInIds(PaperSearchInfo paperSearchInfo, String[] ids, int curPage,
-            int pageSize) {
-        Set<String> selectedIds = new HashSet<>();
-        for (String id : ids) {
-            selectedIds.add(id);
-        }
-        Pageable page = new PageRequest(curPage - 1, pageSize);
-        return paperRepo.findByIdNotInAndCourseNoAndOrgIdAndPaperType(selectedIds, paperSearchInfo.getCourseNo(),
-                paperSearchInfo.getOrgId(), PaperType.IMPORT, page);
+    public Page<Paper> getImportPapersNotInIds(PaperSearchInfo paperSearchInfo, String[] ids, int curPage,int pageSize) {
+    	Set<String> selectedIds = new HashSet<>();
+    	for (String id : ids) {
+    	    selectedIds.add(id);
+    	}
+    	Query query = new Query();
+    	query.addCriteria(Criteria.where("paperType").is(PaperType.IMPORT));
+    	query.addCriteria(Criteria.where("orgId").is(paperSearchInfo.getOrgId()));
+    	query.addCriteria(Criteria.where("course.code").is(paperSearchInfo.getCourseNo()));
+    	query.addCriteria(Criteria.where("id").nin(selectedIds));
+    	long total = this.mongoTemplate.count(query, Paper.class);
+    	query.with(new Sort(new Order(Direction.DESC,"createTime")));
+    	query.limit(pageSize);
+    	query.skip((curPage - 1) * pageSize);
+    	List<Paper> paperList = this.mongoTemplate.find(query,Paper.class);
+    	Page<Paper> paperPageList = new PageImpl<Paper>(paperList,new PageRequest(curPage - 1, pageSize), total);
+    	return paperPageList;
     }
     /**
      * 将选中的导入试卷复制为卷库试卷

+ 7 - 9
cqb-paper/src/main/java/com/qmth/cqb/paper/web/PaperController.java

@@ -15,6 +15,7 @@ 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;
@@ -449,24 +450,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(HttpServletRequest request,
+    public ResponseEntity<Object> 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);
+            return new ResponseEntity<Object>(new PageImpl<Question>(new ArrayList<Question>()),HttpStatus.OK);
         }
+        QuesStructType quesStructType = null;
         if (StringUtils.isNotEmpty(quesType)) {
-            return new ResponseEntity(
-                    paperService.listQuestionforSelect(paperId, curPage, pageSize, QuesStructType.valueOf(quesType),accessUser),
-                    HttpStatus.OK);
-        } else {
-            return new ResponseEntity(paperService.listQuestionforSelect(paperId, curPage, pageSize, null,accessUser),
-                    HttpStatus.OK);
+        	quesStructType = QuesStructType.valueOf(quesType);
         }
-
+        Page<Question> questionPageList = paperService.listQuestionforSelect(paperId,curPage,pageSize,quesStructType,accessUser);
+        return new ResponseEntity<Object>(questionPageList,HttpStatus.OK);
     }
 
     /**

+ 26 - 17
cqb-question-resource/src/main/java/com/qmth/cqb/question/service/impl/QuesServiceImpl.java

@@ -10,8 +10,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageImpl;
 import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Pageable;
 import org.springframework.data.domain.Sort;
+import org.springframework.data.domain.Sort.Direction;
+import org.springframework.data.domain.Sort.Order;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
@@ -19,6 +20,7 @@ import org.springframework.stereotype.Service;
 
 import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
 
+import com.qmth.cqb.base.dao.CourseRepo;
 import com.qmth.cqb.question.dao.QuesRepo;
 import com.qmth.cqb.question.dao.QuestionAudioRepo;
 import com.qmth.cqb.question.model.QuesOption;
@@ -39,16 +41,19 @@ import com.qmth.cqb.utils.word.DocxProcessUtil;
 @Service("quesService")
 public class QuesServiceImpl implements QuesService{
 	@Autowired
-    QuesRepo quesRepo;
+	private QuesRepo quesRepo;
     
     @Autowired
-    QuestionAudioService questionAudioService;
+    private QuestionAudioService questionAudioService;
 
     @Autowired
-    MongoTemplate mongoTemplate;
+    private MongoTemplate mongoTemplate;
     
     @Autowired
-    QuestionAudioRepo questionAudioRepo;
+    private QuestionAudioRepo questionAudioRepo;
+    
+    @Autowired
+	private CourseRepo courseRepo;
     /**
      * 套题子题按序号自动生成ID
      *
@@ -226,20 +231,24 @@ public class QuesServiceImpl implements QuesService{
      * @param pageSize
      * @return
      */
-    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.findByIdNotInAndCourseNoAndQuestionTypeAndOrgId(idSet, courseNo, quesType, orgId.toString(),page)
-                : quesRepo.findByIdNotInAndCourseNoAndOrgId(idSet, courseNo,orgId.toString(),page);
-        for (Question question : list) {
+    public Page<Question> findByIdExclude(Set<String> idSet,String courseNo,QuesStructType quesType,int curPage,int pageSize,Long orgId) {
+        Query query = new Query();
+        if(quesType!=null){
+        	query.addCriteria(Criteria.where("questionType").is(quesType));
+        }
+        query.addCriteria(Criteria.where("orgId").is(orgId+""));
+        query.addCriteria(Criteria.where("course.code").is(courseNo));
+        query.addCriteria(Criteria.where("id").nin(idSet));
+        long total = this.mongoTemplate.count(query, Question.class);
+        query.with(new Sort(new Order(Direction.DESC,"createTime")));
+		query.limit(pageSize);
+        query.skip((curPage - 1) * pageSize);
+        List<Question> questionList = this.mongoTemplate.find(query,Question.class);
+        Page<Question> questionPageList = new PageImpl<Question>(questionList,new PageRequest(curPage - 1, pageSize), total);
+        for (Question question : questionPageList) {
             formatQues(question);
         }
-        return list;
+        return questionPageList;
     }
 
     /**