|
@@ -95,25 +95,33 @@ public class RandomPaperServiceImpl implements RandomPaperService {
|
|
if (req.getUd().assertEmptyQueryResult()) {
|
|
if (req.getUd().assertEmptyQueryResult()) {
|
|
return Page.empty();
|
|
return Page.empty();
|
|
}
|
|
}
|
|
- Query query = new Query();
|
|
|
|
-
|
|
|
|
- query.addCriteria(Criteria.where("rootOrgId").is(req.getRootOrgId()));
|
|
|
|
|
|
+ Query query;
|
|
|
|
+ List<Criteria> cs=new ArrayList<>();
|
|
|
|
+ cs.add(Criteria.where("rootOrgId").is(req.getRootOrgId()));
|
|
|
|
|
|
if (req.getUd().assertNeedQueryRefIds()) {
|
|
if (req.getUd().assertNeedQueryRefIds()) {
|
|
- query.addCriteria(Criteria.where("courseId").in(req.getUd().getRefIds()));
|
|
|
|
|
|
+ cs.add(Criteria.where("courseId").in(req.getUd().getRefIds()));
|
|
}
|
|
}
|
|
|
|
|
|
if (req.getEnable() != null) {
|
|
if (req.getEnable() != null) {
|
|
- query.addCriteria(Criteria.where("enable").is(req.getEnable()));
|
|
|
|
|
|
+ cs.add(Criteria.where("enable").is(req.getEnable()));
|
|
}
|
|
}
|
|
|
|
|
|
if (req.getCourseId() != null) {
|
|
if (req.getCourseId() != null) {
|
|
- query.addCriteria(Criteria.where("courseId").is(req.getCourseId()));
|
|
|
|
|
|
+ cs.add(Criteria.where("courseId").is(req.getCourseId()));
|
|
}
|
|
}
|
|
-
|
|
|
|
- if (StringUtils.isNoneBlank(req.getName())) {
|
|
|
|
|
|
+ if (StringUtils.isNotBlank(req.getName())) {
|
|
String paperName = CommonUtils.escapeExprSpecialWord(req.getName());
|
|
String paperName = CommonUtils.escapeExprSpecialWord(req.getName());
|
|
- query.addCriteria(Criteria.where("name").regex(".*?\\.*" + paperName + ".*"));
|
|
|
|
|
|
+ cs.add(Criteria.where("name").regex(".*?\\.*" + paperName + ".*"));
|
|
|
|
+ }
|
|
|
|
+ Criteria and=new Criteria();
|
|
|
|
+ Criteria[] cas=new Criteria[cs.size()];
|
|
|
|
+ if (StringUtils.isNotBlank(req.getId())) {
|
|
|
|
+ and.andOperator(cs.toArray(cas));
|
|
|
|
+ query=Query.query(new Criteria().orOperator(and,Criteria.where("id").is(req.getId())));
|
|
|
|
+ }else {
|
|
|
|
+ and.andOperator(cs.toArray(cas));
|
|
|
|
+ query=Query.query(and);
|
|
}
|
|
}
|
|
|
|
|
|
long total = this.mongoTemplate.count(query, RandomPaper.class);
|
|
long total = this.mongoTemplate.count(query, RandomPaper.class);
|