瀏覽代碼

增加课程关联专业

ting.yin 7 年之前
父節點
當前提交
2a4a041260

+ 31 - 5
core-api/src/main/java/cn/com/qmth/examcloud/service/core/api/CourseSpeciatlyApi.java

@@ -1,13 +1,13 @@
 package cn.com.qmth.examcloud.service.core.api;
 
+import io.swagger.annotations.ApiOperation;
+
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 
-import io.swagger.annotations.ApiOperation;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -20,7 +20,9 @@ import org.springframework.web.bind.annotation.RestController;
 
 import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
 import cn.com.qmth.examcloud.service.core.entity.Course;
+import cn.com.qmth.examcloud.service.core.entity.Specialty;
 import cn.com.qmth.examcloud.service.core.repo.CourseRepo;
+import cn.com.qmth.examcloud.service.core.repo.SpecialtyRepo;
 import cn.com.qmth.examcloud.service.core.service.CourseSpeciatlyService;
 
 /**
@@ -38,6 +40,9 @@ public class CourseSpeciatlyApi {
 	@Autowired
 	CourseRepo courseRepo;
 	
+	@Autowired
+	SpecialtyRepo specialtyRepo;
+	
 	/**
 	 * 根据专业ID查询课程
 	 * @param speciatlyId
@@ -45,10 +50,11 @@ public class CourseSpeciatlyApi {
 	 */
 	@ApiOperation(value="根据专业ID取课程",notes="根据专业ID取课程")
 	@GetMapping("/allCourses/{speciatlyId}")
-	public ResponseEntity getAllCoursesBySpeciatly(@PathVariable String speciatlyId){
+	public ResponseEntity getAllCoursesBySpeciatly(@PathVariable String speciatlyId,HttpServletRequest request){
+		AccessUser  accessUser = (AccessUser)request.getAttribute("accessUser");
 		List<Course> courses = courseSpeciatlyService.getAllCoursesBySpeciatlyId(speciatlyId);
 		//List<Course> list = courseSpeciatlyService.getCoursesNotInSpeciatly(courses);
-		List<Course> list = courseRepo.findAll();
+		List<Course> list = courseRepo.findByOrgId(accessUser.getRootOrgId());
 		Map map = new HashMap();
 		map.put("courseList", courses);
 		map.put("courseAllList", list);
@@ -56,10 +62,30 @@ public class CourseSpeciatlyApi {
 	}
 	
 	@ApiOperation(value="新增关联课程专业",notes="新增关联课程专业")
-	@PostMapping("/addCourseSpecialty/{speciallyId}")
+	@PostMapping("/addCourse/{speciallyId}")
 	public ResponseEntity addCourseSpeciatly(@RequestBody List<String> list,@PathVariable String speciallyId,HttpServletRequest request){
 		AccessUser  accessUser = (AccessUser)request.getAttribute("accessUser");
 		courseSpeciatlyService.addCourseSpecialty(accessUser.getUserId(), list, speciallyId);
 		return new ResponseEntity(HttpStatus.OK);
 	}
+	
+	@ApiOperation(value="根据课程ID取专业",notes="根据课程ID取专业")
+	@GetMapping("/allSpecialty/{courseId}")
+	public ResponseEntity getAllSpeciatly(@PathVariable Long courseId,HttpServletRequest request){
+		AccessUser  accessUser = (AccessUser)request.getAttribute("accessUser");
+		List<Specialty> specialtys = courseSpeciatlyService.getAllSpecialtyByCourseId(courseId);
+		List<Specialty> list = specialtyRepo.findByOrgId(accessUser.getRootOrgId());
+		Map map = new HashMap();
+		map.put("specialtyList", specialtys);
+		map.put("specialtyAllList", list);
+		return new ResponseEntity(map,HttpStatus.OK);
+	}
+	
+	@ApiOperation(value="新增关联课程专业",notes="新增关联课程专业")
+	@PostMapping("/addSpeciatly/{courseId}")
+	public ResponseEntity addSpeciatly(@RequestBody List<String> list,@PathVariable Long courseId,HttpServletRequest request){
+		AccessUser  accessUser = (AccessUser)request.getAttribute("accessUser");
+		courseSpeciatlyService.addCourse(accessUser.getUserId(), list, courseId);
+		return new ResponseEntity(HttpStatus.OK);
+	}
 }

+ 60 - 23
core-api/src/main/java/cn/com/qmth/examcloud/service/core/service/CourseSpeciatlyService.java

@@ -9,73 +9,83 @@ import org.springframework.stereotype.Service;
 
 import cn.com.qmth.examcloud.service.core.entity.Course;
 import cn.com.qmth.examcloud.service.core.entity.CourseSpeciatly;
+import cn.com.qmth.examcloud.service.core.entity.Specialty;
 import cn.com.qmth.examcloud.service.core.repo.CourseRepo;
 import cn.com.qmth.examcloud.service.core.repo.CourseSpeciatlyRepo;
+import cn.com.qmth.examcloud.service.core.repo.SpecialtyRepo;
 
 @Service
 public class CourseSpeciatlyService {
 
 	@Autowired
 	CourseSpeciatlyRepo courseSpeciatlyRepo;
-	
+
 	@Autowired
 	CourseRepo courseRepo;
-	
+
+	@Autowired
+	SpecialtyRepo specialtyRepo;
+
 	/**
 	 * 根据专业ID查询关联课程
+	 * 
 	 * @param speciatlyId
 	 * @return
 	 */
-	public List<Course> getAllCoursesBySpeciatlyId(String speciatlyId){
-		//根据专业id查询 专业课程
-		List<CourseSpeciatly> list = courseSpeciatlyRepo.findBySpecialtyId(Long.parseLong(speciatlyId));
+	public List<Course> getAllCoursesBySpeciatlyId(String speciatlyId) {
+		// 根据专业id查询 专业课程
+		List<CourseSpeciatly> list = courseSpeciatlyRepo.findBySpecialtyId(Long
+				.parseLong(speciatlyId));
 		List<Course> courses = new ArrayList<Course>();
-		if(list == null){
+		if (list == null) {
 			return null;
 		}
 		courses = getCoursesByCourseSpeciatly(list);
 		return courses;
 	}
-	
-	//根据课程专业查询课程集合
-	public List<Course> getCoursesByCourseSpeciatly(List<CourseSpeciatly> list){
+
+	// 根据课程专业查询课程集合
+	public List<Course> getCoursesByCourseSpeciatly(List<CourseSpeciatly> list) {
 		List<Course> courses = new ArrayList<Course>();
-		for(CourseSpeciatly courseSpeciatly:list){
+		for (CourseSpeciatly courseSpeciatly : list) {
 			Course course = courseRepo.findOne(courseSpeciatly.getCourseId());
 			courses.add(course);
 		}
 		return courses;
 	}
-	
+
 	/**
 	 * 获取未关联的课程
+	 * 
 	 * @param courses
 	 * @return
 	 */
-	public List<Course> getCoursesNotInSpeciatly(List<Course> courses){
+	public List<Course> getCoursesNotInSpeciatly(List<Course> courses) {
 		List<Course> list = new ArrayList<Course>();
-		if(courses == null || courses.size() < 1){
+		if (courses == null || courses.size() < 1) {
 			list = courseRepo.findAll();
 			return list;
 		}
 		List<Long> ids = new ArrayList<Long>();
-		for(Course course: courses){
+		for (Course course : courses) {
 			ids.add(course.getId());
 		}
 		list = courseRepo.findByIdNotIn(ids);
 		return list;
 	}
-	
-	public void addCourseSpecialty(Long userId,List<String> courseIds,String speciallyId){
-		//首先判断该专业是否有关联的课程
-		List<CourseSpeciatly> list = courseSpeciatlyRepo.findBySpecialtyId(Long.parseLong(speciallyId));
-		if(list != null || list.size()>0){
-			for(CourseSpeciatly courseSpeciatly: list){
+
+	public void addCourseSpecialty(Long userId, List<String> courseIds,
+			String speciallyId) {
+		// 首先判断该专业是否有关联的课程
+		List<CourseSpeciatly> list = courseSpeciatlyRepo.findBySpecialtyId(Long
+				.parseLong(speciallyId));
+		if (list != null || list.size() > 0) {
+			for (CourseSpeciatly courseSpeciatly : list) {
 				courseSpeciatlyRepo.delete(courseSpeciatly);
 			}
 		}
-		//保存新关联的课程
-		for(String courseId: courseIds){
+		// 保存新关联的课程
+		for (String courseId : courseIds) {
 			CourseSpeciatly courseSpeciatly = new CourseSpeciatly();
 			courseSpeciatly.setCourseId(Long.parseLong(courseId));
 			courseSpeciatly.setSpecialtyId(Long.parseLong(speciallyId));
@@ -83,5 +93,32 @@ public class CourseSpeciatlyService {
 			courseSpeciatly.setCreateTime(new Date());
 			courseSpeciatlyRepo.save(courseSpeciatly);
 		}
- 	}
+	}
+
+	public List<Specialty> getAllSpecialtyByCourseId(Long courseId) {
+		List<CourseSpeciatly> list = courseSpeciatlyRepo.findByCourseId(courseId);
+		List<Specialty> specialties = new ArrayList<Specialty>();
+		for (CourseSpeciatly courseSpeciatly : list) {
+			specialties.add(specialtyRepo.findOne(courseSpeciatly.getSpecialtyId()));
+		}
+		return specialties;
+	}
+
+	public void addCourse(Long userId, List<String> SpecialtyIds, Long courseId) {
+		// 首先判断该专业是否有关联的课程
+		List<CourseSpeciatly> list = courseSpeciatlyRepo.findByCourseId(courseId);
+		for (CourseSpeciatly courseSpeciatly : list) {
+			courseSpeciatlyRepo.delete(courseSpeciatly);
+		}
+		// 保存新关联的课程
+		for (String specialtyId : SpecialtyIds) {
+			CourseSpeciatly courseSpeciatly = new CourseSpeciatly();
+			courseSpeciatly.setCourseId(courseId);
+			courseSpeciatly.setSpecialtyId(Long.parseLong(specialtyId));
+			courseSpeciatly.setCreator(userId);
+			courseSpeciatly.setCreateTime(new Date());
+			courseSpeciatlyRepo.save(courseSpeciatly);
+		}
+
+	}
 }

+ 2 - 0
core-domain/src/main/java/cn/com/qmth/examcloud/service/core/repo/CourseSpeciatlyRepo.java

@@ -11,4 +11,6 @@ import cn.com.qmth.examcloud.service.core.entity.CourseSpeciatly;
 public interface CourseSpeciatlyRepo extends JpaRepository<CourseSpeciatly, Long>,QueryByExampleExecutor<CourseSpeciatly>,JpaSpecificationExecutor<CourseSpeciatly>{
 
 	List<CourseSpeciatly> findBySpecialtyId(Long specialtyId);
+
+	List<CourseSpeciatly> findByCourseId(Long courseId);
 }

+ 4 - 0
core-domain/src/main/java/cn/com/qmth/examcloud/service/core/repo/SpecialtyRepo.java

@@ -1,5 +1,7 @@
 package cn.com.qmth.examcloud.service.core.repo;
 
+import java.util.List;
+
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.repository.query.QueryByExampleExecutor;
@@ -9,4 +11,6 @@ import cn.com.qmth.examcloud.service.core.entity.Specialty;
 public interface SpecialtyRepo extends JpaRepository<Specialty, Long>,QueryByExampleExecutor<Specialty>,JpaSpecificationExecutor<Specialty>{
      
 	Specialty findByOrgIdAndCode(Long orgId,String code);
+	
+	List<Specialty> findByOrgId(Long orgId);
 }