wangwei 5 年之前
父节点
当前提交
1124aca213

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

@@ -557,6 +557,8 @@ public class ExamController extends ControllerSupport {
 		examInfo.setRemark(domain.getRemark());
 		examInfo.setRootOrgId(accessUser.getRootOrgId());
 		examInfo.setExamLimit(domain.getExamLimit());
+		examInfo.setSpecialSettingsEnabled(domain.getSpecialSettingsEnabled());
+		examInfo.setSpecialSettingsType(domain.getSpecialSettingsType());
 
 		Map<String, String> properties = domain.getProperties();
 		if (null == properties) {
@@ -574,7 +576,7 @@ public class ExamController extends ControllerSupport {
 	@ApiOperation(value = "复制考试批次", notes = "")
 	@PostMapping("copyExam")
 	@Transactional
-	public void copyExam(@RequestBody CopyExamDomain domain) {
+	public ExamEntity copyExam(@RequestBody CopyExamDomain domain) {
 
 		Long srcExamId = domain.getSrcExamId();
 
@@ -596,6 +598,8 @@ public class ExamController extends ControllerSupport {
 		ed.setRootOrgId(srcExam.getRootOrgId());
 		ed.setStarted(isStarted(srcExam.getId()));
 		ed.setExamLimit(srcExam.getExamLimit());
+		ed.setSpecialSettingsEnabled(srcExam.getSpecialSettingsEnabled());
+		ed.setSpecialSettingsType(srcExam.getSpecialSettingsType());
 
 		ed.setName(domain.getDestExamName());
 		ed.setCode(domain.getDestExamCode());
@@ -611,40 +615,7 @@ public class ExamController extends ControllerSupport {
 		ed.setProperties(map);
 
 		ExamEntity savedExam = saveExam(ed, CURD.CREATION);
-
-		Boolean copyOrgSettings = domain.getCopyOrgSettings();
-
-		if (copyOrgSettings) {
-			List<ExamSpecialSettingsEntity> orgSettingsList = examSpecialSettingsRepo
-					.findAllByExamIdAndCourseIdIsNullAndStudentIdIsNullAndOrgIdIsNotNull(
-							srcExam.getId());
-
-			for (ExamSpecialSettingsEntity cur : orgSettingsList) {
-
-				ExamSpecialSettingsInfo info = new ExamSpecialSettingsInfo();
-				info.setBeginTime(cur.getBeginTime());
-				info.setEndTime(cur.getEndTime());
-				info.setOrgId(cur.getOrgId());
-				info.setExamLimit(cur.getExamLimit());
-				info.setRootOrgId(cur.getRootOrgId());
-
-				info.setExamId(savedExam.getId());
-
-				List<ExamOrgPropertyEntity> propList = examOrgPropertyRepo
-						.findByExamIdAndOrgId(cur.getExamId(), cur.getOrgId());
-
-				Map<String, String> orgProperties = Maps.newHashMap();
-				for (ExamOrgPropertyEntity curOrgProp : propList) {
-					DynamicEnum de = manager.getById(curOrgProp.getKeyId());
-					map.put(de.getName(), curOrgProp.getValue());
-				}
-				info.setProperties(orgProperties);
-
-				examService.saveExamSpecialSettings(info);
-
-			}
-		}
-
+		return savedExam;
 	}
 
 	/**

+ 0 - 11
examcloud-core-examwork-api-provider/src/main/java/cn/com/qmth/examcloud/core/examwork/api/controller/bean/CopyExamDomain.java

@@ -18,9 +18,6 @@ public class CopyExamDomain implements JsonSerializable {
 	@NotBlank(message = "destExamName不能为空")
 	private String destExamName;
 
-	@NotNull(message = "copyOrgSettings不能为空")
-	private Boolean copyOrgSettings;
-
 	public Long getSrcExamId() {
 		return srcExamId;
 	}
@@ -45,12 +42,4 @@ public class CopyExamDomain implements JsonSerializable {
 		this.destExamName = destExamName;
 	}
 
-	public Boolean getCopyOrgSettings() {
-		return copyOrgSettings;
-	}
-
-	public void setCopyOrgSettings(Boolean copyOrgSettings) {
-		this.copyOrgSettings = copyOrgSettings;
-	}
-
 }

+ 27 - 0
examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/bean/ExamInfo.java

@@ -7,6 +7,7 @@ import javax.persistence.EnumType;
 import javax.persistence.Enumerated;
 import javax.validation.constraints.NotNull;
 
+import cn.com.qmth.examcloud.api.commons.enums.ExamSpecialSettingsType;
 import cn.com.qmth.examcloud.api.commons.enums.ExamType;
 import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
 
@@ -78,6 +79,16 @@ public class ExamInfo implements JsonSerializable {
 	 */
 	private Boolean examLimit;
 
+	/**
+	 * 开启特殊设置
+	 */
+	private Boolean specialSettingsEnabled;
+
+	/**
+	 * 特殊设置类型
+	 */
+	private ExamSpecialSettingsType specialSettingsType;
+
 	/**
 	 * 考试属性
 	 */
@@ -179,4 +190,20 @@ public class ExamInfo implements JsonSerializable {
 		this.properties = properties;
 	}
 
+	public Boolean getSpecialSettingsEnabled() {
+		return specialSettingsEnabled;
+	}
+
+	public void setSpecialSettingsEnabled(Boolean specialSettingsEnabled) {
+		this.specialSettingsEnabled = specialSettingsEnabled;
+	}
+
+	public ExamSpecialSettingsType getSpecialSettingsType() {
+		return specialSettingsType;
+	}
+
+	public void setSpecialSettingsType(ExamSpecialSettingsType specialSettingsType) {
+		this.specialSettingsType = specialSettingsType;
+	}
+
 }

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

@@ -198,6 +198,7 @@ public class ExamServiceImpl implements ExamService {
 			exam.setExamType(examType);
 			exam.setEnable(true);
 			exam.setExamLimit(false);
+			exam.setSpecialSettingsEnabled(false);
 		} else if (realStatus.equals(CURD.UPDATE)) {
 			if (!exam.getRootOrgId().equals(rootOrgId)) {
 				throw new StatusException("002003", "rootOrgId is wrong");
@@ -207,6 +208,12 @@ public class ExamServiceImpl implements ExamService {
 			}
 		}
 
+		if (null != examInfo.getSpecialSettingsEnabled()) {
+			exam.setSpecialSettingsEnabled(examInfo.getSpecialSettingsEnabled());
+		}
+		if (null != examInfo.getSpecialSettingsType()) {
+			exam.setSpecialSettingsType(examInfo.getSpecialSettingsType());
+		}
 		if (null != examInfo.getBeginTime()) {
 			exam.setBeginTime(examInfo.getBeginTime());
 		}