wangwei 7 ani în urmă
părinte
comite
4508f1cd83

+ 0 - 272
examcloud-exchange-outer-service/src/main/java/cn/com/qmth/examcloud/exchange/outer/service/ExamStudentImportService.java

@@ -1,272 +0,0 @@
-package cn.com.qmth.examcloud.exchange.outer.service;
-
-import java.util.Date;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.ResponseEntity;
-import org.springframework.stereotype.Service;
-
-import cn.com.qmth.examcloud.common.dto.core.User;
-import cn.com.qmth.examcloud.common.dto.core.enums.CourseLevel;
-import cn.com.qmth.examcloud.exchange.base.enums.OutletOrgType;
-import cn.com.qmth.examcloud.exchange.base.exception.NoSuchCourseLevelException;
-import cn.com.qmth.examcloud.exchange.base.exception.NoSuchExamException;
-import cn.com.qmth.examcloud.exchange.base.exception.SaveExamException;
-import cn.com.qmth.examcloud.exchange.base.exception.SaveExamStudentException;
-import cn.com.qmth.examcloud.exchange.dao.bean.ExamStudentImportDTO;
-import cn.com.qmth.examcloud.exchange.dao.bean.OutletCourse;
-import cn.com.qmth.examcloud.exchange.dao.bean.OutletExam;
-import cn.com.qmth.examcloud.exchange.dao.bean.OutletExamStudent;
-import cn.com.qmth.examcloud.exchange.dao.bean.OutletOrg;
-import cn.com.qmth.examcloud.exchange.dao.bean.OutletStudent;
-import cn.com.qmth.examcloud.exchange.outer.service.client.CourseClient;
-import cn.com.qmth.examcloud.exchange.outer.service.client.ExamClient;
-import cn.com.qmth.examcloud.exchange.outer.service.client.ExamStudentClient;
-import cn.com.qmth.examcloud.exchange.outer.service.client.OrgClient;
-import cn.com.qmth.examcloud.exchange.outer.service.client.StudentClient;
-
-/**
- * Created by yuanpan on 2017/4/25.
- */
-@Service
-public class ExamStudentImportService {
-	
-	private static final Logger log = LoggerFactory.getLogger(ExamStudentImportService.class);
-
-    @Autowired
-    private OrgClient orgClient;
-
-    @Autowired
-    private ExamClient examClient;
-
-    @Autowired
-    private CourseClient courseClient;
-
-    @Autowired
-    private StudentClient studentClient;
-
-    @Autowired
-    private ExamStudentClient examStudentClient;
-
-
-    /**
-     * 石油大学
-	 * 1.保存考试信息
-	 * 2.保存学习中心
-	 * 3.保存课程
-	 * 4.保存学生信息
-	 * 5.保存考生信息
-     * @param rootOrgId
-     * @param examStudentImportDTO
-     * @throws NoSuchExamException
-     * @throws NoSuchCourseLevelException
-     */
-    public Long save(String userToken, Long rootOrgId, ExamStudentImportDTO examStudentImportDTO) throws NoSuchCourseLevelException, NoSuchExamException, SaveExamException, SaveExamStudentException {
-    	log.info("创建考试和导入学生开始");
-    	OutletExam exam = saveExam(examStudentImportDTO,userToken,rootOrgId);
-        List<OutletExamStudent> examStudentList = examStudentImportDTO.getExamStudentList();
-        for (OutletExamStudent examStudent : examStudentList) {
-        	OutletOrg org = saveOrg(examStudent,userToken,rootOrgId);
-            
-        	saveCourse(examStudent,userToken,rootOrgId);
-        	
-        	OutletStudent student = saveStudent(examStudent,org,userToken,rootOrgId);
-        	
-        	saveExamStudent(examStudent,student,org,exam,userToken,rootOrgId);
-        }
-        log.info("创建考试和导入学生完成");
-        return exam.getId();
-    }
-    
-    /**
-     * 保存考试信息
-     * @param examStudentImportDTO
-     * @param userToken
-     * @param rootOrgId
-     * @return
-     * @throws SaveExamException
-     */
-	private OutletExam saveExam(ExamStudentImportDTO examStudentImportDTO,String userToken,Long rootOrgId) throws SaveExamException {
-		OutletExam exam = examStudentImportDTO.getExam();
-		log.info("1.保存考试信息,考试批次:"+exam.getRemark());
-        ResponseEntity<List<OutletExam>> examListResp = examClient.queryByRemark(userToken, exam.getRemark());
-        //判断考试是否存在
-        if (examListResp != null && examListResp.getBody() != null && examListResp.getBody().size() > 0) {
-            exam = examListResp.getBody().get(0);
-        } else {
-        	exam.setEnable(true);//默认开启考试
-            exam.setOrgId(rootOrgId);
-            ResponseEntity<OutletExam> saveExamResp = null;
-            try {
-                saveExamResp = examClient.save(userToken, exam);
-            } catch (Exception e) {
-                throw new SaveExamException();
-            }
-            exam = saveExamResp.getBody();
-        }
-        return exam;
-	}
-
-	/**
-     * 保存学习中心
-     * @param examStudent
-     * @param userToken
-     * @param rootOrgId
-     * @return
-     */
-    private OutletOrg saveOrg(OutletExamStudent examStudent,String userToken,Long rootOrgId){
-    	log.info("2.保存学习中心,学习中心code:"+examStudent.getOrgCode());
-    	//判断学习中心是否存在,不存在则创建
-        String orgCode = examStudent.getOrgCode();
-        //根据orgCode,查询学习中心
-        ResponseEntity<OutletOrg> orgResponseEntity = orgClient.findByParentIdAndCode(userToken, rootOrgId, orgCode);
-        OutletOrg org = orgResponseEntity.getBody();
-        if (org == null) {
-            org = new OutletOrg();
-            org.setName(examStudent.getOrgName());
-            org.setCode(examStudent.getOrgCode());
-            org.setParentId(rootOrgId);
-            org.setRootId(rootOrgId);
-            org.setEnable(true);
-            org.setType(OutletOrgType.SCHOOL);
-            org.setApps("ecs_oe");
-            ResponseEntity<OutletOrg> saveOrgResp = orgClient.save(userToken, org);
-            org = saveOrgResp.getBody();
-        }
-        return org;
-    }
-    
-    /**
-     * 保存课程
-     * @param examStudent
-     * @param userToken
-     * @param rootOrgId
-     * @throws NoSuchCourseLevelException
-     */
-    private void saveCourse(OutletExamStudent examStudent,String userToken,Long rootOrgId) throws NoSuchCourseLevelException{
-    	//判断课程是否存在,不存在则新增
-    	CourseLevel courseLevel = getCourseLevelByCName(examStudent.getCourseLevel());
-    	String courseCode = examStudent.getCourseCode();
-    	if(courseLevel != null){
-    		courseCode = courseLevel.getAbbreviate()+examStudent.getCourseCode();
-    	}
-        log.info("3.保存课程,课程code:"+courseCode);
-        examStudent.setCourseCode(courseCode);
-        ResponseEntity<OutletCourse> getCourseResp = courseClient.getCourseByCode(userToken, rootOrgId, examStudent.getCourseCode());
-        OutletCourse course = getCourseResp.getBody();
-        if (course == null) {
-            course = new OutletCourse();
-            course.setOrgId(rootOrgId);
-            course.setEnable(true);
-            course.setCode(examStudent.getCourseCode());
-            course.setCreateTime(new Date());
-            course.setLevel(getCourseLevelByCName(examStudent.getCourseLevel()));
-            course.setName(examStudent.getCourseName());
-            ResponseEntity<OutletCourse> saveCourseResp = courseClient.save(userToken, course);
-            course = saveCourseResp.getBody();
-        }
-    }
-    
-    /**
-     * 保存学生信息
-     * @param examStudent
-     * @param org
-     * @param userToken
-     * @param rootOrgId
-     * @return
-     */
-    private OutletStudent saveStudent(OutletExamStudent examStudent,OutletOrg org,String userToken,Long rootOrgId) {
-    	//保存学生信息,在保存学生信息的接口中会自动保存用户信息,所以不需要单独调用UserApi去保存用户信息
-    	log.info("4.保存学生信息,学生身份证号:"+examStudent.getIdentityNumber());
-    	OutletStudent student = new OutletStudent();
-        student.setIdentityNumber(examStudent.getIdentityNumber());
-        student.setName(examStudent.getName());
-        student.setStudentCode(examStudent.getStudentCode());
-        User user = new User();
-        user.setOrgId(org.getId());
-        user.setRootOrgId(rootOrgId);
-        user.setEnable(true);
-        student.setUser(user);
-        //查询学生信息是否存在
-        List<OutletStudent> studentList = studentClient.getStudentByIdentityNumber(userToken, examStudent.getIdentityNumber()).getBody();
-        if (studentList == null || studentList.size() < 1) {
-            ResponseEntity<OutletStudent> saveStudentResp = studentClient.save(userToken, student);
-            student = saveStudentResp.getBody();
-        } else {
-        	OutletStudent stu = studentList.get(0);
-            student.setOrgId(org.getId());
-            student.setRootOrgId(rootOrgId);
-            student.setId(stu.getId());
-            student.setUser(stu.getUser());
-            ResponseEntity<OutletStudent> updateStudentResp = studentClient.updateStudent(userToken,student);
-            student = updateStudentResp.getBody();
-        }
-        return student;
-	}
-    
-    /**
-     * 保存考生信息
-     * @param examStudent
-     * @param student
-     * @param org
-     * @param exam
-     * @param userToken
-     * @param rootOrgId
-     * @throws NoSuchCourseLevelException
-     * @throws SaveExamStudentException
-     */
-	private void saveExamStudent(OutletExamStudent examStudent,OutletStudent student,OutletOrg org,OutletExam exam,String userToken,Long rootOrgId) throws NoSuchCourseLevelException, SaveExamStudentException {
-		log.info("5.保存考生信息,考试ID:"+exam.getId()
-							  +"课程code:"+examStudent.getCourseCode()
-							  +",考生身份证号:"+examStudent.getIdentityNumber());
-		//判断考生信息是否存在
-        ResponseEntity<List<OutletExamStudent>> examStudentListResp = examStudentClient.queryExamStudent(userToken, examStudent.getIdentityNumber(), exam.getId(), examStudent.getCourseCode());
-        if (examStudentListResp != null && examStudentListResp.getBody() != null && examStudentListResp.getBody().size() > 0) {
-        	//学生该门课程考试已经存在
-        	List<OutletExamStudent> examStudents = examStudentListResp.getBody();
-        	OutletExamStudent examStudentOld = examStudents.get(0);
-        	//更新相关的姓名、学习中心、专业
-        	examStudentOld.setName(student.getName());
-        	examStudentOld.setOrgId(org.getId());
-        	examStudentOld.setOrgCode(org.getCode());
-        	examStudentOld.setOrgName(org.getName());
-        	examStudentOld.setRootOrgId(rootOrgId);
-        	examStudentOld.setSpecialtyName(examStudent.getSpecialtyName());
-        	 try {
-                 examStudentClient.save(userToken, examStudentOld);
-             } catch (Exception e) {
-                 throw new SaveExamStudentException("保存考生时候出现异常", e);
-             }
-        } else {
-            //学生的该门课程考试不存在
-            examStudent.setStudentId(student.getId());
-            examStudent.setOrgId(org.getId());
-            examStudent.setRootOrgId(rootOrgId);
-            examStudent.setExam(exam);
-            examStudent.setFinished(false);
-            examStudent.setCourseLevel(getCourseLevelByCName(examStudent.getCourseLevel())+"");
-            try {
-                examStudentClient.save(userToken, examStudent);
-            } catch (Exception e) {
-                throw new SaveExamStudentException("保存考生时候出现异常", e);
-            }
-        }
-	}
-    
-    private CourseLevel getCourseLevelByCName(String cname){
-    	if(StringUtils.isBlank(cname)){
-    		return null;
-    	}
-        for(CourseLevel level:CourseLevel.values()){
-        	if(cname.equals(level.getName())){
-        		return level;
-        	}
-        }
-        return null;
-    }
-
-}