|
@@ -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;
|
|
|
}
|
|
|
|
|
|
/**
|