|
@@ -11,6 +11,8 @@ import org.springframework.stereotype.Service;
|
|
|
import com.google.common.collect.Maps;
|
|
|
|
|
|
import cn.com.qmth.examcloud.commons.base.exception.StatusException;
|
|
|
+import cn.com.qmth.examcloud.commons.base.helpers.DynamicEnum;
|
|
|
+import cn.com.qmth.examcloud.commons.base.helpers.DynamicEnumManager;
|
|
|
import cn.com.qmth.examcloud.core.basic.api.OrgCloudService;
|
|
|
import cn.com.qmth.examcloud.core.examwork.base.enums.ExamProperty;
|
|
|
import cn.com.qmth.examcloud.core.examwork.dao.ExamOrgPropertyRepo;
|
|
@@ -97,7 +99,7 @@ public class ExamServiceImpl implements ExamService {
|
|
|
}
|
|
|
|
|
|
Map<String, String> properties = examInfo.getProperties();
|
|
|
- Map<ExamProperty, String> map = checkAndGetExamProperties(properties);
|
|
|
+ Map<DynamicEnum, String> map = checkAndGetExamProperties(properties);
|
|
|
|
|
|
ExamEntity findOne = examRepo.findByNameAndRootOrgId(exam.getName(), exam.getRootOrgId());
|
|
|
if (null != findOne && !findOne.getId().equals(exam.getId())) {
|
|
@@ -106,15 +108,15 @@ public class ExamServiceImpl implements ExamService {
|
|
|
|
|
|
ExamEntity saved = examRepo.save(exam);
|
|
|
|
|
|
- for (Entry<ExamProperty, String> entry : map.entrySet()) {
|
|
|
- ExamProperty prop = entry.getKey();
|
|
|
+ for (Entry<DynamicEnum, String> entry : map.entrySet()) {
|
|
|
+ DynamicEnum de = entry.getKey();
|
|
|
String value = entry.getValue();
|
|
|
ExamPropertyEntity entity = examPropertyRepo.findByexamIdAndKeyId(saved.getId(),
|
|
|
- prop.getKeyId());
|
|
|
+ de.getId());
|
|
|
if (null == entity) {
|
|
|
entity = new ExamPropertyEntity();
|
|
|
entity.setExamId(saved.getId());
|
|
|
- entity.setKeyId(prop.getKeyId());
|
|
|
+ entity.setKeyId(de.getId());
|
|
|
}
|
|
|
entity.setValue(value);
|
|
|
|
|
@@ -131,34 +133,36 @@ public class ExamServiceImpl implements ExamService {
|
|
|
* @param properties
|
|
|
* @return
|
|
|
*/
|
|
|
- private Map<ExamProperty, String> checkAndGetExamProperties(Map<String, String> properties) {
|
|
|
- Map<ExamProperty, String> map = Maps.newHashMap();
|
|
|
+ private Map<DynamicEnum, String> checkAndGetExamProperties(Map<String, String> properties) {
|
|
|
+ DynamicEnumManager manager = ExamProperty.getDynamicEnumManager();
|
|
|
+
|
|
|
+ Map<DynamicEnum, String> map = Maps.newHashMap();
|
|
|
for (Entry<String, String> entry : properties.entrySet()) {
|
|
|
String key = entry.getKey();
|
|
|
String value = entry.getValue();
|
|
|
if (StringUtils.isBlank(value)) {
|
|
|
continue;
|
|
|
}
|
|
|
- ExamProperty ep = null;
|
|
|
+ DynamicEnum de = null;
|
|
|
try {
|
|
|
- ep = ExamProperty.valueOf(key);
|
|
|
+ de = manager.getByName(key);
|
|
|
} catch (Exception e) {
|
|
|
throw new StatusException("E-001004", "考试属性错误");
|
|
|
}
|
|
|
- map.put(ep, value.trim());
|
|
|
+ map.put(de, value.trim());
|
|
|
}
|
|
|
|
|
|
- String beforeExamRemark = map.get(ExamProperty.BEFORE_EXAM_REMARK);
|
|
|
+ String beforeExamRemark = properties.get("BEFORE_EXAM_REMARK");
|
|
|
if (null != beforeExamRemark && beforeExamRemark.length() > 250000) {
|
|
|
throw new StatusException("E-001002", "考前说明内容过大");
|
|
|
}
|
|
|
|
|
|
- String afterExamRemark = map.get(ExamProperty.AFTER_EXAM_REMARK);
|
|
|
+ String afterExamRemark = properties.get("AFTER_EXAM_REMARK");
|
|
|
if (null != afterExamRemark && afterExamRemark.length() > 250000) {
|
|
|
throw new StatusException("E-001002", "考后说明内容过大");
|
|
|
}
|
|
|
|
|
|
- String cheatingRemark = map.get(ExamProperty.CHEATING_REMARK);
|
|
|
+ String cheatingRemark = properties.get("CHEATING_REMARK");
|
|
|
if (null != cheatingRemark && cheatingRemark.length() > 250000) {
|
|
|
throw new StatusException("E-001002", "作弊说明内容过大");
|
|
|
}
|
|
@@ -198,20 +202,20 @@ public class ExamServiceImpl implements ExamService {
|
|
|
examOrgEntity.setExamId(examOrgInfo.getExamId());
|
|
|
examOrgEntity.setOrgId(examOrgInfo.getOrgId());
|
|
|
|
|
|
- Map<ExamProperty, String> map = checkAndGetExamProperties(examOrgInfo.getProperties());
|
|
|
+ Map<DynamicEnum, String> map = checkAndGetExamProperties(examOrgInfo.getProperties());
|
|
|
|
|
|
ExamOrgSettingsEntity saved = examOrgSettingsRepo.save(examOrgEntity);
|
|
|
|
|
|
- for (Entry<ExamProperty, String> entry : map.entrySet()) {
|
|
|
- ExamProperty prop = entry.getKey();
|
|
|
+ for (Entry<DynamicEnum, String> entry : map.entrySet()) {
|
|
|
+ DynamicEnum de = entry.getKey();
|
|
|
String value = entry.getValue();
|
|
|
- ExamOrgPropertyEntity entity = examOrgPropertyRepo.findByexamIdAndOrgIdAndKeyId(
|
|
|
- saved.getExamId(), saved.getOrgId(), prop.getKeyId());
|
|
|
+ ExamOrgPropertyEntity entity = examOrgPropertyRepo
|
|
|
+ .findByexamIdAndOrgIdAndKeyId(saved.getExamId(), saved.getOrgId(), de.getId());
|
|
|
if (null == entity) {
|
|
|
entity = new ExamOrgPropertyEntity();
|
|
|
entity.setExamId(saved.getExamId());
|
|
|
entity.setOrgId(saved.getOrgId());
|
|
|
- entity.setKeyId(prop.getKeyId());
|
|
|
+ entity.setKeyId(de.getId());
|
|
|
}
|
|
|
entity.setValue(value);
|
|
|
|
|
@@ -223,18 +227,19 @@ public class ExamServiceImpl implements ExamService {
|
|
|
|
|
|
@Override
|
|
|
public String getOrgProperty(Long examId, Long orgId, String key) {
|
|
|
- ExamProperty ep = ExamProperty.valueOf(key);
|
|
|
+ DynamicEnumManager manager = ExamProperty.getDynamicEnumManager();
|
|
|
+ DynamicEnum de = manager.getByName(key);
|
|
|
|
|
|
if (null != orgId) {
|
|
|
ExamOrgPropertyEntity examOrgPropertyEntity = examOrgPropertyRepo
|
|
|
- .findByexamIdAndOrgIdAndKeyId(examId, orgId, ep.getKeyId());
|
|
|
+ .findByexamIdAndOrgIdAndKeyId(examId, orgId, de.getId());
|
|
|
if (null != examOrgPropertyEntity) {
|
|
|
return examOrgPropertyEntity.getValue();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
ExamPropertyEntity examPropertyEntity = examPropertyRepo.findByexamIdAndKeyId(examId,
|
|
|
- ep.getKeyId());
|
|
|
+ de.getId());
|
|
|
if (null == examPropertyEntity) {
|
|
|
return null;
|
|
|
}
|