|
@@ -24,6 +24,9 @@ import org.springframework.data.domain.Example;
|
|
|
import org.springframework.data.domain.Page;
|
|
|
import org.springframework.data.domain.PageImpl;
|
|
|
import org.springframework.data.domain.PageRequest;
|
|
|
+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;
|
|
@@ -70,7 +73,12 @@ import cn.com.qmth.examcloud.core.questions.service.QuestionAudioService;
|
|
|
import cn.com.qmth.examcloud.core.questions.base.BeanCopierUtil;
|
|
|
import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
|
|
|
import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
|
|
|
+import cn.com.qmth.examcloud.commons.base.exception.StatusException;
|
|
|
import cn.com.qmth.examcloud.commons.base.util.JsonUtil;
|
|
|
+import cn.com.qmth.examcloud.examwork.api.ExamCloudService;
|
|
|
+import cn.com.qmth.examcloud.examwork.api.bean.ExamBean;
|
|
|
+import cn.com.qmth.examcloud.examwork.api.request.GetExamReq;
|
|
|
+import cn.com.qmth.examcloud.examwork.api.response.GetExamResp;
|
|
|
|
|
|
/**
|
|
|
*
|
|
@@ -149,7 +157,9 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
|
|
|
|
|
|
@Autowired
|
|
|
private PaperDetailUnitNativeRepo detailUnitNativeRepo;
|
|
|
-
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ExamCloudService examCloudService;
|
|
|
|
|
|
@Override
|
|
|
public ExtractConfig findConfig(ExtractConfig condition) {
|
|
@@ -931,30 +941,32 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Page<ExtractConfig> findPageExtractConfig(int currentPage,int pageSize, Long examId, String courseNo, String courseLevel) {
|
|
|
- String examCourseJson = examCourseClient.findPageExamCourse(examId,courseNo,currentPage,pageSize,courseLevel);
|
|
|
-
|
|
|
- PageExamCourse pageExamCourse = JsonUtil.fromJson(examCourseJson,PageExamCourse.class);
|
|
|
- //GsonUtil.getInstanceByJson(examCourseJson,PageExamCourse.class);
|
|
|
-
|
|
|
- List<ExamCourseDto> examCourseList = pageExamCourse.getContent();
|
|
|
- if(examCourseList.size()==0){
|
|
|
- throw new RuntimeException("考务系统无数据返回");
|
|
|
+ public Page<ExtractConfig> findPageExtractConfig(int currentPage,int pageSize, Long examId, String courseCode, String orgId) {
|
|
|
+ if(examId == null){
|
|
|
+ throw new StatusException("Q-","examId is null");
|
|
|
}
|
|
|
- List<ExtractConfig> extractConfigs = new ArrayList<ExtractConfig>();
|
|
|
- for(ExamCourseDto examCourseDto:examCourseList){
|
|
|
- ExtractConfig condition = new ExtractConfig();
|
|
|
- condition.setExamId(examCourseDto.getExamId());
|
|
|
- condition.setCourseCode(examCourseDto.getCourseCode());
|
|
|
- ExtractConfig extractConfig = this.findConfig(condition);
|
|
|
- if(extractConfig==null){
|
|
|
- extractConfig = new ExtractConfig(examCourseDto);
|
|
|
- Course course = courseRepo.findFirstByCodeAndOrgId(examCourseDto.getCourseCode(),examCourseDto.getOrgId().toString());
|
|
|
- extractConfig.setCourse(course);
|
|
|
- }
|
|
|
- extractConfigs.add(extractConfig);
|
|
|
+ Query query = new Query();
|
|
|
+ query.addCriteria(Criteria.where("orgId").is(orgId));
|
|
|
+ query.addCriteria(Criteria.where("examId").is(examId));
|
|
|
+ if(!StringUtils.isBlank(courseCode)){
|
|
|
+ query.addCriteria(Criteria.where("courseCode").is(courseCode));
|
|
|
}
|
|
|
- return new PageImpl<ExtractConfig>(extractConfigs,new PageRequest(currentPage,pageSize),pageExamCourse.getTotalElements());
|
|
|
+ long count = this.mongoTemplate.count(query, ExtractConfig.class);
|
|
|
+ query.limit(pageSize);
|
|
|
+ query.skip((currentPage - 1) * pageSize);
|
|
|
+ List<ExtractConfig> extractConfigList = this.mongoTemplate.find(query, ExtractConfig.class);
|
|
|
+ if(extractConfigList != null && extractConfigList.size()>0){
|
|
|
+ //调用考务rmi,获取考试信息
|
|
|
+ GetExamReq req = new GetExamReq();
|
|
|
+ req.setId(examId);
|
|
|
+ req.setRootOrgId(Long.valueOf(orgId));
|
|
|
+ GetExamResp resp = examCloudService.getExam(req);
|
|
|
+ ExamBean bean = resp.getExamBean();
|
|
|
+ for(ExtractConfig extractConfig:extractConfigList){
|
|
|
+ extractConfig.setExamType(bean.getExamType());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return new PageImpl<ExtractConfig>(extractConfigList,new PageRequest(currentPage,pageSize),count);
|
|
|
}
|
|
|
|
|
|
@Override
|