wangwei 7 年之前
父节点
当前提交
8b6f54f252
共有 14 个文件被更改,包括 431 次插入21 次删除
  1. 19 4
      examcloud-core-examwork-api-client/src/main/java/cn/com/qmth/examcloud/examwork/api/client/ExamCloudServiceClient.java
  2. 1 1
      examcloud-core-examwork-api-provider/src/main/java/cn/com/qmth/examcloud/core/examwork/api/controller/ExamController.java
  3. 60 4
      examcloud-core-examwork-api-provider/src/main/java/cn/com/qmth/examcloud/core/examwork/api/provider/ExamCloudServiceProvider.java
  4. 31 7
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/ExamCloudService.java
  5. 39 0
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/request/GetExamPropertyReq.java
  6. 49 0
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/request/SetExamPropertyReq.java
  7. 49 0
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/response/GetExamPropertyResp.java
  8. 7 3
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/response/GetExamResp.java
  9. 19 0
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/response/SaveExamResp.java
  10. 19 0
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/response/SetExamPropertyResp.java
  11. 48 0
      examcloud-core-examwork-base/src/main/java/cn/com/qmth/examcloud/core/examwork/base/enums/ExamProperty.java
  12. 17 0
      examcloud-core-examwork-dao/src/main/java/cn/com/qmth/examcloud/core/examwork/dao/ExamPropertyRepo.java
  13. 72 0
      examcloud-core-examwork-dao/src/main/java/cn/com/qmth/examcloud/core/examwork/dao/entity/ExamPropertyEntity.java
  14. 1 2
      examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/impl/ExamService.java

+ 19 - 4
examcloud-core-examwork-api-client/src/main/java/cn/com/qmth/examcloud/examwork/api/client/ExamCloudServiceClient.java

@@ -6,9 +6,14 @@ import org.springframework.web.client.RestTemplate;
 
 import cn.com.qmth.examcloud.commons.web.redis.RedisClient;
 import cn.com.qmth.examcloud.examwork.api.ExamCloudService;
+import cn.com.qmth.examcloud.examwork.api.request.GetExamPropertyReq;
 import cn.com.qmth.examcloud.examwork.api.request.GetExamReq;
 import cn.com.qmth.examcloud.examwork.api.request.SaveExamReq;
+import cn.com.qmth.examcloud.examwork.api.request.SetExamPropertyReq;
+import cn.com.qmth.examcloud.examwork.api.response.GetExamPropertyResp;
 import cn.com.qmth.examcloud.examwork.api.response.GetExamResp;
+import cn.com.qmth.examcloud.examwork.api.response.SaveExamResp;
+import cn.com.qmth.examcloud.examwork.api.response.SetExamPropertyResp;
 
 /**
  * @author chenken
@@ -38,13 +43,23 @@ public class ExamCloudServiceClient extends BasicCloudClientSupport implements E
 	}
 
 	@Override
-	public void saveExam(SaveExamReq exam) {
-		post("exam", exam, SaveExamReq.class);
+	public SaveExamResp saveExam(SaveExamReq req) {
+		return post("exam/saveExam", req, SaveExamResp.class);
 	}
 
 	@Override
-	public GetExamResp getExam(GetExamReq examReq) {
-		return post("exam/findExam", examReq, GetExamResp.class);
+	public GetExamResp getExam(GetExamReq req) {
+		return post("exam/getExam", req, GetExamResp.class);
+	}
+
+	@Override
+	public SetExamPropertyResp setExamProperty(SetExamPropertyReq req) {
+		return post("exam/setExamProperty", req, SetExamPropertyResp.class);
+	}
+
+	@Override
+	public GetExamPropertyResp getExamProperty(GetExamPropertyReq req) {
+		return post("exam/getExamProperty", req, GetExamPropertyResp.class);
 	}
 
 }

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

@@ -203,7 +203,7 @@ public class ExamController extends ControllerSupport {
 		if (!examService.checkExamName(exam)) {
 			throw new StatusException("E-001001", "考试名称已存在,请重新填写");
 		}
-		Exam ret = examService.insertExam(exam, accessUser);
+		Exam ret = examService.insertExam(exam);
 		return ret;
 	}
 

+ 60 - 4
examcloud-core-examwork-api-provider/src/main/java/cn/com/qmth/examcloud/core/examwork/api/provider/ExamCloudServiceProvider.java

@@ -9,14 +9,22 @@ import org.springframework.web.bind.annotation.RestController;
 
 import cn.com.qmth.examcloud.commons.base.exception.StatusException;
 import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
+import cn.com.qmth.examcloud.core.examwork.base.enums.ExamProperty;
+import cn.com.qmth.examcloud.core.examwork.dao.ExamPropertyRepo;
 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.ExamPropertyEntity;
 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.examwork.api.ExamCloudService;
+import cn.com.qmth.examcloud.examwork.api.request.GetExamPropertyReq;
 import cn.com.qmth.examcloud.examwork.api.request.GetExamReq;
 import cn.com.qmth.examcloud.examwork.api.request.SaveExamReq;
+import cn.com.qmth.examcloud.examwork.api.request.SetExamPropertyReq;
+import cn.com.qmth.examcloud.examwork.api.response.GetExamPropertyResp;
 import cn.com.qmth.examcloud.examwork.api.response.GetExamResp;
+import cn.com.qmth.examcloud.examwork.api.response.SaveExamResp;
+import cn.com.qmth.examcloud.examwork.api.response.SetExamPropertyResp;
 import io.swagger.annotations.ApiOperation;
 
 /**
@@ -37,10 +45,13 @@ public class ExamCloudServiceProvider extends ControllerSupport implements ExamC
 	@Autowired
 	ExamRepo examRepo;
 
+	@Autowired
+	ExamPropertyRepo examPropertyRepo;
+
 	@ApiOperation(value = "新增考试批次", notes = "新增")
-	@PostMapping
+	@PostMapping("saveExam")
 	@Override
-	public void saveExam(@RequestBody SaveExamReq req) {
+	public SaveExamResp saveExam(@RequestBody SaveExamReq req) {
 		Exam exam = new Exam();
 		exam.setEnable(true);
 		exam.setName(req.getName());
@@ -54,11 +65,15 @@ public class ExamCloudServiceProvider extends ControllerSupport implements ExamC
 		if (!examService.checkExamName(exam)) {
 			throw new StatusException("E-002001", "考试名称已存在,请重新填写");
 		}
-		examService.insertExam(exam, null);
+		Exam saved = examService.insertExam(exam);
+
+		SaveExamResp resp = new SaveExamResp();
+		resp.setExamId(saved.getId());
+		return resp;
 	}
 
 	@ApiOperation(value = "根据名称和机构ID查询考试", notes = "根据名称和机构ID查询考试")
-	@PostMapping("/findExam")
+	@PostMapping("getExam")
 	@Override
 	public GetExamResp getExam(@RequestBody GetExamReq req) {
 		Long id = req.getId();
@@ -90,4 +105,45 @@ public class ExamCloudServiceProvider extends ControllerSupport implements ExamC
 		return examResp;
 	}
 
+	@Override
+	public SetExamPropertyResp setExamProperty(@RequestBody SetExamPropertyReq req) {
+		Long examId = req.getExamId();
+		String key = req.getKey();
+		String value = req.getValue();
+
+		ExamProperty prop = ExamProperty.valueOf(key);
+
+		ExamPropertyEntity entity = new ExamPropertyEntity();
+		entity.setExamId(examId);
+		entity.setKeyId(prop.getKeyId());
+		entity.setValue(value);
+
+		ExamPropertyEntity saved = examPropertyRepo.save(entity);
+
+		SetExamPropertyResp resp = new SetExamPropertyResp();
+		resp.setPropertyId(saved.getId());
+		return resp;
+	}
+
+	@Override
+	public GetExamPropertyResp getExamProperty(@RequestBody GetExamPropertyReq req) {
+		Long examId = req.getExamId();
+		String key = req.getKey();
+
+		ExamProperty prop = ExamProperty.valueOf(key);
+
+		ExamPropertyEntity entity = examPropertyRepo.findByexamIdAndKeyId(examId, prop.getKeyId());
+
+		GetExamPropertyResp resp = new GetExamPropertyResp();
+		if (null != entity) {
+			resp.setExisting(true);
+			resp.setKey(key);
+			resp.setPropertyId(entity.getId());
+			resp.setValue(entity.getValue());
+		} else {
+			resp.setExisting(false);
+		}
+		return resp;
+	}
+
 }

+ 31 - 7
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/ExamCloudService.java

@@ -1,15 +1,21 @@
 package cn.com.qmth.examcloud.examwork.api;
 
 import cn.com.qmth.examcloud.commons.web.cloud.api.CloudService;
-import cn.com.qmth.examcloud.examwork.api.request.SaveExamReq;
+import cn.com.qmth.examcloud.examwork.api.request.GetExamPropertyReq;
 import cn.com.qmth.examcloud.examwork.api.request.GetExamReq;
+import cn.com.qmth.examcloud.examwork.api.request.SaveExamReq;
+import cn.com.qmth.examcloud.examwork.api.request.SetExamPropertyReq;
+import cn.com.qmth.examcloud.examwork.api.response.GetExamPropertyResp;
 import cn.com.qmth.examcloud.examwork.api.response.GetExamResp;
+import cn.com.qmth.examcloud.examwork.api.response.SaveExamResp;
+import cn.com.qmth.examcloud.examwork.api.response.SetExamPropertyResp;
 
 /**
- * @author chenken
- * @date 2018年5月3日 上午9:20:02
- * @company QMTH
- * @description ExamService.java
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年8月6日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
  */
 public interface ExamCloudService extends CloudService {
 
@@ -18,7 +24,7 @@ public interface ExamCloudService extends CloudService {
 	 * 
 	 * @param exam
 	 */
-	public void saveExam(SaveExamReq req);
+	SaveExamResp saveExam(SaveExamReq req);
 
 	/**
 	 * 查询考试
@@ -26,6 +32,24 @@ public interface ExamCloudService extends CloudService {
 	 * @param name
 	 * @return
 	 */
-	public GetExamResp getExam(GetExamReq req);
+	GetExamResp getExam(GetExamReq req);
+
+	/**
+	 * 设置考试属性配置
+	 *
+	 * @author WANGWEI
+	 * @param req
+	 * @return
+	 */
+	SetExamPropertyResp setExamProperty(SetExamPropertyReq req);
+
+	/**
+	 * 获取考试属性配置
+	 *
+	 * @author WANGWEI
+	 * @param req
+	 * @return
+	 */
+	GetExamPropertyResp getExamProperty(GetExamPropertyReq req);
 
 }

+ 39 - 0
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/request/GetExamPropertyReq.java

@@ -0,0 +1,39 @@
+package cn.com.qmth.examcloud.examwork.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+public class GetExamPropertyReq extends BaseRequest {
+
+	private static final long serialVersionUID = -3957501133504335385L;
+
+	private Long examId;
+
+	private Long rootOrgId;
+
+	private String key;
+
+	public Long getExamId() {
+		return examId;
+	}
+
+	public void setExamId(Long examId) {
+		this.examId = examId;
+	}
+
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
+	public String getKey() {
+		return key;
+	}
+
+	public void setKey(String key) {
+		this.key = key;
+	}
+
+}

+ 49 - 0
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/request/SetExamPropertyReq.java

@@ -0,0 +1,49 @@
+package cn.com.qmth.examcloud.examwork.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+public class SetExamPropertyReq extends BaseRequest {
+
+	private static final long serialVersionUID = 5567648518317183261L;
+
+	private Long examId;
+
+	private Long rootOrgId;
+
+	private String key;
+
+	private String value;
+
+	public Long getExamId() {
+		return examId;
+	}
+
+	public void setExamId(Long examId) {
+		this.examId = examId;
+	}
+
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
+	public String getKey() {
+		return key;
+	}
+
+	public void setKey(String key) {
+		this.key = key;
+	}
+
+	public String getValue() {
+		return value;
+	}
+
+	public void setValue(String value) {
+		this.value = value;
+	}
+
+}

+ 49 - 0
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/response/GetExamPropertyResp.java

@@ -0,0 +1,49 @@
+package cn.com.qmth.examcloud.examwork.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+
+public class GetExamPropertyResp extends BaseResponse {
+
+	private static final long serialVersionUID = 606999493938772517L;
+
+	private Boolean existing;
+
+	private Long propertyId;
+
+	private String key;
+
+	private String value;
+
+	public Boolean getExisting() {
+		return existing;
+	}
+
+	public void setExisting(Boolean existing) {
+		this.existing = existing;
+	}
+
+	public Long getPropertyId() {
+		return propertyId;
+	}
+
+	public void setPropertyId(Long propertyId) {
+		this.propertyId = propertyId;
+	}
+
+	public String getKey() {
+		return key;
+	}
+
+	public void setKey(String key) {
+		this.key = key;
+	}
+
+	public String getValue() {
+		return value;
+	}
+
+	public void setValue(String value) {
+		this.value = value;
+	}
+
+}

+ 7 - 3
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/response/GetExamResp.java

@@ -1,9 +1,13 @@
 package cn.com.qmth.examcloud.examwork.api.response;
 
-public class GetExamResp {
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+
+public class GetExamResp extends BaseResponse {
+
+	private static final long serialVersionUID = -1493707790478891416L;
 
 	private Long id;
-	
+
 	private String name;
 
 	public Long getId() {
@@ -21,5 +25,5 @@ public class GetExamResp {
 	public void setName(String name) {
 		this.name = name;
 	}
-	
+
 }

+ 19 - 0
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/response/SaveExamResp.java

@@ -0,0 +1,19 @@
+package cn.com.qmth.examcloud.examwork.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+
+public class SaveExamResp extends BaseResponse {
+
+	private static final long serialVersionUID = 5603861974375233174L;
+
+	private Long examId;
+
+	public Long getExamId() {
+		return examId;
+	}
+
+	public void setExamId(Long examId) {
+		this.examId = examId;
+	}
+
+}

+ 19 - 0
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/response/SetExamPropertyResp.java

@@ -0,0 +1,19 @@
+package cn.com.qmth.examcloud.examwork.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+
+public class SetExamPropertyResp extends BaseResponse {
+
+	private static final long serialVersionUID = -6110239383657424338L;
+
+	private Long propertyId;
+
+	public Long getPropertyId() {
+		return propertyId;
+	}
+
+	public void setPropertyId(Long propertyId) {
+		this.propertyId = propertyId;
+	}
+
+}

+ 48 - 0
examcloud-core-examwork-base/src/main/java/cn/com/qmth/examcloud/core/examwork/base/enums/ExamProperty.java

@@ -0,0 +1,48 @@
+package cn.com.qmth.examcloud.core.examwork.base.enums;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年8月6日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public enum ExamProperty {
+
+	/**
+	 * 发布成绩
+	 */
+	SCORE_PUBLISHING(1L, "发布成绩");
+
+	// ===========================================================================
+
+	/**
+	 * key ID
+	 */
+	private Long keyId;
+
+	/**
+	 * 描述
+	 */
+	private String desc;
+
+	/**
+	 * 构造函数
+	 *
+	 * @param keyId
+	 * @param desc
+	 */
+	private ExamProperty(Long keyId, String desc) {
+		this.keyId = keyId;
+		this.desc = desc;
+	}
+
+	public Long getKeyId() {
+		return keyId;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+
+}

+ 17 - 0
examcloud-core-examwork-dao/src/main/java/cn/com/qmth/examcloud/core/examwork/dao/ExamPropertyRepo.java

@@ -0,0 +1,17 @@
+package cn.com.qmth.examcloud.core.examwork.dao;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.repository.query.QueryByExampleExecutor;
+
+import cn.com.qmth.examcloud.core.examwork.dao.entity.ExamPropertyEntity;
+
+public interface ExamPropertyRepo
+		extends
+			JpaRepository<ExamPropertyEntity, Long>,
+			QueryByExampleExecutor<ExamPropertyEntity>,
+			JpaSpecificationExecutor<ExamPropertyEntity> {
+
+	ExamPropertyEntity findByexamIdAndKeyId(Long examId, Long keyId);
+
+}

+ 72 - 0
examcloud-core-examwork-dao/src/main/java/cn/com/qmth/examcloud/core/examwork/dao/entity/ExamPropertyEntity.java

@@ -0,0 +1,72 @@
+package cn.com.qmth.examcloud.core.examwork.dao.entity;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Index;
+import javax.persistence.Lob;
+import javax.persistence.Table;
+
+import cn.com.qmth.examcloud.commons.web.jpa.JpaEntity;
+
+/**
+ * 考试属性配置
+ *
+ * @author WANGWEI
+ * @date 2018年8月6日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+@Entity
+@Table(name = "EC_E_EXAM_PROP", indexes = {
+		@Index(name = "IDX_E_EXAM_PROP_001001", columnList = "examId,keyId", unique = true)})
+public class ExamPropertyEntity extends JpaEntity {
+
+	private static final long serialVersionUID = 4009839764353162256L;
+
+	@Id
+	@GeneratedValue
+	private Long id;
+
+	/**
+	 * 考试Id
+	 */
+	private Long examId;
+
+	private Long keyId;
+
+	@Lob
+	private String value;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getExamId() {
+		return examId;
+	}
+
+	public void setExamId(Long examId) {
+		this.examId = examId;
+	}
+
+	public Long getKeyId() {
+		return keyId;
+	}
+
+	public void setKeyId(Long keyId) {
+		this.keyId = keyId;
+	}
+
+	public String getValue() {
+		return value;
+	}
+
+	public void setValue(String value) {
+		this.value = value;
+	}
+
+}

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

@@ -15,7 +15,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 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;
@@ -86,7 +85,7 @@ public class ExamService {
 	}
 
 	@Transactional
-	public Exam insertExam(Exam exam, User accessUser) {
+	public Exam insertExam(Exam exam) {
 		return examRepo.save(exam);
 	}