|
@@ -20,6 +20,7 @@ import java.util.Set;
|
|
|
import java.util.UUID;
|
|
|
import java.util.regex.Matcher;
|
|
|
import java.util.regex.Pattern;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.io.FileUtils;
|
|
@@ -358,6 +359,41 @@ public class PaperServiceImpl implements PaperService {
|
|
|
Query query = new Query();
|
|
|
query.addCriteria(Criteria.where("orgId").is(paperSearchInfo.getOrgId()));
|
|
|
query.addCriteria(Criteria.where("paperType").is(PaperType.GENERATE.name()));
|
|
|
+ query.addCriteria(Criteria.where("storage").ne(1));
|
|
|
+ query.addCriteria(Criteria.where("course.enable").is("true"));
|
|
|
+ if (StringUtils.isNotBlank(paperSearchInfo.getCourseNo())) {
|
|
|
+ query.addCriteria(Criteria.where("course.code").is(paperSearchInfo.getCourseNo()));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNoneBlank(paperSearchInfo.getName())) {
|
|
|
+ String paperName = CommonUtils.escapeExprSpecialWord(paperSearchInfo.getName());
|
|
|
+ query.addCriteria(Criteria.where("name").regex(".*?\\.*" + paperName + ".*"));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(paperSearchInfo.getLevel())) {
|
|
|
+ query.addCriteria(Criteria.where("course.level").is(paperSearchInfo.getLevel()));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNoneBlank(paperSearchInfo.getCreator())) {
|
|
|
+ String creator = CommonUtils.escapeExprSpecialWord(paperSearchInfo.getCreator());
|
|
|
+ query.addCriteria(Criteria.where("creator").regex(".*?\\.*" + creator + ".*"));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNoneBlank(paperSearchInfo.getLastModifyName())) {
|
|
|
+ String lastModifyName = CommonUtils.escapeExprSpecialWord(paperSearchInfo.getLastModifyName());
|
|
|
+ query.addCriteria(Criteria.where("lastModifyName").regex(".*?\\.*" + lastModifyName + ".*"));
|
|
|
+ }
|
|
|
+ long count = this.mongoTemplate.count(query, Paper.class);
|
|
|
+ query.with(new Sort(new Order(Direction.DESC, "createTime")));
|
|
|
+ query.limit(pageSize);
|
|
|
+ query.skip((curPage - 1L) * pageSize);
|
|
|
+ List<Paper> paperList = this.mongoTemplate.find(query, Paper.class);
|
|
|
+ setPaperQuesCountAndScore(paperList);
|
|
|
+ return new PageImpl<Paper>(paperList, new PageRequest(curPage - 1, pageSize), count);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Page<Paper> getStoragePaperPage(PaperSearchInfo paperSearchInfo, int curPage, int pageSize) {
|
|
|
+ Query query = new Query();
|
|
|
+ query.addCriteria(Criteria.where("orgId").is(paperSearchInfo.getOrgId()));
|
|
|
+ query.addCriteria(Criteria.where("paperType").is(PaperType.GENERATE.name()));
|
|
|
+ query.addCriteria(Criteria.where("storage").is(1));
|
|
|
query.addCriteria(Criteria.where("course.enable").is("true"));
|
|
|
if (StringUtils.isNotBlank(paperSearchInfo.getCourseNo())) {
|
|
|
query.addCriteria(Criteria.where("course.code").is(paperSearchInfo.getCourseNo()));
|
|
@@ -545,6 +581,18 @@ public class PaperServiceImpl implements PaperService {
|
|
|
});
|
|
|
paperRepo.saveAll(papers);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void updatePapersStorage(List<String> paperIds,int storage,String orgId) {
|
|
|
+ List<Paper> papers = CommonUtils.toList(paperRepo.findByIdIn(paperIds));
|
|
|
+ List<Paper> papersList=papers.stream().filter(p-> orgId.equals(p.getOrgId())).collect(Collectors.toList());
|
|
|
+ papersList.stream().forEach(paper -> {
|
|
|
+ paper.setStorage(storage);
|
|
|
+ });
|
|
|
+ if(papersList.size()>0) {
|
|
|
+ paperRepo.saveAll(papersList);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 批量不通过试卷
|