|
@@ -13,6 +13,7 @@ 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.PageRequest;
|
|
import org.springframework.data.domain.PageRequest;
|
|
|
|
+import org.springframework.data.domain.Pageable;
|
|
import org.springframework.data.domain.Sort;
|
|
import org.springframework.data.domain.Sort;
|
|
import org.springframework.data.domain.Sort.Direction;
|
|
import org.springframework.data.domain.Sort.Direction;
|
|
import org.springframework.data.jpa.domain.Specification;
|
|
import org.springframework.data.jpa.domain.Specification;
|
|
@@ -40,6 +41,7 @@ import cn.com.qmth.examcloud.core.examwork.service.bean.ExamInfo;
|
|
import cn.com.qmth.examcloud.core.examwork.service.impl.ExamServiceImpl;
|
|
import cn.com.qmth.examcloud.core.examwork.service.impl.ExamServiceImpl;
|
|
import cn.com.qmth.examcloud.examwork.api.ExamCloudService;
|
|
import cn.com.qmth.examcloud.examwork.api.ExamCloudService;
|
|
import cn.com.qmth.examcloud.examwork.api.bean.ExamBean;
|
|
import cn.com.qmth.examcloud.examwork.api.bean.ExamBean;
|
|
|
|
+import cn.com.qmth.examcloud.examwork.api.request.GetExamListReq;
|
|
import cn.com.qmth.examcloud.examwork.api.request.GetExamPropertyReq;
|
|
import cn.com.qmth.examcloud.examwork.api.request.GetExamPropertyReq;
|
|
import cn.com.qmth.examcloud.examwork.api.request.GetExamReq;
|
|
import cn.com.qmth.examcloud.examwork.api.request.GetExamReq;
|
|
import cn.com.qmth.examcloud.examwork.api.request.GetOngoingExamListReq;
|
|
import cn.com.qmth.examcloud.examwork.api.request.GetOngoingExamListReq;
|
|
@@ -47,6 +49,7 @@ import cn.com.qmth.examcloud.examwork.api.request.LockExamStudentsReq;
|
|
import cn.com.qmth.examcloud.examwork.api.request.SaveExamReq;
|
|
import cn.com.qmth.examcloud.examwork.api.request.SaveExamReq;
|
|
import cn.com.qmth.examcloud.examwork.api.request.SetExamPropertyReq;
|
|
import cn.com.qmth.examcloud.examwork.api.request.SetExamPropertyReq;
|
|
import cn.com.qmth.examcloud.examwork.api.request.UnlockExamStudentsReq;
|
|
import cn.com.qmth.examcloud.examwork.api.request.UnlockExamStudentsReq;
|
|
|
|
+import cn.com.qmth.examcloud.examwork.api.response.GetExamListResp;
|
|
import cn.com.qmth.examcloud.examwork.api.response.GetExamPropertyResp;
|
|
import cn.com.qmth.examcloud.examwork.api.response.GetExamPropertyResp;
|
|
import cn.com.qmth.examcloud.examwork.api.response.GetExamResp;
|
|
import cn.com.qmth.examcloud.examwork.api.response.GetExamResp;
|
|
import cn.com.qmth.examcloud.examwork.api.response.GetOngoingExamListResp;
|
|
import cn.com.qmth.examcloud.examwork.api.response.GetOngoingExamListResp;
|
|
@@ -328,4 +331,74 @@ public class ExamCloudServiceProvider extends ControllerSupport implements ExamC
|
|
return resp;
|
|
return resp;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @ApiOperation(value = "查询考试集合")
|
|
|
|
+ @PostMapping("getExamList")
|
|
|
|
+ @Override
|
|
|
|
+ public GetExamListResp getExamList(@RequestBody GetExamListReq req) {
|
|
|
|
+
|
|
|
|
+ Long rootOrgId = req.getRootOrgId();
|
|
|
|
+ Boolean enable = req.getEnable();
|
|
|
|
+ List<String> examTypeList = req.getExamTypeList();
|
|
|
|
+
|
|
|
|
+ List<ExamType> examTypes = Lists.newArrayList();
|
|
|
|
+ if (CollectionUtils.isNotEmpty(examTypeList)) {
|
|
|
|
+ for (String cur : examTypeList) {
|
|
|
|
+ examTypes.add(ExamType.valueOf(cur));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ final long start = null == req.getStart() ? 1 : req.getStart();
|
|
|
|
+
|
|
|
|
+ Pageable pageable = new PageRequest(0, 100, Sort.Direction.ASC, "id");
|
|
|
|
+
|
|
|
|
+ Specification<ExamEntity> specification = (root, query, cb) -> {
|
|
|
|
+ List<Predicate> predicates = new ArrayList<>();
|
|
|
|
+ predicates.add(cb.equal(root.get("rootOrgId"), rootOrgId));
|
|
|
|
+
|
|
|
|
+ predicates.add(cb.greaterThanOrEqualTo(root.get("id"), start));
|
|
|
|
+
|
|
|
|
+ if (null != enable) {
|
|
|
|
+ predicates.add(cb.equal(root.get("enable"), enable));
|
|
|
|
+ }
|
|
|
|
+ if (CollectionUtils.isNotEmpty(examTypes)) {
|
|
|
|
+ predicates.add(root.get("examType").in(examTypes));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return cb.and(predicates.toArray(new Predicate[predicates.size()]));
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ Page<ExamEntity> page = examRepo.findAll(specification, pageable);
|
|
|
|
+
|
|
|
|
+ Iterator<ExamEntity> iterator = page.iterator();
|
|
|
|
+
|
|
|
|
+ List<ExamBean> list = Lists.newArrayList();
|
|
|
|
+ long next = start;
|
|
|
|
+ while (iterator.hasNext()) {
|
|
|
|
+ ExamEntity cur = iterator.next();
|
|
|
|
+ ExamBean bean = new ExamBean();
|
|
|
|
+ list.add(bean);
|
|
|
|
+
|
|
|
|
+ bean.setId(cur.getId());
|
|
|
|
+ bean.setBeginTime(cur.getBeginTime());
|
|
|
|
+ bean.setDuration(cur.getDuration());
|
|
|
|
+ bean.setEnable(cur.getEnable());
|
|
|
|
+ bean.setEndTime(cur.getEndTime());
|
|
|
|
+ bean.setExamTimes(cur.getExamTimes());
|
|
|
|
+ bean.setExamType(cur.getExamType().name());
|
|
|
|
+ bean.setName(cur.getName());
|
|
|
|
+ bean.setRemark(cur.getRemark());
|
|
|
|
+ bean.setRootOrgId(cur.getRootOrgId());
|
|
|
|
+
|
|
|
|
+ next = cur.getId();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ GetExamListResp resp = new GetExamListResp();
|
|
|
|
+ if (next != start) {
|
|
|
|
+ next++;
|
|
|
|
+ }
|
|
|
|
+ resp.setNext(next);
|
|
|
|
+ resp.setExamList(list);
|
|
|
|
+ return resp;
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|