|
@@ -1,19 +1,28 @@
|
|
|
package cn.iselab.mooctest.site.service.impl;
|
|
package cn.iselab.mooctest.site.service.impl;
|
|
|
|
|
|
|
|
|
|
+import cn.iselab.mooctest.site.common.constant.SubsiteConstants;
|
|
|
import cn.iselab.mooctest.site.dao.Exam2PaperDao;
|
|
import cn.iselab.mooctest.site.dao.Exam2PaperDao;
|
|
|
import cn.iselab.mooctest.site.dao.PaperDao;
|
|
import cn.iselab.mooctest.site.dao.PaperDao;
|
|
|
import cn.iselab.mooctest.site.dao.Task2CaseDao;
|
|
import cn.iselab.mooctest.site.dao.Task2CaseDao;
|
|
|
|
|
+import cn.iselab.mooctest.site.models.CaseExtends;
|
|
|
import cn.iselab.mooctest.site.models.Exam2Paper;
|
|
import cn.iselab.mooctest.site.models.Exam2Paper;
|
|
|
import cn.iselab.mooctest.site.models.Paper;
|
|
import cn.iselab.mooctest.site.models.Paper;
|
|
|
import cn.iselab.mooctest.site.models.Task2Case;
|
|
import cn.iselab.mooctest.site.models.Task2Case;
|
|
|
import cn.iselab.mooctest.site.service.BaseService;
|
|
import cn.iselab.mooctest.site.service.BaseService;
|
|
|
import cn.iselab.mooctest.site.service.PaperService;
|
|
import cn.iselab.mooctest.site.service.PaperService;
|
|
|
import cn.iselab.mooctest.site.web.data.CaseBlockVO;
|
|
import cn.iselab.mooctest.site.web.data.CaseBlockVO;
|
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.domain.Page;
|
|
import org.springframework.data.domain.Page;
|
|
|
import org.springframework.data.domain.Pageable;
|
|
import org.springframework.data.domain.Pageable;
|
|
|
|
|
+import org.springframework.data.jpa.domain.Specification;
|
|
|
|
|
+import org.springframework.data.jpa.domain.Specifications;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
+import javax.persistence.criteria.CriteriaBuilder;
|
|
|
|
|
+import javax.persistence.criteria.CriteriaQuery;
|
|
|
|
|
+import javax.persistence.criteria.Predicate;
|
|
|
|
|
+import javax.persistence.criteria.Root;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -46,13 +55,15 @@ public class PaperServiceImpl extends BaseService implements PaperService {
|
|
|
paperDao.delete(paperId);
|
|
paperDao.delete(paperId);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public Page<Paper> findAll(Pageable pageable) {
|
|
|
|
|
- return paperDao.findAll(pageable);
|
|
|
|
|
|
|
+ public Page<Paper> findAll(Pageable pageable, String keyword) {
|
|
|
|
|
+ Specifications<Paper> where = Specifications.where(getWhereClause(null, keyword));
|
|
|
|
|
+ return paperDao.findAll(where, pageable);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public Page<Paper> findAllByOwnerId(long ownerId, Pageable pageable) {
|
|
|
|
|
- return paperDao.findByOwnerId(ownerId,pageable);
|
|
|
|
|
|
|
+ public Page<Paper> findAllByOwnerId(long ownerId, String keyword, Pageable pageable) {
|
|
|
|
|
+ Specifications<Paper> where = Specifications.where(getWhereClause(ownerId, keyword));
|
|
|
|
|
+ return paperDao.findAll(where, pageable);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -111,5 +122,25 @@ public class PaperServiceImpl extends BaseService implements PaperService {
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private Specification<Paper> getWhereClause(Long ownerId, String keyword) {
|
|
|
|
|
+ return new Specification<Paper>() {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public Predicate toPredicate(Root<Paper> a, CriteriaQuery<?> q, CriteriaBuilder cb) {
|
|
|
|
|
+ Predicate predicate = cb.conjunction();
|
|
|
|
|
+ if(ownerId!=null) {
|
|
|
|
|
+ predicate.getExpressions().add(
|
|
|
|
|
+ cb.equal(a.<Long>get("ownerId"), ownerId)
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+ if(keyword!=null) {
|
|
|
|
|
+ predicate.getExpressions().add(
|
|
|
|
|
+ cb.like(a.<String>get("name"), "%" + StringUtils.trim(keyword) + "%")
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+ return predicate;
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
|
|
|
}
|
|
}
|