wangwei 7 éve
szülő
commit
77f5f7923a

+ 46 - 23
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/provider/CourseCloudServiceProvider.java

@@ -61,39 +61,62 @@ public class CourseCloudServiceProvider implements CourseCloudService {
 			throw new StatusException("B-160002", "机构错误");
 		}
 
-		String courseName = courseReq.getCourseName();
-		if (StringUtils.isBlank(courseName)) {
-			throw new StatusException("B-160003", "courseName is null");
-		}
+		Course course = null;
 
-		String courseCode = courseReq.getCourseCode();
-		if (StringUtils.isBlank(courseCode)) {
-			throw new StatusException("B-160004", "courseCode is null");
-		}
+		Long courseId = courseReq.getCourseId();
+		if (null != courseId) {
+			course = courseRepo.findOne(courseId);
 
-		Course course = null;
-		List<Course> list = courseRepo.findAllByOrgIdAndCode(rootOrgId, courseCode);
-		if (1 < list.size()) {
-			throw new StatusException("B-160005", "存在课程编码重复的数据. courseCode: " + courseCode);
-		} else if (1 == list.size()) {
-			course = list.get(0);
-			if (null == course.getEnable()) {
-				course.setEnable(true);
+			if (null == course) {
+				throw new StatusException("B-160006", "课程ID错误");
 			}
+
+			Long orgId = course.getOrgId();
+
+			if (!rootOrgId.equals(orgId)) {
+				throw new StatusException("B-160006", "课程机构错误");
+			}
+
 		} else {
-			course = new Course();
-			course.setOrgId(courseReq.getRootOrgId());
-			course.setCode(courseReq.getCourseCode());
-			course.setEnable(true);
+			String courseName = courseReq.getCourseName();
+			if (StringUtils.isBlank(courseName)) {
+				throw new StatusException("B-160003", "courseName is null");
+			}
+
+			String courseCode = courseReq.getCourseCode();
+			if (StringUtils.isBlank(courseCode)) {
+				throw new StatusException("B-160004", "courseCode is null");
+			}
+
+			List<Course> list = courseRepo.findAllByOrgIdAndCode(rootOrgId, courseCode);
+			if (1 < list.size()) {
+				throw new StatusException("B-160005", "存在课程编码重复的数据. courseCode: " + courseCode);
+			} else if (1 == list.size()) {
+				course = list.get(0);
+				if (null == course.getEnable()) {
+					course.setEnable(true);
+				}
+			} else {
+				course = new Course();
+				course.setOrgId(courseReq.getRootOrgId());
+				course.setCode(courseReq.getCourseCode());
+				course.setEnable(true);
+				course.setLevel(CourseLevel.ALL);
+			}
 		}
 
 		if (null != courseReq.getEnable()) {
 			course.setEnable(courseReq.getEnable());
 		}
 
-		course.setName(courseName);
-		CourseLevel courseLevel = CourseLevel.getCourseLevel(courseReq.getCourseLevel());
-		course.setLevel(courseLevel);
+		if (null != courseReq.getCourseName()) {
+			course.setName(courseReq.getCourseName());
+		}
+
+		if (null != courseReq.getCourseLevel()) {
+			CourseLevel courseLevel = CourseLevel.getCourseLevel(courseReq.getCourseLevel());
+			course.setLevel(courseLevel);
+		}
 
 		Course saved = courseRepo.save(course);
 

+ 13 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/SaveCourseReq.java

@@ -11,6 +11,11 @@ public class SaveCourseReq extends BaseRequest {
 	 */
 	private Long rootOrgId;
 
+	/**
+	 * 课程ID
+	 */
+	private Long courseId;
+
 	/**
 	 * 课程code
 	 */
@@ -36,6 +41,14 @@ public class SaveCourseReq extends BaseRequest {
 		this.rootOrgId = rootOrgId;
 	}
 
+	public Long getCourseId() {
+		return courseId;
+	}
+
+	public void setCourseId(Long courseId) {
+		this.courseId = courseId;
+	}
+
 	public String getCourseCode() {
 		return courseCode;
 	}