wangwei 7 ani în urmă
părinte
comite
2a8cf1bad6
18 a modificat fișierele cu 21 adăugiri și 1168 ștergeri
  1. 13 40
      examcloud-core-examwork-api-provider/src/main/java/cn/com/qmth/examcloud/core/examwork/api/controller/ExamController.java
  2. 3 192
      examcloud-core-examwork-api-provider/src/main/java/cn/com/qmth/examcloud/core/examwork/api/controller/ExamStudentController.java
  3. 0 11
      examcloud-core-examwork-service/pom.xml
  4. 2 42
      examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/impl/ExamService.java
  5. 0 478
      examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/impl/ExamStudentServiceImpl.java
  6. 0 82
      examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/mq/DataReceiveService.java
  7. 0 26
      examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/mq/DataSendService.java
  8. 0 35
      examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/rpc/CourseService.java
  9. 0 24
      examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/rpc/OeService.java
  10. 0 35
      examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/rpc/OrgService.java
  11. 0 30
      examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/rpc/SpecialtyService.java
  12. 0 49
      examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/rpc/StudentService.java
  13. 0 25
      examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/rpc/client/CourseClient.java
  14. 0 20
      examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/rpc/client/OeClient.java
  15. 0 21
      examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/rpc/client/OrgClient.java
  16. 0 20
      examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/rpc/client/SpecialtyClient.java
  17. 0 31
      examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/rpc/client/StudentClient.java
  18. 3 7
      examcloud-core-examwork-starter/src/main/java/cn/com/qmth/examcloud/core/examwork/starter/CoreExamWorkApp.java

+ 13 - 40
examcloud-core-examwork-api-provider/src/main/java/cn/com/qmth/examcloud/core/examwork/api/controller/ExamController.java

@@ -49,7 +49,6 @@ import cn.com.qmth.examcloud.core.examwork.dao.entity.CourseGroupEntity;
 import cn.com.qmth.examcloud.core.examwork.dao.entity.CourseGroupRelation;
 import cn.com.qmth.examcloud.core.examwork.dao.entity.Exam;
 import cn.com.qmth.examcloud.core.examwork.dao.entity.ExamOrgEntity;
-import cn.com.qmth.examcloud.core.examwork.dao.entity.ExamStudent;
 import cn.com.qmth.examcloud.core.examwork.dao.enums.ExamType;
 import cn.com.qmth.examcloud.core.examwork.service.impl.ExamService;
 import cn.com.qmth.examcloud.core.examwork.service.impl.ExamStudentServiceImpl;
@@ -97,13 +96,13 @@ public class ExamController extends ControllerSupport {
 
 	@ApiOperation(value = "查询所有考试批次(包含有效)", notes = "不分页带查询")
 	@GetMapping("all")
-	public ResponseEntity getEnableExam(HttpServletRequest request,
-			@ModelAttribute Exam examCriteria) {
+	public List<Exam> getEnableExam(HttpServletRequest request, @ModelAttribute Exam examCriteria) {
 		User accessUser = getAccessUser();
 
 		examCriteria.setRootOrgId(accessUser.getRootOrgId());
 		examCriteria.setEnable(true);
-		return new ResponseEntity(examService.getAllExam(examCriteria), HttpStatus.OK);
+		List<Exam> list = examService.getAllExam(examCriteria);
+		return list;
 	}
 
 	/**
@@ -137,7 +136,7 @@ public class ExamController extends ControllerSupport {
 
 	@ApiOperation(value = "根据机构ID和考试类型查询所有有效考试批次", notes = "根据机构ID和考试类型查询所有有效考试批次")
 	@GetMapping("rootOrgId/{rootOrgId}/{examType}")
-	public ResponseEntity getEnableExamByRootOrgId(@PathVariable Long rootOrgId,
+	public List<Exam> getEnableExamByRootOrgId(@PathVariable Long rootOrgId,
 			@PathVariable String examType) {
 		Exam examCriteria = new Exam();
 		examCriteria.setRootOrgId(rootOrgId);
@@ -145,7 +144,8 @@ public class ExamController extends ControllerSupport {
 			examCriteria.setExamType(ExamType.valueOf(examType));
 		}
 		examCriteria.setEnable(true);
-		return new ResponseEntity(examService.getAllExam(examCriteria), HttpStatus.OK);
+		List<Exam> list = examService.getAllExam(examCriteria);
+		return list;
 	}
 
 	@ApiOperation(value = "查询所有考试批次(包含有效无效)", notes = "不分页带查询")
@@ -159,15 +159,16 @@ public class ExamController extends ControllerSupport {
 
 	@ApiOperation(value = "根据名称查询考试批次(包含有效)", notes = "不分页带查询")
 	@GetMapping("name")
-	public ResponseEntity getEnableExamByName(HttpServletRequest request,
+	public List<Exam> getEnableExamByName(HttpServletRequest request,
 			@ModelAttribute Exam examCriteria) {
-		cn.com.qmth.examcloud.commons.web.security.bean.User accessUser = getAccessUser();
+		User accessUser = getAccessUser();
 		if (accessUser != null) {
 			examCriteria.setRootOrgId(accessUser.getRootOrgId());
 		}
 		examCriteria.setEnable(true);
-		return new ResponseEntity(examService.findByNameAndRootOrgId(examCriteria.getName(),
-				examCriteria.getRootOrgId()), HttpStatus.OK);
+		List<Exam> list = examService.findByNameAndRootOrgId(examCriteria.getName(),
+				examCriteria.getRootOrgId());
+		return list;
 	}
 
 	@ApiOperation(value = "按ID查询考试批次", notes = "ID查询")
@@ -251,7 +252,7 @@ public class ExamController extends ControllerSupport {
 
 	@ApiOperation(value = "启用考试", notes = "启用考试")
 	@PutMapping("enable/{ids}")
-	public ResponseEntity enableUser(@PathVariable String ids) {
+	public void enableUser(@PathVariable String ids) {
 		List<Long> examIds = Stream.of(ids.split(",")).map(s -> Long.parseLong(s.trim()))
 				.collect(Collectors.toList());
 		for (Long examId : examIds) {
@@ -259,12 +260,11 @@ public class ExamController extends ControllerSupport {
 			exam.setEnable(true);
 			examRepo.save(exam);
 		}
-		return new ResponseEntity(HttpStatus.OK);
 	}
 
 	@ApiOperation(value = "禁用考试", notes = "禁用考试")
 	@PutMapping("disable/{ids}")
-	public ResponseEntity disableUser(@PathVariable String ids) {
+	public void disableUser(@PathVariable String ids) {
 		List<Long> examIds = Stream.of(ids.split(",")).map(s -> Long.parseLong(s.trim()))
 				.collect(Collectors.toList());
 		for (Long examId : examIds) {
@@ -272,33 +272,6 @@ public class ExamController extends ControllerSupport {
 			exam.setEnable(false);
 			examRepo.save(exam);
 		}
-		return new ResponseEntity(HttpStatus.OK);
-	}
-
-	@ApiOperation(value = "回填考生不可删除标志", notes = "回填考生不可删除标志")
-	@PutMapping("canNotDel/{id}")
-	public ResponseEntity disableUser(@PathVariable Long id) {
-		examRepo.canNotDel(id);
-		return new ResponseEntity(HttpStatus.OK);
-	}
-
-	@ApiOperation(value = "网考初始化更新考务信息", notes = "网考初始化更新考务信息")
-	@PutMapping("updateExamInfo")
-	public ResponseEntity updateExamInfo(@RequestParam Long examId, @RequestParam Long examStuId) {
-		examRepo.canNotDel(examId);
-		examStudentService.updateExamStudentInfo(examStuId);
-		return new ResponseEntity(HttpStatus.OK);
-	}
-
-	@ApiOperation(value = "网考更新考务信息", notes = "网考更新考务信息")
-	@PutMapping("updateExamStudent")
-	public ResponseEntity updateExamStudent(@RequestParam Long examId,
-			@RequestParam Long examStuId) {
-		examRepo.canNotDel(examId);
-		ExamStudent examStudent = examStudentRepo.findOne(examStuId);
-		examStudent.setFinished(true);
-		examStudentRepo.save(examStudent);
-		return new ResponseEntity(HttpStatus.OK);
 	}
 
 	@ApiOperation(value = "查询课程组集合", notes = "")

+ 3 - 192
examcloud-core-examwork-api-provider/src/main/java/cn/com/qmth/examcloud/core/examwork/api/controller/ExamStudentController.java

@@ -1,10 +1,7 @@
 package cn.com.qmth.examcloud.core.examwork.api.controller;
 
-import java.math.BigInteger;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -13,16 +10,12 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.domain.Sort.Direction;
 import org.springframework.data.jpa.domain.Specification;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -37,9 +30,6 @@ import org.springframework.web.bind.annotation.RestController;
 
 import com.google.common.collect.Lists;
 
-import cn.com.qmth.examcloud.common.dto.core.Course;
-import cn.com.qmth.examcloud.common.dto.examwork.CommonExamStudent;
-import cn.com.qmth.examcloud.commons.base.util.ErrorMsg;
 import cn.com.qmth.examcloud.commons.web.helpers.page.PageInfo;
 import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import cn.com.qmth.examcloud.core.basic.api.StudentCloudService;
@@ -51,7 +41,6 @@ import cn.com.qmth.examcloud.core.examwork.dao.ExamRepo;
 import cn.com.qmth.examcloud.core.examwork.dao.ExamStudentRepo;
 import cn.com.qmth.examcloud.core.examwork.dao.bean.ExamStudentAssembler;
 import cn.com.qmth.examcloud.core.examwork.dao.bean.ExamStudentDTO;
-import cn.com.qmth.examcloud.core.examwork.dao.bean.OrgExamInfoDTO;
 import cn.com.qmth.examcloud.core.examwork.dao.entity.ExamStudent;
 import cn.com.qmth.examcloud.core.examwork.service.bean.ExamStudentInfo;
 import cn.com.qmth.examcloud.core.examwork.service.impl.ExamStudentServiceImpl;
@@ -64,8 +53,6 @@ import io.swagger.annotations.ApiOperation;
 @RequestMapping("${$rmp.ctr.examwork}/exam_student")
 public class ExamStudentController extends ControllerSupport {
 
-	private static final Logger log = LoggerFactory.getLogger(ExamStudentController.class);
-
 	@Autowired
 	ExamStudentRepo examStudentRepo;
 
@@ -199,59 +186,11 @@ public class ExamStudentController extends ControllerSupport {
 		return new PageInfo<ExamStudentDomain>(examStudents, ret);
 	}
 
-	/**
-	 * 
-	 * @return
-	 */
-	@ApiOperation(value = "查询重考考生", notes = "查询重考考生")
-	@PostMapping("/reexamineStudents/{curPage}/{pageSize}")
-	public ResponseEntity getReexamineStudents(
-			@RequestBody CommonExamStudent examStudentSpecification, @PathVariable Integer curPage,
-			@PathVariable Integer pageSize) {
-		try {
-			Page<ExamStudent> pageExamStudents = examStudentService
-					.getReexamineStudent(examStudentSpecification, curPage, pageSize);
-			if (pageExamStudents == null || pageExamStudents.getContent() == null
-					|| pageExamStudents.getContent().size() == 0) {
-				return new ResponseEntity(new ErrorMsg("无数据"), HttpStatus.OK);
-			}
-			return new ResponseEntity(pageExamStudents, HttpStatus.OK);
-		} catch (Exception e) {
-			log.error("调用失败:", e);
-			return new ResponseEntity(new ErrorMsg("调用失败"), HttpStatus.INTERNAL_SERVER_ERROR);
-		}
-	}
-
-	@ApiOperation(value = "查询所有考试学生带条件", notes = "带条件不分页")
-	@GetMapping("/all")
-	public ResponseEntity getAllExamStudent(HttpServletRequest request,
-			@ModelAttribute ExamStudentDTO examStudent) {
-		cn.com.qmth.examcloud.commons.web.security.bean.User accessUser = getAccessUser();
-		if (accessUser != null) {
-			if (accessUser.getRootOrgId().longValue() == accessUser.getOrgId().longValue()
-					|| examStudent.getStudentId() != null) {
-				examStudent.setRootOrgId(accessUser.getRootOrgId());
-			} else {
-				examStudent.setOrgId(accessUser.getOrgId());
-			}
-		}
-		return new ResponseEntity(examStudentService.getAllExamStudent(examStudent), HttpStatus.OK);
-	}
-
-	@ApiOperation(value = "查询所有考试学生带条件", notes = "带条件按照限制查询")
-	@GetMapping("/limit/{examId}/{startLimit}/{endLimit}")
-	public ResponseEntity getExamStudentByLimit(@PathVariable("examId") Long examId,
-			@PathVariable("startLimit") Integer startLimit,
-			@PathVariable("endLimit") Integer endLimit) {
-		List<ExamStudent> examStudents = examStudentService.getExamStudentByLimit(examId,
-				startLimit, endLimit);
-		return new ResponseEntity(examStudents, HttpStatus.OK);
-	}
-
 	@ApiOperation(value = "按ID查询考试学生", notes = "ID查询")
 	@GetMapping("/{id}")
-	public ResponseEntity getExamStudentById(@PathVariable Long id) {
-		return new ResponseEntity(examStudentService.findById(id), HttpStatus.OK);
+	public ExamStudent getExamStudentById(@PathVariable Long id) {
+		ExamStudent es = examStudentService.findById(id);
+		return es;
 	}
 
 	/**
@@ -345,25 +284,6 @@ public class ExamStudentController extends ControllerSupport {
 		return ret;
 	}
 
-	@ApiOperation(value = "更新考试学生缺考状态", notes = "更新缺考")
-	@Transactional
-	@PutMapping("/{id}")
-	public ResponseEntity<ExamStudent> getExamStudentById(@PathVariable Long id,
-			@RequestParam boolean finished) {
-		ExamStudent examStudent = examStudentRepo.findOne(id);
-		examStudent.setFinished(finished);
-		// 进入考试时,判断考试次数是否小于考试信息(ecs_exam)中的考试次数,如果是,考试次数加一
-		long examTimes = examStudent.getExam().getExamTimes();
-		Integer normalTimes = examStudent.getNormalExamTimes();
-		if(normalTimes == null){
-			normalTimes = 0;
-		}
-		if (examTimes > normalTimes) {
-			examStudent.setNormalExamTimes(normalTimes.intValue() + 1);
-		}
-		return new ResponseEntity<ExamStudent>(examStudentRepo.save(examStudent), HttpStatus.OK);
-	}
-
 	/**
 	 * 方法注释
 	 *
@@ -403,18 +323,6 @@ public class ExamStudentController extends ControllerSupport {
 		ExportUtils.exportEXCEL("考生导入模板", ExamStudentDTO.class, list, response);
 	}
 
-	@ApiOperation(value = "照片检验", notes = "检验")
-	@PostMapping("/photo_check")
-	public ResponseEntity photoCheck(@RequestParam Long examId) {
-		try {
-			List<ErrorMsg> errorMsgs = examStudentService.photoCheck(examId);
-			return new ResponseEntity(errorMsgs, HttpStatus.OK);
-		} catch (Exception e) {
-			e.printStackTrace();
-			return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);
-		}
-	}
-
 	@ApiOperation(value = "导出考试学生带条件", notes = "导出")
 	@GetMapping("/export")
 	public void exportExamStudent(@ModelAttribute ExamStudentDTO examCriteria,
@@ -434,101 +342,4 @@ public class ExamStudentController extends ControllerSupport {
 		examStudentService.copyExamStudent(sourceExamId, targetExamId);
 	}
 
-	@ApiOperation(value = "考生完成数量", notes = "考生完成数量")
-	@GetMapping("/count-by-finished")
-	public Map<String, Integer> countByFinished(@RequestParam Long examId) {
-
-		int finished = examStudentRepo.countByExamIdAndFinished(examId, true);
-		int unFinished = examStudentRepo.countByExamIdAndFinished(examId, false);
-		Map<String, Integer> result = new HashMap<>();
-		result.put("finished", finished);
-		result.put("unFinished", unFinished);
-		return result;
-	}
-
-	@ApiOperation(value = "按学习中心统计完成数量", notes = "按学习中心统计完成数量")
-	@GetMapping("/count-by-campus")
-	public List<Map<String, Object>> countByCampus(@RequestParam Long examId) {
-
-		List<Object[]> resultList = examStudentRepo.countByCampusAndFinished(examId);
-		List<Map<String, Object>> returnList = new ArrayList<>();
-		for (Object[] objects : resultList) {
-			Long orgId = ((BigInteger) objects[0]).longValue();
-			String orgName = (String) objects[1];
-			Boolean finished = (Boolean) objects[2];
-			Integer count = ((BigInteger) objects[3]).intValue();
-
-			boolean found = false;
-			for (Map<String, Object> m : returnList) {
-				if (m.get("orgId").equals(orgId)) {
-					found = true;
-
-					if (finished) {
-						m.put("finished", count);
-					} else {
-						m.put("unFinished", count);
-					}
-
-					break;
-				}
-			}
-			if (!found) {
-				Map<String, Object> map = new HashMap<>();
-
-				map.put("orgId", orgId);
-				map.put("orgName", orgName);
-				if (finished) {
-					map.put("finished", count);
-				} else {
-					map.put("unFinished", count);
-				}
-
-				returnList.add(map);
-			}
-
-		}
-
-		return returnList;
-
-	}
-
-	@ApiOperation(value = "学习中心考试进度信息", notes = "学习中心考试进度信息")
-	@GetMapping("/findOrgExamInfos")
-	public ResponseEntity<Object> findOrgExamInfos(String examId, Long orgId) {
-		try {
-			List<OrgExamInfoDTO> orgExamInfoDTOs = examStudentService.findOrgExamInfos(examId,
-					orgId);
-			return new ResponseEntity<Object>(orgExamInfoDTOs, HttpStatus.OK);
-		} catch (Exception e) {
-			e.printStackTrace();
-			return new ResponseEntity(new ErrorMsg(e.getMessage()),
-					HttpStatus.INTERNAL_SERVER_ERROR);
-		}
-	}
-
-	@ApiOperation(value = "从考试表中查询课程", notes = "从考试表中查询课程")
-	@GetMapping("/findCoursesFromExamStudent")
-	public ResponseEntity<Object> findCoursesFromExamStudent(String examId, String orgId) {
-		try {
-			List<Course> courses = examStudentService.findCoursesFromExamStudent(examId, orgId);
-			return new ResponseEntity<Object>(courses, HttpStatus.OK);
-		} catch (Exception e) {
-			e.printStackTrace();
-			return new ResponseEntity(new ErrorMsg(e.getMessage()),
-					HttpStatus.INTERNAL_SERVER_ERROR);
-		}
-	}
-
-	@ApiOperation(value = "设置考生为重考状态", notes = "设置考生为重考状态")
-	@Transactional
-	@PostMapping("/setExamStudentReexamine")
-	public ResponseEntity<Object> setExamStudentIsReexamine(
-			@RequestBody CommonExamStudent commonExamStudent) {
-		if (commonExamStudent.getId() == null) {
-			return new ResponseEntity<Object>(new ErrorMsg("考生ID不能为空"),
-					HttpStatus.INTERNAL_SERVER_ERROR);
-		}
-		examStudentService.setExamStudentIsReexamine(commonExamStudent);
-		return new ResponseEntity<Object>(HttpStatus.OK);
-	}
 }

+ 0 - 11
examcloud-core-examwork-service/pom.xml

@@ -14,17 +14,6 @@
 			<artifactId>examcloud-core-examwork-dao</artifactId>
 			<version>${examcloud.version}</version>
 		</dependency>
-		<dependency>
-			<groupId>cn.com.qmth.examcloud.commons</groupId>
-			<artifactId>examcloud-commons-dto</artifactId>
-			<version>${examcloud.version}</version>
-		</dependency>
-
-		<dependency>
-			<groupId>com.qmth.commons</groupId>
-			<artifactId>data-sync-rabbit</artifactId>
-			<version>1.0-SNAPSHOT</version>
-		</dependency>
 
 		<dependency>
 			<groupId>cn.com.qmth.examcloud.core.basic</groupId>

+ 2 - 42
examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/impl/ExamService.java

@@ -2,8 +2,6 @@ package cn.com.qmth.examcloud.core.examwork.service.impl;
 
 import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.contains;
 
-import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -16,16 +14,12 @@ import org.springframework.data.domain.Sort.Direction;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import cn.com.qmth.examcloud.common.dto.core.Org;
 import cn.com.qmth.examcloud.commons.base.exception.StatusException;
 import cn.com.qmth.examcloud.commons.web.security.bean.User;
+import cn.com.qmth.examcloud.core.basic.api.OrgCloudService;
 import cn.com.qmth.examcloud.core.examwork.dao.ExamOrgTimeRepo;
 import cn.com.qmth.examcloud.core.examwork.dao.ExamRepo;
 import cn.com.qmth.examcloud.core.examwork.dao.entity.Exam;
-import cn.com.qmth.examcloud.core.examwork.dao.entity.ExamOrgTime;
-import cn.com.qmth.examcloud.core.examwork.dao.enums.ExamType;
-import cn.com.qmth.examcloud.core.examwork.service.mq.DataSendService;
-import cn.com.qmth.examcloud.core.examwork.service.rpc.OrgService;
 
 /**
  * 考试批次服务类 Created by songyue on 17/1/13.
@@ -42,10 +36,7 @@ public class ExamService {
 	ExamOrgTimeRepo examOrgTimeRepo;
 
 	@Autowired
-	OrgService orgService;
-
-	@Autowired
-	DataSendService dataSendService;
+	OrgCloudService orgCloudService;
 
 	/**
 	 * 获取所有考试批次(分页)
@@ -96,40 +87,9 @@ public class ExamService {
 
 	@Transactional
 	public Exam insertExam(Exam exam, User accessUser) {
-		ExamType examType = exam.getExamType();
-		if (examType == ExamType.OFFLINE) {
-			Exam newExam = examRepo.save(exam);
-			insertExamOrgTime(newExam, accessUser);
-			return newExam;
-		}
 		return examRepo.save(exam);
 	}
 
-	/**
-	 * 新增学习中心考试时间
-	 * 
-	 * @param exam
-	 * @param accessUser
-	 */
-	private void insertExamOrgTime(Exam exam, User accessUser) {
-		Long examId = exam.getId();
-		Long rootOrgId = accessUser.getRootOrgId();
-		String token = accessUser.getUserToken();
-		Date beginTime = exam.getBeginTime();
-		Date endTime = exam.getEndTime();
-		List<Org> orgList = orgService.findByParentId(token, rootOrgId);
-		List<ExamOrgTime> examOrgTimes = new ArrayList<>();
-		for (Org org : orgList) {
-			Long orgId = org.getId();
-			String orgCode = org.getCode();
-			String orgName = org.getName();
-			ExamOrgTime examOrgTime = new ExamOrgTime(examId, orgId, orgCode, orgName, beginTime,
-					endTime);
-			examOrgTimes.add(examOrgTime);
-		}
-		examOrgTimeRepo.save(examOrgTimes);
-	}
-
 	/**
 	 * 删除考试批次
 	 * 

+ 0 - 478
examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/impl/ExamStudentServiceImpl.java

@@ -1,9 +1,5 @@
 package cn.com.qmth.examcloud.core.examwork.service.impl;
 
-import java.io.InputStream;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -16,27 +12,14 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageImpl;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.domain.Sort.Direction;
 import org.springframework.data.jpa.domain.Specification;
-import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.jdbc.core.RowMapper;
 import org.springframework.stereotype.Service;
 
-import cn.com.qmth.examcloud.common.dto.core.Course;
-import cn.com.qmth.examcloud.common.dto.core.Org;
-import cn.com.qmth.examcloud.common.dto.core.Student;
-import cn.com.qmth.examcloud.common.dto.core.User;
-import cn.com.qmth.examcloud.common.dto.core.enums.UserType;
-import cn.com.qmth.examcloud.common.dto.examwork.CommonExamStudent;
 import cn.com.qmth.examcloud.commons.base.exception.StatusException;
 import cn.com.qmth.examcloud.commons.base.util.BeanCopierUtil;
-import cn.com.qmth.examcloud.commons.base.util.ErrorMsg;
-import cn.com.qmth.examcloud.commons.base.util.excel.ExcelError;
-import cn.com.qmth.examcloud.commons.base.util.excel.ExcelReader;
-import cn.com.qmth.examcloud.commons.base.util.excel.ExcelReaderHandle;
 import cn.com.qmth.examcloud.core.basic.api.CourseCloudService;
 import cn.com.qmth.examcloud.core.basic.api.OrgCloudService;
 import cn.com.qmth.examcloud.core.basic.api.StudentCloudService;
@@ -54,17 +37,12 @@ import cn.com.qmth.examcloud.core.examwork.dao.ExamRepo;
 import cn.com.qmth.examcloud.core.examwork.dao.ExamStudentRepo;
 import cn.com.qmth.examcloud.core.examwork.dao.bean.ExamStudentAssembler;
 import cn.com.qmth.examcloud.core.examwork.dao.bean.ExamStudentDTO;
-import cn.com.qmth.examcloud.core.examwork.dao.bean.OrgExamInfoDTO;
 import cn.com.qmth.examcloud.core.examwork.dao.entity.Exam;
 import cn.com.qmth.examcloud.core.examwork.dao.entity.ExamOrgTime;
 import cn.com.qmth.examcloud.core.examwork.dao.entity.ExamStudent;
 import cn.com.qmth.examcloud.core.examwork.dao.enums.ExamType;
 import cn.com.qmth.examcloud.core.examwork.service.ExamStudentService;
 import cn.com.qmth.examcloud.core.examwork.service.bean.ExamStudentInfo;
-import cn.com.qmth.examcloud.core.examwork.service.rpc.CourseService;
-import cn.com.qmth.examcloud.core.examwork.service.rpc.OrgService;
-import cn.com.qmth.examcloud.core.examwork.service.rpc.SpecialtyService;
-import cn.com.qmth.examcloud.core.examwork.service.rpc.StudentService;
 
 /**
  * 考试学生服务类 Created by songyue on 17/1/14.
@@ -83,21 +61,6 @@ public class ExamStudentServiceImpl implements ExamStudentService {
 	@Autowired
 	ExamStudentAssembler examStudentAssembler;
 
-	@Autowired
-	StudentService studentService;
-
-	@Autowired
-	CourseService courseService;
-
-	@Autowired
-	OrgService orgService;
-
-	@Autowired
-	private JdbcTemplate jdbcTemplate;
-
-	@Autowired
-	SpecialtyService specialtyService;
-
 	@Autowired
 	ExamOrgTimeRepo examOrgTimeRepo;
 
@@ -213,299 +176,6 @@ public class ExamStudentServiceImpl implements ExamStudentService {
 		return examStudentRepo.findByExamId(examId, pageable);
 	}
 
-	/**
-	 * 保存考试学生
-	 * 
-	 * @param examStudent
-	 * @return
-	 */
-	public ExamStudent saveExamStudent(String token, ExamStudent examStudent) {
-		checkExamStudent(examStudent);
-		return saveStudent(token, examStudent);
-	}
-
-	/**
-	 * 导入考试学生
-	 * 
-	 * @return
-	 */
-	public List<ExcelError> importExamStudent(String userToken, Long examId,
-			InputStream inputStream) {
-		log.info("导入考生开始");
-		Exam exam = examRepo.findOne(examId);
-		List<ExcelError> excelErrors = new ArrayList<ExcelError>();
-		if (exam == null) {
-			ExcelError excelError = new ExcelError(1, "请先创建考试");
-			excelErrors.add(excelError);
-			return excelErrors;
-		}
-		List<ExamStudent> examStudents = new ArrayList<ExamStudent>();
-		ExcelReader excelReader = new ExcelReader(ExamStudentDTO.class);
-		excelErrors = excelReader.reader(inputStream, new ExcelReaderHandle() {
-			@Override
-			public ExcelError handle(Object obj) {
-				ExamStudentDTO dto = (ExamStudentDTO) obj;
-				dto.setRootOrgId(exam.getRootOrgId());
-				dto.setExam(exam);
-				ExcelError error = importCheck(userToken, dto);
-				if (error == null) {
-					examStudents.add(examStudentAssembler.toDomain(dto));
-				}
-				int stu_num = examStudents.size();
-				if (stu_num % 5000 == 0) {
-					saveStudentList(userToken, examStudents);
-					log.info("已导入" + stu_num + "条数据");
-				}
-				return error;
-			}
-
-		});
-		int stu_num = examStudents.size();
-		saveStudentList(userToken, examStudents);
-		log.info("已导入" + stu_num + "条数据");
-		log.info("导入考生结束");
-		return excelErrors;
-	}
-
-	private void saveStudentList(String token, List<ExamStudent> examStudents) {
-		for (ExamStudent examStudent : examStudents) {
-			saveStudent(token, examStudent);
-		}
-		examStudents.removeAll(examStudents);
-	}
-
-	private ExamStudent saveStudent(String token, ExamStudent examStudent) {
-		if (examStudent.getStudentId() == null) {
-			Student student = new Student();
-			student.setIdentityNumber(examStudent.getIdentityNumber());
-			student.setName(examStudent.getName());
-			student.setStudentCode(examStudent.getStudentCode());
-			student.setRootOrgId(examStudent.getRootOrgId());
-			student.setOrgId(examStudent.getOrgId());
-			User user = new User();
-			user.setOrgId(examStudent.getOrgId());
-			user.setEnable(true);
-			user.setType(UserType.STUDENT);
-			user.setRootOrgId(examStudent.getRootOrgId());
-			student.setUser(user);
-			student = studentService.addStudent(token, student);
-			examStudent.setStudentId(student.getId());
-		} else {
-			Student student = studentService.getStudent(token, examStudent.getStudentId());
-			student.setOrgId(examStudent.getOrgId());
-			student.setName(examStudent.getName());
-			student.setRootOrgId(examStudent.getRootOrgId());
-			student.setStudentCode(examStudent.getStudentCode());
-			student.setIdentityNumber(examStudent.getIdentityNumber());
-			studentService.updateStudent(token, student);
-		}
-
-		examStudent.setGraduated(false);
-		examStudent.setDegree(false);
-		examStudent.setRepair(false);
-		return examStudentRepo.save(examStudent);
-	}
-
-	public void checkExamStudent(ExamStudent examStudent) {
-		if (examStudent.getId() != null) {
-			if (examStudentRepo.checkExamStuById(examStudent.getExam().getId(),
-					examStudent.getRootOrgId(), examStudent.getIdentityNumber(),
-					examStudent.getCourseCode(), examStudent.getId()) > 0) {
-				throw new RuntimeException("该考生已存在");
-			}
-		} else {
-			if (examStudentRepo.checkExamStu(examStudent.getExam().getId(),
-					examStudent.getRootOrgId(), examStudent.getIdentityNumber(),
-					examStudent.getCourseCode()) > 0) {
-				throw new RuntimeException("该考生已存在");
-			}
-		}
-	}
-
-	/**
-	 * 考生导入验证
-	 * 
-	 * @param dto
-	 * @return
-	 */
-	public ExcelError importCheck(String token, ExamStudentDTO dto) {
-		if (StringUtils.isEmpty(dto.getName())) {
-			return new ExcelError("姓名不能为空");
-		}
-		if (StringUtils.isEmpty(dto.getStudentCode())
-				|| StringUtils.isEmpty(dto.getIdentityNumber())) {
-			return new ExcelError("学号或身份证号不能为空");
-		} else {
-			if (!StringUtils.isEmpty(dto.getStudentCode()) && dto.getStudentCode().length() < 6) {
-				return new ExcelError("学号至少为6位");
-			}
-			if (!StringUtils.isEmpty(dto.getIdentityNumber())
-					&& dto.getIdentityNumber().length() < 6) {
-				return new ExcelError("身份证号至少为6位");
-			}
-		}
-		if (StringUtils.isEmpty(dto.getCourseCode())) {
-			return new ExcelError("课程代码不能为空");
-		}
-		if (StringUtils.isEmpty(dto.getOrgCode())) {
-			return new ExcelError("学习中心代码不能为空");
-		}
-
-		Course course = courseService.findByOrgIdAndCode(token, dto.getRootOrgId(),
-				dto.getCourseCode());
-		if (course == null || !course.getEnable()) {
-			return new ExcelError("课程不存在/被禁用");
-		}
-		dto.setCourseLevel(course.getLevel().toString());
-		dto.setCourseName(course.getName());
-		Org org = orgService.findByParentIdAndCode(token, dto.getRootOrgId(), dto.getOrgCode());
-		if (org == null || !org.getEnable()) {
-			return new ExcelError("学习中心不存在/禁用");
-		}
-		dto.setOrgId(org.getId());
-		dto.setOrgName(org.getName());
-		stuCheck(dto);
-		if (StringUtils.isEmpty(dto.getPaperType())) {
-			dto.setPaperType("O");
-		}
-		return null;
-	}
-
-	public void stuCheck(ExamStudentDTO dto) {
-		ExamStudent examStudent = null;
-		if (!StringUtils.isEmpty(dto.getIdentityNumber())) {
-			examStudent = examStudentRepo.findFirstByExamId(dto.getExam().getId(),
-					dto.getCourseCode(), dto.getIdentityNumber());
-		} else {
-			examStudent = examStudentRepo.findFirstByExamId(dto.getExam().getId(),
-					dto.getCourseCode(), dto.getStudentCode());
-		}
-		if (examStudent != null) {
-			dto.setId(examStudent.getId());
-			dto.setStudentId(examStudent.getStudentId());
-			dto.setFinished(examStudent.getFinished());
-		} else {
-			dto.setFinished(false);
-		}
-
-	}
-
-	/**
-	 * 照片检验
-	 * 
-	 * @param examId
-	 * @return
-	 */
-	public List<ErrorMsg> photoCheck(Long examId) {
-		List<ErrorMsg> msgs = new ArrayList<ErrorMsg>();
-		List<ExamStudent> examStudents = examStudentRepo.findByExamId(examId);
-		for (ExamStudent examStudent : examStudents) {
-			ErrorMsg errorMsg = null;
-			if (!StringUtils.isEmpty(examStudent.getStudentCode())) {
-
-				errorMsg = new ErrorMsg(examStudent.getStudentCode());
-			} else if (!StringUtils.isEmpty(examStudent.getIdentityNumber())) {
-
-				errorMsg = new ErrorMsg(examStudent.getIdentityNumber());
-			}
-			if (errorMsg != null) {
-				msgs.add(errorMsg);
-			}
-		}
-		return msgs;
-	}
-
-	/**
-	 * 获取重考考生
-	 * 
-	 * @param examCriteria
-	 * @param curPage
-	 * @param pageSize
-	 * @return
-	 */
-	public Page<ExamStudent> getReexamineStudent(CommonExamStudent examCriteria, Integer curPage,
-			Integer pageSize) {
-		if (examCriteria.getExamId() == null) {
-			return null;
-		}
-		StringBuffer sql = new StringBuffer();
-		sql.append("select " + "t1.id 				id," + "t1.exam_id 			exam_id,"
-				+ "t1.org_id 			org_id," + "t1.org_name 			org_name,"
-				+ "t1.course_code 		course_code," + "t1.course_name 		course_name,"
-				+ "t1.course_level 		course_level," + "t1.name 				name,"
-				+ "t1.student_code 	 	student_code," + "t1.identity_number 	identity_number"
-				+ " from ecs_exam_student t1 " + " where t1.exam_id=" + examCriteria.getExamId());
-		sql.append(
-				" and  t1.normal_exam_times >= ( select t2.exam_times from ecs_exam t2 where t2.id = t1.exam_id ) ");
-		// 没设置重考的或者设置了重考,重考已完成的
-		sql.append(
-				" and ((t1.is_reexamine is null OR t1.is_reexamine = 0) OR (t1.is_reexamine = 1 and t1.reexamine_completed = 1)) ");
-		sql.append(
-				" and NOT EXISTS ( select * from oe_exam_record t3 where t3.exam_student_id = t1.id and t3.status = 'EXAM_ING') ");
-		sql.append(getSqlSpecification(examCriteria));
-		sql.append(" limit " + (curPage - 1) * pageSize + "," + pageSize);
-
-		Exam exam = examRepo.findOne(examCriteria.getExamId());
-		List<ExamStudent> examStudents = this.jdbcTemplate.query(sql.toString(),
-				new RowMapper<ExamStudent>() {
-					@Override
-					public ExamStudent mapRow(ResultSet rs, int arg) throws SQLException {
-						ExamStudent examStudent = new ExamStudent();
-						examStudent.setId(rs.getLong("id"));
-						examStudent.setExam(exam);
-						examStudent.setOrgId(rs.getLong("org_id"));
-						examStudent.setOrgName(rs.getString("org_name"));
-						examStudent.setCourseCode(rs.getString("course_code"));
-						examStudent.setCourseName(rs.getString("course_name"));
-						examStudent.setCourseLevel(rs.getString("course_level"));
-						examStudent.setName(rs.getString("name"));
-						examStudent.setStudentCode(rs.getString("student_code"));
-						examStudent.setIdentityNumber(rs.getString("identity_number"));
-						return examStudent;
-					}
-				});
-		int total = countReexamineStudent(examCriteria);
-		return new PageImpl<>(examStudents, null, total);
-	}
-
-	private int countReexamineStudent(CommonExamStudent examCriteria) {
-		StringBuffer sql = new StringBuffer();
-		sql.append("select count(t1.id) from ecs_exam_student t1 where t1.normal_exam_times = ( "
-				+ " select t2.exam_times from ecs_exam t2 where t2.id = t1.exam_id " + ")");
-		sql.append(" and t1.exam_id=" + examCriteria.getExamId());
-		// 没设置重考的或者设置了重考,重考已完成的
-		sql.append(
-				" and ((t1.is_reexamine is null OR t1.is_reexamine = 0) OR (t1.is_reexamine = 1 and t1.reexamine_completed = 1)) ");
-		sql.append(
-				" and NOT EXISTS ( select * from oe_exam_record t3 where t3.exam_student_id = t1.id and t3.status = 'EXAM_ING') ");
-		sql.append(getSqlSpecification(examCriteria));
-		return this.jdbcTemplate.queryForObject(sql.toString(), Integer.class);
-	}
-
-	private String getSqlSpecification(CommonExamStudent examCriteria) {
-		StringBuffer sql = new StringBuffer("");
-		if (null != examCriteria.getOrgId()) {
-			sql.append(" and t1.org_id = " + examCriteria.getOrgId());
-		}
-		if (!StringUtils.isEmpty(examCriteria.getName())) {
-			sql.append(" and t1.name LIKE '%" + examCriteria.getName() + "%'");
-		}
-		if (!StringUtils.isEmpty(examCriteria.getStudentCode())) {
-			sql.append(" and t1.student_code LIKE '%" + examCriteria.getStudentCode() + "%'");
-		}
-		if (!StringUtils.isEmpty(examCriteria.getCourseCode())) {
-			sql.append(" and t1.course_code = '" + examCriteria.getCourseCode() + "'");
-		}
-		if (!StringUtils.isEmpty(examCriteria.getCourseLevel())) {
-			sql.append(" and t1.course_level = '" + examCriteria.getCourseLevel() + "'");
-		}
-		if (!StringUtils.isEmpty(examCriteria.getIdentityNumber())) {
-			sql.append(" and t1.identity_number LIKE '%" + examCriteria.getIdentityNumber() + "%'");
-		}
-		sql.append(" order by t1.id ");
-		return sql.toString();
-	}
-
 	/**
 	 * 生成查询条件
 	 * 
@@ -743,154 +413,6 @@ public class ExamStudentServiceImpl implements ExamStudentService {
 		}
 	}
 
-	/**
-	 * 学习中心考试进度信息
-	 * 
-	 * @param examId
-	 * @param orgCode
-	 * @return
-	 */
-	public List<OrgExamInfoDTO> findOrgExamInfos(String examId, Long orgId) {
-		if (StringUtils.isBlank(examId)) {
-			return null;
-		}
-		StringBuilder sql = new StringBuilder();
-		sql.append("select t.org_id orgid," + " t.org_code orgcode," + " t.org_name orgname,"
-				+ " count(t.id) allNum,"
-				+ " sum(case when t.finished = 1 then 1 else  0 end) completedNum "
-				+ " from ecs_exam_student  t" + " where t.exam_id = ?");
-		if (orgId != null) {
-			sql.append(" and t.org_id = " + orgId);
-		}
-		sql.append(" group by t.org_id, t.org_name order by t.org_id");
-		return jdbcTemplate.query(sql.toString(), new Object[]{examId},
-				new RowMapper<OrgExamInfoDTO>() {
-					@Override
-					public OrgExamInfoDTO mapRow(ResultSet rs, int rowNum) throws SQLException {
-						OrgExamInfoDTO orgExamInfoDTO = new OrgExamInfoDTO();
-						orgExamInfoDTO.setOrgId(rs.getLong("orgid") + "");
-						orgExamInfoDTO.setOrgCode(rs.getString("orgcode"));
-						orgExamInfoDTO.setOrgName(rs.getString("orgname"));
-						orgExamInfoDTO.setAllNum(rs.getInt("allNum"));
-						orgExamInfoDTO.setCompletedNum(rs.getInt("completedNum"));
-						if (orgExamInfoDTO.getCompletedNum() == 0) {
-							orgExamInfoDTO.setProportion("0");
-						} else {
-							DecimalFormat df = new DecimalFormat("#.00");
-							double proportion = (double) orgExamInfoDTO.getCompletedNum()
-									/ orgExamInfoDTO.getAllNum();
-							orgExamInfoDTO.setProportion(df.format(proportion * 100));
-						}
-						return orgExamInfoDTO;
-					}
-				});
-	}
-
-	/**
-	 * 根据考试和学习中心查询课程
-	 * 
-	 * @param examId
-	 * @param orgId
-	 * @return
-	 */
-	public List<Course> findCoursesFromExamStudent(String examId, String orgId) {
-		List<Object> paramsList = new ArrayList<Object>();
-		if (StringUtils.isEmpty(examId)) {
-			return null;
-		}
-		StringBuilder sql = new StringBuilder();
-		paramsList.add(examId);
-		sql.append("SELECT t.course_code course_code," + "t.course_level course_level,"
-				+ "t.course_name course_name " + " FROM ecs_exam_student t  "
-				+ " where  t.exam_id = ? ");
-
-		if (!StringUtils.isEmpty(orgId)) {
-			sql.append(" and t.org_id = ? ");
-			paramsList.add(orgId);
-		}
-		sql.append(" group by course_code");
-		Object[] params = new Object[paramsList.size()];
-		for (int i = 0; i < paramsList.size(); i++) {
-			params[i] = paramsList.get(i);
-		}
-		return jdbcTemplate.query(sql.toString(), params, new RowMapper<Course>() {
-			@Override
-			public Course mapRow(ResultSet resultSet, int rowNum) throws SQLException {
-				Course course = new Course();
-				course.setCode(resultSet.getString("course_code"));
-				course.setName(resultSet.getString("course_name"));
-				return course;
-			}
-		});
-	}
-
-	/**
-	 * 当考生进入考试时 1.设置考生不缺考 2.考生考试次数加1
-	 * 
-	 * @param examStuId
-	 */
-	public void updateExamStudentInfo(Long examStuId) {
-		ExamStudent examStudent = examStudentRepo.findOne(examStuId);
-		examStudent.setFinished(true);
-		/**
-		 * 进入考试时,判断正常考试次数是否小于考试信息(ecs_exam)中的考试次数 如果是,考试次数加一,将重考标识设置成false
-		 */
-		long examTimes = examStudent.getExam().getExamTimes();
-		Integer normalExamTimes = examStudent.getNormalExamTimes();
-		if (normalExamTimes == null) {
-			normalExamTimes = 0;
-		}
-		if (examTimes > normalExamTimes) {
-			examStudent.setNormalExamTimes(normalExamTimes.intValue() + 1);
-			examStudent.setIsReexamine(null);
-			examStudent.setReexamineCompleted(null);
-		}
-		// 考生开始重考时,将重考已完成设置为true
-		if (examStudent.getIsReexamine() != null && examStudent.getIsReexamine()) {
-			examStudent.setReexamineCompleted(true);
-		}
-		examStudentRepo.save(examStudent);
-	}
-
-	/**
-	 * 设置考生重考信息
-	 * 
-	 * @param commonExamStudent
-	 */
-	public void setExamStudentIsReexamine(CommonExamStudent commonExamStudent) {
-		if (commonExamStudent.getId() == null) {
-			return;
-		}
-		ExamStudent examStudent = examStudentRepo.findOne(commonExamStudent.getId());
-		if (examStudent != null) {
-			examStudent.setIsReexamine(true);
-			// 设置了重考,但考生重考未完成,考生开始重考时,该字段改为true
-			examStudent.setReexamineCompleted(false);
-			examStudent.setReexamineType(commonExamStudent.getReexamineType());
-			examStudent.setReexamineDetail(commonExamStudent.getReexamineDetail());
-			examStudentRepo.save(examStudent);
-		}
-	}
-
-	/**
-	 * 按照数量限制查询考生
-	 * 
-	 * @param examId
-	 *            考试ID
-	 * @param startLimit
-	 *            数量开始限制
-	 * @param endLimit
-	 *            数量结束限制
-	 * @return
-	 */
-	public List<ExamStudent> getExamStudentByLimit(Long examId, Integer startLimit,
-			Integer endLimit) {
-		if (examId == null || startLimit == null || endLimit == null || startLimit > endLimit) {
-			return null;
-		}
-		return examStudentRepo.findByLimit(examId, startLimit - 1, (endLimit - startLimit + 1));
-	}
-
 	/*
 	 * 实现
 	 *

+ 0 - 82
examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/mq/DataReceiveService.java

@@ -1,82 +0,0 @@
-package cn.com.qmth.examcloud.core.examwork.service.mq;
-
-import cn.com.qmth.examcloud.core.examwork.dao.ExamStudentRepo;
-import cn.com.qmth.examcloud.core.examwork.dao.entity.ExamStudent;
-
-import com.qmth.commons.dataSync.core.annotations.DataReceive;
-import com.qmth.commons.dataSync.core.entity.BaseSyncData;
-import com.qmth.commons.dataSync.core.service.DataSyncService;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import java.util.List;
-
-/**
- * Created by songyue on 17/8/3.
- */
-@Service
-public class DataReceiveService {
-
-    private static final Logger log = LoggerFactory.getLogger(DataReceiveService.class);
-
-    @Autowired
-    DataSyncService dataSyncService;
-
-    @Autowired
-    ExamStudentRepo examStudentRepo;
-
-    @DataReceive(domain = "cn.com.qmth.examcloud.common.dto.core.CourseSync")
-    public synchronized void readCourse(BaseSyncData baseSyncData) {
-        if (dataSyncService.expired(baseSyncData)) {
-            return;
-        }
-        log.info("-----------coursesync start---------");
-        log.info(baseSyncData.toString());
-        String courseCode = baseSyncData.getEntity().get("code");
-        String orgId = baseSyncData.getEntity().get("orgId");
-        String courseName = baseSyncData.getEntity().get("name");
-        String courseLevel = baseSyncData.getEntity().get("level");
-        if(StringUtils.isEmpty(courseCode)
-                || StringUtils.isEmpty(orgId)
-                || StringUtils.isEmpty(courseName)
-                || StringUtils.isEmpty(courseLevel)){
-            return;
-        }
-        List<ExamStudent> examStudents = examStudentRepo.findByCourseCode(Long.valueOf(orgId),courseCode);
-        for(ExamStudent examStudent:examStudents){
-            if(!examStudent.getCourseLevel().equals(courseLevel)){
-                examStudent.setCourseLevel(courseLevel);
-            }
-            if(!examStudent.getCourseName().equals(courseName)){
-                examStudent.setCourseName(courseName);
-            }
-        }
-        examStudentRepo.save(examStudents);
-        log.info("-----------coursesync end---------");
-    }
-
-    @DataReceive(domain = "cn.com.qmth.examcloud.common.dto.core.OrgSync")
-    public synchronized void readOrg(BaseSyncData baseSyncData) {
-        if (dataSyncService.expired(baseSyncData)) {
-            return;
-        }
-        log.info("-----------orgsync start---------");
-        log.info(baseSyncData.toString());
-        String orgId = baseSyncData.getPk();
-        String name = baseSyncData.getEntity().get("name");
-        if(StringUtils.isEmpty(orgId)
-                || StringUtils.isEmpty(name)){
-            return;
-        }
-        List<ExamStudent> examStudents = examStudentRepo.findByOrgId(Long.valueOf(orgId));
-        for(ExamStudent examStudent:examStudents){
-            if(!examStudent.getOrgName().equals(name)){
-                examStudent.setOrgName(name);
-            }
-        }
-        examStudentRepo.save(examStudents);
-        log.info("-----------orgsync end---------");
-    }
-}

+ 0 - 26
examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/mq/DataSendService.java

@@ -1,26 +0,0 @@
-package cn.com.qmth.examcloud.core.examwork.service.mq;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import cn.com.qmth.examcloud.common.dto.em.ExamSync;
-import cn.com.qmth.examcloud.commons.base.util.BeanCopierUtil;
-import cn.com.qmth.examcloud.core.examwork.dao.entity.Exam;
-
-import com.qmth.commons.dataSync.core.service.DataSyncService;
-
-@Service
-public class DataSendService {
-	
-	@Autowired
-    DataSyncService dataSyncService;
-	
-	/**
-	 * 发送exam
-	 * @param exam
-	 */
-	public void sendExam(Exam exam){
-		ExamSync examSync = BeanCopierUtil.copyProperties(exam,ExamSync.class);
-		dataSyncService.send(examSync);
-	}
-}

+ 0 - 35
examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/rpc/CourseService.java

@@ -1,35 +0,0 @@
-package cn.com.qmth.examcloud.core.examwork.service.rpc;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import cn.com.qmth.examcloud.common.dto.core.Course;
-import cn.com.qmth.examcloud.commons.base.util.GsonUtil;
-import cn.com.qmth.examcloud.core.examwork.service.rpc.client.CourseClient;
-
-import java.util.List;
-
-/**
- * 
- * @author ting.yin
- * @date 2017年1月14日
- */
-@Service
-public class CourseService {
-
-	@Autowired
-	CourseClient courseClient;
-
-	public Course findByOrgIdAndCode(String token,Long orgId,String code) {
-		String json = courseClient.findByOrgIdAndCode(token,orgId,code);
-		Course domain = GsonUtil.getInstanceByJson(json, Course.class);
-		return domain;
-	}
-
-	public List<Course> findByOrgId(String token,Long orgId) {
-		String json = courseClient.findByOrgId(token,orgId);
-		List<Course> courseList = GsonUtil.jsonToArrayList(json, Course.class);
-		return courseList;
-	}
-
-}

+ 0 - 24
examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/rpc/OeService.java

@@ -1,24 +0,0 @@
-package cn.com.qmth.examcloud.core.examwork.service.rpc;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import cn.com.qmth.examcloud.core.examwork.service.rpc.client.OeClient;
-
-/**
- * Created by songyue on 17/7/20.
- */
-@Service
-public class OeService {
-
-    @Autowired
-    OeClient oeClient;
-
-    public int checkExamRecord(String token,Long examId,String identityNumber){
-        return oeClient.checkExamRecord(token,examId,identityNumber);
-    }
-
-    public int checkExamRecord(String token,Long examId){
-        return oeClient.checkExamRecord(token,examId);
-    }
-}

+ 0 - 35
examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/rpc/OrgService.java

@@ -1,35 +0,0 @@
-package cn.com.qmth.examcloud.core.examwork.service.rpc;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import cn.com.qmth.examcloud.common.dto.core.Org;
-import cn.com.qmth.examcloud.commons.base.util.GsonUtil;
-import cn.com.qmth.examcloud.core.examwork.service.rpc.client.OrgClient;
-
-import java.util.List;
-
-/**
- * 
- * @author ting.yin
- * @date 2017年1月14日
- */
-@Service
-public class OrgService {
-
-	@Autowired
-	OrgClient orgClient;
-
-	public Org findByParentIdAndCode(String token,Long orgId,String code) {
-		String json = orgClient.findByParentIdAndCode(token,orgId, code);
-		Org domain = GsonUtil.getInstanceByJson(json, Org.class);
-		return domain;
-	}
-
-	public List<Org> findByParentId(String token,Long orgId) {
-		String json = orgClient.findByParentId(token,orgId);
-		List<Org> orgList = GsonUtil.jsonToArrayList(json, Org.class);
-		return orgList;
-	}
-
-}

+ 0 - 30
examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/rpc/SpecialtyService.java

@@ -1,30 +0,0 @@
-package cn.com.qmth.examcloud.core.examwork.service.rpc;
-
-import cn.com.qmth.examcloud.common.dto.core.Course;
-import cn.com.qmth.examcloud.common.dto.core.Specialty;
-import cn.com.qmth.examcloud.commons.base.util.GsonUtil;
-import cn.com.qmth.examcloud.core.examwork.service.rpc.client.CourseClient;
-import cn.com.qmth.examcloud.core.examwork.service.rpc.client.SpecialtyClient;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * 专业服务类
- * Created by songyue on 17/1/14.
- */
-@Service
-public class SpecialtyService {
-
-	@Autowired
-	SpecialtyClient specialtyClient;
-
-	public Specialty findByOrgIdAndCode(String token,Long orgId, String code) {
-		String json = specialtyClient.findByOrgIdAndCode(token,orgId,code);
-		Specialty domain = GsonUtil.getInstanceByJson(json, Specialty.class);
-		return domain;
-	}
-
-}

+ 0 - 49
examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/rpc/StudentService.java

@@ -1,49 +0,0 @@
-package cn.com.qmth.examcloud.core.examwork.service.rpc;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import cn.com.qmth.examcloud.common.dto.core.Student;
-import cn.com.qmth.examcloud.commons.base.util.GsonUtil;
-import cn.com.qmth.examcloud.core.examwork.service.rpc.client.StudentClient;
-
-/**
- * 
- * @author ting.yin
- * @date 2017年1月14日
- */
-@Service
-public class StudentService {
-
-	@Autowired
-	StudentClient studentClient;
-
-	public Student updatePhoto(String token,String identityNumber) {
-		String json = studentClient.updatePhoto(token,identityNumber);
-		Student domain = GsonUtil.getInstanceByJson(json, Student.class);
-		return domain;
-	}
-	
-	public Student addStudent(String token,Student student) {
-		String json = studentClient.addStudent(token,student);
-		Student domain = GsonUtil.getInstanceByJson(json, Student.class);
-		return domain;
-	}
-
-	public Student updateStudent(String token,Student student) {
-		String json = studentClient.updateStudent(token,student);
-		Student domain = GsonUtil.getInstanceByJson(json, Student.class);
-		return domain;
-	}
-
-	public Student getStudent(String token,Long id) {
-		String json = studentClient.getStudent(token,id);
-		Student domain = GsonUtil.getInstanceByJson(json, Student.class);
-		return domain;
-	}
-
-	public void deleteStudent(String token,Long id) {
-		studentClient.deleteStudent(token,id);
-	}
-
-}

+ 0 - 25
examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/rpc/client/CourseClient.java

@@ -1,25 +0,0 @@
-package cn.com.qmth.examcloud.core.examwork.service.rpc.client;
-
-import org.springframework.cloud.netflix.feign.FeignClient;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestHeader;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-
-/**
- * @Description: TODO
- * @author ting.yin
- * @date 2017年1月14日
- */
-@FeignClient(value = "ExamCloud-service-core")
-public interface CourseClient {
-
-	@RequestMapping(method = RequestMethod.GET, value = "${$rmp.ctr.basic}/course")
-	String findByOrgIdAndCode(@RequestHeader("user_token") String token,@RequestParam("orgId") Long orgId,@RequestParam("code") String code);
-
-
-	@RequestMapping(method = RequestMethod.GET, value = "${$rmp.ctr.basic}/course/org/{orgId}")
-	String findByOrgId(@RequestHeader("user_token") String token,@PathVariable("orgId") Long orgId);
-
-}

+ 0 - 20
examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/rpc/client/OeClient.java

@@ -1,20 +0,0 @@
-package cn.com.qmth.examcloud.core.examwork.service.rpc.client;
-
-import org.springframework.cloud.netflix.feign.FeignClient;
-import org.springframework.web.bind.annotation.RequestHeader;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-
-/**
- * Created by songyue on 17/7/20.
- */
-@FeignClient(value = "ExamCloud-SERVICE-OE")
-public interface OeClient {
-
-    @RequestMapping(method = RequestMethod.GET, value = "/api/exam_record/count")
-    int checkExamRecord(@RequestHeader("user_token") String token,@RequestParam("examId") Long examId, @RequestParam(value = "identityNumber", required = false) String identityNumber);
-
-    @RequestMapping(method = RequestMethod.GET, value = "/api/exam_record/count")
-    int checkExamRecord(@RequestHeader("user_token") String token,@RequestParam("examId") Long examId);
-}

+ 0 - 21
examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/rpc/client/OrgClient.java

@@ -1,21 +0,0 @@
-package cn.com.qmth.examcloud.core.examwork.service.rpc.client;
-
-import org.springframework.cloud.netflix.feign.FeignClient;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @Description: TODO
- * @author ting.yin
- * @date 2017年1月14日
- */
-@FeignClient(value = "ExamCloud-service-core")
-public interface OrgClient {
-
-	@RequestMapping(method = RequestMethod.GET, value = "${$rmp.ctr.basic}/org")
-	String findByParentIdAndCode(@RequestHeader("user_token") String token,@RequestParam("parentId") Long parentId,@RequestParam("code") String code);
-
-	@RequestMapping(method = RequestMethod.GET, value = "${$rmp.ctr.basic}/org/sub/{parentId}")
-	String findByParentId(@RequestHeader("user_token") String token,
-						  @PathVariable("parentId") Long parentId);
-
-}

+ 0 - 20
examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/rpc/client/SpecialtyClient.java

@@ -1,20 +0,0 @@
-package cn.com.qmth.examcloud.core.examwork.service.rpc.client;
-
-import org.springframework.cloud.netflix.feign.FeignClient;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestHeader;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-
-
-/**
- * Created by songyue on 17/7/20.
- */
-@FeignClient(value = "ExamCloud-service-core")
-public interface SpecialtyClient {
-
-	@RequestMapping(method = RequestMethod.GET, value = "${$rmp.ctr.basic}/specialty")
-	String findByOrgIdAndCode(@RequestHeader("user_token") String token,@RequestParam("orgId") Long orgId, @RequestParam("code") String code);
-
-}

+ 0 - 31
examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/rpc/client/StudentClient.java

@@ -1,31 +0,0 @@
-package cn.com.qmth.examcloud.core.examwork.service.rpc.client;
-
-import org.springframework.cloud.netflix.feign.FeignClient;
-import org.springframework.web.bind.annotation.*;
-
-import cn.com.qmth.examcloud.common.dto.core.Student;
-
-/**
- * @Description: TODO
- * @author ting.yin
- * @date 2017年1月14日
- */
-@FeignClient(value = "ExamCloud-service-core")
-public interface StudentClient {
-
-	@RequestMapping(method = RequestMethod.GET, value = "${$rmp.ctr.basic}/student")
-	String updatePhoto(@RequestHeader("user_token") String token,@RequestParam("identityNumber") String identityNumber);
-
-	@RequestMapping(method = RequestMethod.POST, value = "${$rmp.ctr.basic}/student")
-	String addStudent(@RequestHeader("user_token") String token,@RequestBody Student student);
-
-	@RequestMapping(method = RequestMethod.GET, value = "${$rmp.ctr.basic}/student/{id}")
-	String getStudent(@RequestHeader("user_token") String token,@PathVariable("id") Long id);
-
-	@RequestMapping(method = RequestMethod.PUT, value = "${$rmp.ctr.basic}/student")
-	String updateStudent(@RequestHeader("user_token") String token,@RequestBody Student student);
-
-	@RequestMapping(method = RequestMethod.DELETE, value = "${$rmp.ctr.basic}/student/{id}")
-	void deleteStudent(@RequestHeader("user_token") String token,@PathVariable("id") Long id);
-
-}

+ 3 - 7
examcloud-core-examwork-starter/src/main/java/cn/com/qmth/examcloud/core/examwork/starter/CoreExamWorkApp.java

@@ -10,7 +10,6 @@ import org.springframework.boot.autoconfigure.web.MultipartAutoConfiguration;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import org.springframework.cloud.client.loadbalancer.LoadBalanced;
 import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
-import org.springframework.cloud.netflix.feign.EnableFeignClients;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
@@ -26,7 +25,6 @@ import org.springframework.web.multipart.commons.CommonsMultipartResolver;
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.PropertyAccessor;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.qmth.commons.query.dao.impl.BaseQueryDaoImpl;
 
 import cn.com.qmth.examcloud.commons.base.logging.ExamCloudLog;
 import cn.com.qmth.examcloud.commons.base.logging.ExamCloudLogFactory;
@@ -35,14 +33,12 @@ import cn.com.qmth.examcloud.commons.web.redis.RedisClient;
 import cn.com.qmth.examcloud.commons.web.redis.RedisClientImpl;
 import cn.com.qmth.examcloud.commons.web.support.CustomResponseErrorHandler;
 
-@ComponentScan(basePackages = {"com.qmth.commons", "cn.com.qmth"})
-@EntityScan(basePackages = {"com.qmth.commons", "cn.com.qmth"})
-@EnableJpaRepositories(basePackages = {"com.qmth.commons",
-		"cn.com.qmth"}, repositoryBaseClass = BaseQueryDaoImpl.class)
+@ComponentScan(basePackages = {"cn.com.qmth"})
+@EntityScan(basePackages = {"cn.com.qmth"})
+@EnableJpaRepositories(basePackages = {"cn.com.qmth"})
 @EnableJpaAuditing
 @SpringBootApplication
 @EnableEurekaClient
-@EnableFeignClients(basePackages = {"cn.com.qmth.examcloud.core.examwork.service.rpc.client"})
 @EnableDiscoveryClient
 @EnableAutoConfiguration(exclude = {MultipartAutoConfiguration.class})
 public class CoreExamWorkApp {