Browse Source

所有用到考试名称的接口,兼容课程代码

lideyin 5 năm trước cách đây
mục cha
commit
ce8d23bbe2
13 tập tin đã thay đổi với 337 bổ sung228 xóa
  1. 138 114
      examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/controller/CommonGainScoreController.java
  2. 17 15
      examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/controller/swufe/SwufeExamController.java
  3. 8 9
      examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/controller/swufe/SwufeExamVerifyPhotoController.java
  4. 18 15
      examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/controller/swufe/SwufeStudentInfoController.java
  5. 14 0
      examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/controller/swufe/bean/SwufeSaveExamStudentDomain.java
  6. 80 59
      examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/controller/sydx/SydxScoreController.java
  7. 17 0
      examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/controller/sydx/bean/SydxExamScoreDomain.java
  8. 1 0
      examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/provider/GetScoreDataServiceProvider.java
  9. 6 1
      examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/provider/cug/CugOuterServiceProvider.java
  10. 13 0
      examcloud-exchange-outer-api/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/request/OuterQueryScoreDataReq.java
  11. 10 0
      examcloud-exchange-outer-api/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/request/cug/OuterSaveCugStudentAndExamStudentReq.java
  12. 6 6
      examcloud-exchange-outer-service/src/main/java/cn/com/qmth/examcloud/exchange/outer/service/OutletScoreService.java
  13. 9 9
      examcloud-exchange-outer-service/src/main/java/cn/com/qmth/examcloud/exchange/outer/service/impl/OutletScoreServiceImpl.java

+ 138 - 114
examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/controller/CommonGainScoreController.java

@@ -1,10 +1,13 @@
 package cn.com.qmth.examcloud.exchange.outer.api.controller;
 
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
-
+import cn.com.qmth.examcloud.api.commons.security.bean.User;
+import cn.com.qmth.examcloud.exchange.base.response.FailureBaseResponse;
+import cn.com.qmth.examcloud.exchange.base.response.SuccessBaseResponse;
+import cn.com.qmth.examcloud.exchange.outer.service.OutletScoreService;
+import cn.com.qmth.examcloud.exchange.outer.service.bean.OutletScore;
+import cn.com.qmth.examcloud.web.support.ControllerSupport;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -14,140 +17,161 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import cn.com.qmth.examcloud.api.commons.security.bean.User;
-import cn.com.qmth.examcloud.exchange.base.response.FailureBaseResponse;
-import cn.com.qmth.examcloud.exchange.base.response.SuccessBaseResponse;
-import cn.com.qmth.examcloud.exchange.outer.service.OutletScoreService;
-import cn.com.qmth.examcloud.exchange.outer.service.bean.OutletScore;
-import cn.com.qmth.examcloud.web.support.ControllerSupport;
-import io.swagger.annotations.ApiOperation;
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 
 /**
  * 获取成绩接口
- * @author  	chenken
- * @date    	2018年4月3日 下午3:57:26
- * @company 	QMTH
+ *
+ * @author chenken
+ * @date 2018年4月3日 下午3:57:26
+ * @company QMTH
  * @description ScoreController.java
  */
 @RestController
 @RequestMapping("/api/ecs_outlet/score")
-public class CommonGainScoreController  extends ControllerSupport{
+public class CommonGainScoreController extends ControllerSupport {
 
     @Autowired
     private OutletScoreService outletScoreService;
 
-    @ApiOperation(value = "查询成绩:根据考试名称、机构ID和学生考试方式查询")
+    @ApiOperation(value = "查询成绩:根据考试名称(不推荐)/考试代码(推荐)、机构ID和学生考试方式查询")
+    @Deprecated
     @GetMapping
-    public ResponseEntity<?> query(@RequestParam(name = "examName") String examName,
-                                   @RequestParam(name = "examStuRemark",required=false) String examStuRemark,
+    public ResponseEntity<?> query(@RequestParam(name = "examCode", required = false) String examCode,
+                                   @RequestParam(name = "examName") @Deprecated String examName,
+                                   @RequestParam(name = "examStuRemark", required = false) String examStuRemark,
                                    HttpServletRequest request) {
-    	try{
-    		User accessUser = getAccessUser();
-    		if(accessUser == null){
-    			return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("请先登录"), HttpStatus.INTERNAL_SERVER_ERROR);
-    		}
-    		if (StringUtils.isEmpty(examName)) {
-                return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("考试名称不能为空"),HttpStatus.BAD_REQUEST);
+        try {
+            User accessUser = getAccessUser();
+            if (accessUser == null) {
+                return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("请先登录"), HttpStatus.INTERNAL_SERVER_ERROR);
+            }
+            if (StringUtils.isEmpty(examName)) {
+                return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("考试名称不能为空"), HttpStatus.BAD_REQUEST);
             }
             Long orgId = accessUser.getRootOrgId();
-            List<OutletScore> outletScoreList = outletScoreService.queryExamScore(examName, examStuRemark, orgId);
-            return new ResponseEntity<SuccessBaseResponse>(new SuccessBaseResponse("查询成功",outletScoreList), HttpStatus.OK);
-    	}catch(Exception e){
-    		e.printStackTrace();
-    		log.error("查询失败",e);
-    		return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("请求失败"), HttpStatus.INTERNAL_SERVER_ERROR);
-    	}
-        
+            //如果examCode为空,则将examName作为examCode
+            final String finalExamCode;
+            if (StringUtils.isEmpty(examCode)) {
+                finalExamCode = examName;
+            } else {
+                finalExamCode = examCode;
+            }
+            List<OutletScore> outletScoreList = outletScoreService.queryExamScore(finalExamCode, examStuRemark, orgId);
+            return new ResponseEntity<>(new SuccessBaseResponse("查询成功", outletScoreList), HttpStatus.OK);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("查询失败", e);
+            return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("请求失败"), HttpStatus.INTERNAL_SERVER_ERROR);
+        }
+
     }
-    
+
     @ApiOperation(value = "查询成绩:按考试名称、考生身份证号、机构ID查询成绩")
     @GetMapping("/examNameAndIdentityNumberList")
     public ResponseEntity<?> queryByIdentityNumber(@RequestParam(name = "examName") String examName,
-    											   @RequestParam(name = "identityNumberList") List<String> identityNumberList,
-    											   HttpServletRequest request) {
-        try{
-        	User accessUser = getAccessUser();
-    		if(accessUser == null){
-    			return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("请先登录"), HttpStatus.INTERNAL_SERVER_ERROR);
-    		}
-    		if (StringUtils.isEmpty(examName)) {
-                return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("考试名称不能为空"),HttpStatus.BAD_REQUEST);
+                                                   @RequestParam(name = "identityNumberList") List<String> identityNumberList,
+                                                   HttpServletRequest request) {
+        try {
+            User accessUser = getAccessUser();
+            if (accessUser == null) {
+                return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("请先登录"), HttpStatus.INTERNAL_SERVER_ERROR);
+            }
+            if (StringUtils.isEmpty(examName)) {
+                return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("考试名称不能为空"), HttpStatus.BAD_REQUEST);
             }
-    		if (identityNumberList==null||identityNumberList.size()==0) {
-                return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("身份证号不能为空"),HttpStatus.BAD_REQUEST);
+            if (identityNumberList == null || identityNumberList.size() == 0) {
+                return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("身份证号不能为空"), HttpStatus.BAD_REQUEST);
             }
-    		if(identityNumberList.size()>1000){
-	    		return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("单次查询,身份证号数量不能大于1000"),HttpStatus.BAD_REQUEST);
-	    	}
-            List<OutletScore> outletScoreList = outletScoreService.queryExamScoreByExamNameAndIdentityNumbers(examName,identityNumberList,accessUser.getRootOrgId());
-            return new ResponseEntity<SuccessBaseResponse>(new SuccessBaseResponse("查询成功",outletScoreList), HttpStatus.OK);
-    	}catch(Exception e){
-    		e.printStackTrace();
-    		log.error("查询失败",e);
-    		return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("请求失败"), HttpStatus.INTERNAL_SERVER_ERROR);
-    	}
+            if (identityNumberList.size() > 1000) {
+                return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("单次查询,身份证号数量不能大于1000"), HttpStatus.BAD_REQUEST);
+            }
+            List<OutletScore> outletScoreList = outletScoreService.queryExamScoreByExamNameAndIdentityNumbers(examName, identityNumberList, accessUser.getRootOrgId());
+            return new ResponseEntity<SuccessBaseResponse>(new SuccessBaseResponse("查询成功", outletScoreList), HttpStatus.OK);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("查询失败", e);
+            return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("请求失败"), HttpStatus.INTERNAL_SERVER_ERROR);
+        }
     }
-    
-    @ApiOperation(value = "查询成绩:按考试名称、机构ID、学号、课程code查询成绩")
+
+    @ApiOperation(value = "查询成绩:按考试名称/考试代码、机构ID、学号、课程code查询成绩")
     @GetMapping("/batchNameAndCourseCodeAndStudentCodes")
     public ResponseEntity<?> queryExamScores(
-    		@RequestParam(name = "batchName") String batchName,
-    		@RequestParam(name = "courseCode") String courseCode,
-    		@RequestParam(name = "studentCodes") List<String> studentCodes,
-    		HttpServletRequest request){
-    	try{
-    		User accessUser = getAccessUser();
-    		if(accessUser == null){
-    			return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("请先登录"), HttpStatus.INTERNAL_SERVER_ERROR);
-    		}
-	    	if(StringUtils.isEmpty(batchName)){
-	    		return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("考试名称不能为空"),HttpStatus.BAD_REQUEST);
-	    	}
-	    	if(StringUtils.isEmpty(courseCode)){
-	    		return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("课程不能为空"),HttpStatus.BAD_REQUEST);
-	    	}
-	    	if(studentCodes == null || studentCodes.size()==0){
-	    		return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("学号不能为空"),HttpStatus.BAD_REQUEST);
-	    	}
-	    	if(studentCodes.size()>1000){
-	    		return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("单次查询,学号数量不能大于1000"),HttpStatus.BAD_REQUEST);
-	    	}
-	    	List<OutletScore> outletScoreList = outletScoreService.queryExamScoreBy(accessUser.getRootOrgId(),batchName,courseCode,studentCodes);
-	    	return new ResponseEntity<SuccessBaseResponse>(new SuccessBaseResponse("查询成功",outletScoreList), HttpStatus.OK);
-    	}catch(Exception e){
-    		e.printStackTrace();
-    		log.error("查询失败",e);
-    		return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("请求失败"), HttpStatus.INTERNAL_SERVER_ERROR);
-    	}
+            @RequestParam(name = "examCode",required = false) @ApiParam("考试代码") String examCode,
+            @RequestParam(name = "batchName") @Deprecated @ApiParam("考试名称,已废弃,推荐使用examCode") String batchName,
+            @RequestParam(name = "courseCode") String courseCode,
+            @RequestParam(name = "studentCodes") List<String> studentCodes,
+            HttpServletRequest request) {
+        try {
+            User accessUser = getAccessUser();
+            if (accessUser == null) {
+                return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("请先登录"), HttpStatus.INTERNAL_SERVER_ERROR);
+            }
+            if (StringUtils.isEmpty(batchName)) {
+                return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("考试名称不能为空"), HttpStatus.BAD_REQUEST);
+            }
+            if (StringUtils.isEmpty(courseCode)) {
+                return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("课程不能为空"), HttpStatus.BAD_REQUEST);
+            }
+            if (studentCodes == null || studentCodes.size() == 0) {
+                return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("学号不能为空"), HttpStatus.BAD_REQUEST);
+            }
+            if (studentCodes.size() > 1000) {
+                return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("单次查询,学号数量不能大于1000"), HttpStatus.BAD_REQUEST);
+            }
+            //如果考试代码为空,则将考试名称作为考试代码
+            final String finalExamCode;
+            if (StringUtils.isEmpty(courseCode)) {
+                finalExamCode = batchName;
+            } else {
+                finalExamCode = examCode;
+            }
+            List<OutletScore> outletScoreList = outletScoreService.queryExamScoreBy(accessUser.getRootOrgId(),
+                    finalExamCode, courseCode, studentCodes);
+            return new ResponseEntity<SuccessBaseResponse>(new SuccessBaseResponse("查询成功", outletScoreList), HttpStatus.OK);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("查询失败", e);
+            return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("请求失败"), HttpStatus.INTERNAL_SERVER_ERROR);
+        }
     }
-    
-    @ApiOperation(value = "查询成绩明细:按考试名称、机构ID、学号、课程code查询成绩")
+
+    @ApiOperation(value = "查询成绩明细:按考试名称/考试代码、机构ID、学号、课程code查询成绩")
     @GetMapping("/batchQueryScoreDetail")
-    public ResponseEntity<?> batchQueryScoreDetail(@RequestParam(name = "examName")String examName,
-						    		 @RequestParam(name = "studentCode")String studentCode,
-						    		 @RequestParam(name = "courseCode")String courseCode,
-						    		 HttpServletRequest request){
-    	User accessUser = getAccessUser();
-    	if(accessUser == null){
-			return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("请先登录"), HttpStatus.INTERNAL_SERVER_ERROR);
-		}
-		if(examName == null){
-			return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("examName is not null"), HttpStatus.INTERNAL_SERVER_ERROR);
-		}
-		if(studentCode == null){
-			return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("studentCode is not null"), HttpStatus.INTERNAL_SERVER_ERROR);
-		}
-		if(courseCode == null){
-			return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("courseCode is not null"), HttpStatus.INTERNAL_SERVER_ERROR);
-		}
-    	try {
-			List<OutletScore> outletScores = outletScoreService.queryExamScoreBy(accessUser.getRootOrgId(), examName, studentCode, courseCode);
-			return new ResponseEntity<SuccessBaseResponse>(new SuccessBaseResponse("查询成功",outletScores), HttpStatus.OK);
-    	} catch (Exception e) {
-			e.printStackTrace();
-			log.error("查询失败",e);
-			return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("查询失败"), HttpStatus.INTERNAL_SERVER_ERROR);
-		}
+    public ResponseEntity<?> batchQueryScoreDetail(@RequestParam(name = "examCode",required = false) @ApiParam("考试代码") String examCode,
+                                                   @RequestParam(name = "examName") @Deprecated @ApiParam("考试名称,已弃用,推荐使用examCode") String examName,
+                                                   @RequestParam(name = "studentCode") String studentCode,
+                                                   @RequestParam(name = "courseCode") String courseCode,
+                                                   HttpServletRequest request) {
+        User accessUser = getAccessUser();
+        if (accessUser == null) {
+            return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("请先登录"), HttpStatus.INTERNAL_SERVER_ERROR);
+        }
+        if (examName == null) {
+            return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("examName is not null"), HttpStatus.INTERNAL_SERVER_ERROR);
+        }
+        if (studentCode == null) {
+            return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("studentCode is not null"), HttpStatus.INTERNAL_SERVER_ERROR);
+        }
+        if (courseCode == null) {
+            return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("courseCode is not null"), HttpStatus.INTERNAL_SERVER_ERROR);
+        }
+        try {
+            final String finalExamCode;
+            if (StringUtils.isEmpty(examCode)){
+                finalExamCode=examName;
+            }else {
+                finalExamCode=examCode;
+            }
+            List<OutletScore> outletScores = outletScoreService.queryExamScoreBy(accessUser.getRootOrgId(), finalExamCode, studentCode, courseCode);
+            return new ResponseEntity<SuccessBaseResponse>(new SuccessBaseResponse("查询成功", outletScores), HttpStatus.OK);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("查询失败", e);
+            return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("查询失败"), HttpStatus.INTERNAL_SERVER_ERROR);
+        }
     }
-    
+
 }

+ 17 - 15
examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/controller/swufe/SwufeExamController.java

@@ -1,18 +1,5 @@
 package cn.com.qmth.examcloud.exchange.outer.api.controller.swufe;
 
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import com.google.common.collect.Maps;
-
 import cn.com.qmth.examcloud.api.commons.security.bean.User;
 import cn.com.qmth.examcloud.commons.util.DateUtil;
 import cn.com.qmth.examcloud.commons.util.DateUtil.DatePatterns;
@@ -22,7 +9,17 @@ import cn.com.qmth.examcloud.examwork.api.request.SaveExamReq;
 import cn.com.qmth.examcloud.examwork.api.response.GetExamResp;
 import cn.com.qmth.examcloud.exchange.outer.api.controller.swufe.bean.SwufeCreateExamDomain;
 import cn.com.qmth.examcloud.web.support.ControllerSupport;
+import com.google.common.collect.Maps;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
 
 /**
  * @author chenken
@@ -62,7 +59,12 @@ public class SwufeExamController extends ControllerSupport {
 		examCloudService.saveExam(saveExamReq);
 
 		GetExamReq req = new GetExamReq();
-		req.setName(examReq.getName());
+		//如果考试code为空,则将name作为code
+		if (StringUtils.isEmpty(examReq.getCode())){
+			req.setCode(examReq.getName());
+		}else {
+			req.setCode(examReq.getCode());
+		}
 		req.setRootOrgId(rootOrgId);
 		GetExamResp resp = examCloudService.getExam(req);
 
@@ -76,7 +78,7 @@ public class SwufeExamController extends ControllerSupport {
 	 * 方法注释
 	 *
 	 * @author WANGWEI
-	 * @param examStudentImportDTO
+	 * @param exam
 	 */
 	private void tranTimes(SwufeCreateExamDomain exam) {
 		String beginTime = exam.getBeginTime();

+ 8 - 9
examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/controller/swufe/SwufeExamVerifyPhotoController.java

@@ -1,7 +1,12 @@
 package cn.com.qmth.examcloud.exchange.outer.api.controller.swufe;
 
-import javax.servlet.http.HttpServletRequest;
-
+import cn.com.qmth.examcloud.api.commons.security.bean.User;
+import cn.com.qmth.examcloud.core.oe.admin.api.ExamRecordCloudService;
+import cn.com.qmth.examcloud.core.oe.admin.api.request.GetExamPhotoVerifyDataReq;
+import cn.com.qmth.examcloud.core.oe.admin.api.response.GetExamPhotoVerifyDataResp;
+import cn.com.qmth.examcloud.exchange.base.response.FailureBaseResponse;
+import cn.com.qmth.examcloud.exchange.base.response.SuccessBaseResponse;
+import cn.com.qmth.examcloud.web.support.ControllerSupport;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -10,13 +15,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import cn.com.qmth.examcloud.api.commons.security.bean.User;
-import cn.com.qmth.examcloud.core.oe.admin.api.ExamRecordCloudService;
-import cn.com.qmth.examcloud.core.oe.admin.api.request.GetExamPhotoVerifyDataReq;
-import cn.com.qmth.examcloud.core.oe.admin.api.response.GetExamPhotoVerifyDataResp;
-import cn.com.qmth.examcloud.exchange.base.response.FailureBaseResponse;
-import cn.com.qmth.examcloud.exchange.base.response.SuccessBaseResponse;
-import cn.com.qmth.examcloud.web.support.ControllerSupport;
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * @author chenken

+ 18 - 15
examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/controller/swufe/SwufeStudentInfoController.java

@@ -1,18 +1,5 @@
 package cn.com.qmth.examcloud.exchange.outer.api.controller.swufe;
 
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-
 import cn.com.qmth.examcloud.api.commons.security.bean.User;
 import cn.com.qmth.examcloud.core.basic.api.StudentCloudService;
 import cn.com.qmth.examcloud.core.basic.api.request.SaveStudentReq;
@@ -28,6 +15,18 @@ import cn.com.qmth.examcloud.examwork.api.response.SaveExamStudentResp;
 import cn.com.qmth.examcloud.exchange.base.enums.CourseLevel;
 import cn.com.qmth.examcloud.exchange.outer.api.controller.swufe.bean.SwufeSaveExamStudentDomain;
 import cn.com.qmth.examcloud.web.support.ControllerSupport;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author chenken
@@ -56,9 +55,13 @@ public class SwufeStudentInfoController extends ControllerSupport {
 
 		List<Long> examStudentIdList = Lists.newArrayList();
 		for (SwufeSaveExamStudentDomain cur : studentInfoReqs) {
-
 			GetExamReq req = new GetExamReq();
-			req.setName(cur.getExamName());
+			//如果没有传examCode,则以examName当作examCode
+			if (StringUtils.isEmpty(cur.getExamCode())){
+				req.setCode(cur.getExamName());
+			}else {
+				req.setCode(cur.getExamCode());
+			}
 			req.setRootOrgId(rootOrgId);
 			GetExamResp resp = examCloudService.getExam(req);
 

+ 14 - 0
examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/controller/swufe/bean/SwufeSaveExamStudentDomain.java

@@ -10,9 +10,15 @@ public class SwufeSaveExamStudentDomain implements JsonSerializable{
 	 * 考试ID
 	 */
 	private Long examId;
+	/**
+	 * 考试代码
+	 */
+	private String examCode;
 	/**
 	 * 考试名称
+	 * @deprecated replaced by examCode
 	 */
+	@Deprecated
 	private String examName;
 	/**
 	 * 学生姓名
@@ -96,6 +102,14 @@ public class SwufeSaveExamStudentDomain implements JsonSerializable{
 		this.examId = examId;
 	}
 
+	public String getExamCode() {
+		return examCode;
+	}
+
+	public void setExamCode(String examCode) {
+		this.examCode = examCode;
+	}
+
 	public String getExamName() {
 		return examName;
 	}

+ 80 - 59
examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/controller/sydx/SydxScoreController.java

@@ -1,17 +1,21 @@
 package cn.com.qmth.examcloud.exchange.outer.api.controller.sydx;
 
 import cn.com.qmth.examcloud.api.commons.security.bean.User;
+import cn.com.qmth.examcloud.commons.util.StringUtil;
 import cn.com.qmth.examcloud.exchange.base.response.FailureBaseResponse;
 import cn.com.qmth.examcloud.exchange.outer.api.controller.sydx.bean.SydxExamScoreDomain;
 import cn.com.qmth.examcloud.exchange.outer.service.OutletScoreService;
 import cn.com.qmth.examcloud.exchange.outer.service.bean.OutletScore;
 import cn.com.qmth.examcloud.web.support.ControllerSupport;
+import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.List;
@@ -28,69 +32,86 @@ import java.util.List;
 @RequestMapping("/api/ecs_outlet/sydx/score")
 public class SydxScoreController extends ControllerSupport {
 
-	@Autowired
-	private OutletScoreService outletScoreService;
+    @Autowired
+    private OutletScoreService outletScoreService;
 
-	@ApiOperation(value = "查询成绩:根据考试名称、机构ID和学生考试方式查询")
-	@GetMapping
-	public ResponseEntity<?> query(@RequestParam(name = "examRemark") String examRemark,
-								   @RequestParam(name = "examStuRemark", required = false) String examStuRemark,
-								   HttpServletRequest request) {
-		try {
-			if (StringUtils.isEmpty(examRemark)) {
-				return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("examRemark不能为空"), HttpStatus.BAD_REQUEST);
-			}
-			User accessUser = getAccessUser();
-			Long orgId = accessUser.getRootOrgId();
-			List<OutletScore> outletScoreList = outletScoreService.queryExamScore(examRemark, examStuRemark, orgId);
+    @ApiOperation(value = "查询成绩:根据考试名称、机构ID和学生考试方式查询")
+    @GetMapping
+    public ResponseEntity<?> query(
+            @RequestParam(name = "examCode", required = false) @ApiParam(value = "考试代码,推荐使用") String examCode,
+            @RequestParam(name = "examRemark") @Deprecated @ApiParam(value = "考试名称,已弃用,推荐使用examCode") String examRemark,
+            @RequestParam(name = "examStuRemark", required = false) String examStuRemark,
+            HttpServletRequest request) {
+        try {
+            if (StringUtils.isEmpty(examRemark)) {
+                return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("examRemark不能为空"), HttpStatus.BAD_REQUEST);
+            }
+            User accessUser = getAccessUser();
+            Long orgId = accessUser.getRootOrgId();
+            //如果考试代码为空,则将考试名称作为考试代码
+            final String finalExamCode;
+            if (StringUtils.isEmpty(examCode)) {
+                finalExamCode = examRemark;
+            } else {
+                finalExamCode = examCode;
+            }
+            List<OutletScore> outletScoreList = outletScoreService.queryExamScore(finalExamCode, examStuRemark, orgId);
 
-			return new ResponseEntity<List<OutletScore>>(outletScoreList, HttpStatus.OK);
-		} catch (Exception e) {
-			e.printStackTrace();
-			return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("请求失败"), HttpStatus.INTERNAL_SERVER_ERROR);
-		}
+            return new ResponseEntity<List<OutletScore>>(outletScoreList, HttpStatus.OK);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("请求失败"), HttpStatus.INTERNAL_SERVER_ERROR);
+        }
 
-	}
+    }
 
-	@ApiOperation(value = "查询成绩:按考生身份证号、机构ID查询成绩")
-	@GetMapping("/identityNumber")
-	public ResponseEntity<?> queryByIdentityNumber(@RequestParam(name = "identityNumberList") List<String> identityNumberList, HttpServletRequest request) {
-		try {
-			if (identityNumberList == null || identityNumberList.size() == 0) {
-				return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("身份证号不能为空"), HttpStatus.BAD_REQUEST);
-			}
-			User accessUser = getAccessUser();
-			List<OutletScore> outletScoreList = outletScoreService.queryExamScoreByIdentityNumbers(identityNumberList, accessUser.getRootOrgId());
-			return new ResponseEntity<List<OutletScore>>(outletScoreList, HttpStatus.OK);
-		} catch (Exception e) {
-			e.printStackTrace();
-			return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("请求失败"), HttpStatus.INTERNAL_SERVER_ERROR);
-		}
-	}
+    @ApiOperation(value = "查询成绩:按考生身份证号、机构ID查询成绩")
+    @GetMapping("/identityNumber")
+    public ResponseEntity<?> queryByIdentityNumber(@RequestParam(name = "identityNumberList") List<String> identityNumberList, HttpServletRequest request) {
+        try {
+            if (identityNumberList == null || identityNumberList.size() == 0) {
+                return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("身份证号不能为空"), HttpStatus.BAD_REQUEST);
+            }
+            User accessUser = getAccessUser();
+            List<OutletScore> outletScoreList = outletScoreService.queryExamScoreByIdentityNumbers(identityNumberList, accessUser.getRootOrgId());
+            return new ResponseEntity<List<OutletScore>>(outletScoreList, HttpStatus.OK);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("请求失败"), HttpStatus.INTERNAL_SERVER_ERROR);
+        }
+    }
 
-	@ApiOperation(value = "查询成绩:按考试名称、机构ID、学号、课程code查询成绩")
-	@PostMapping("/getExamScores")
-	public ResponseEntity<?> queryExamScores(@RequestBody SydxExamScoreDomain sydxExamScoreDomain) {
-		try {
-			if (StringUtils.isEmpty(sydxExamScoreDomain.getBatchName())) {
-				return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("考试批次名称不能为空"), HttpStatus.BAD_REQUEST);
-			}
-			if (StringUtils.isEmpty(sydxExamScoreDomain.getCourseCode())) {
-				return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("课程不能为空"), HttpStatus.BAD_REQUEST);
-			}
-			if (sydxExamScoreDomain.getStudentCodes() == null || sydxExamScoreDomain.getStudentCodes().size() == 0) {
-				return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("学号不能为空"), HttpStatus.BAD_REQUEST);
-			}
-			if (sydxExamScoreDomain.getStudentCodes().size() > 1000) {
-				return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("单次查询,学号数量不能大于1000"), HttpStatus.BAD_REQUEST);
-			}
-			User accessUser = getAccessUser();
-			List<OutletScore> outletScoreList = outletScoreService.queryExamScoreBy(accessUser.getRootOrgId(), sydxExamScoreDomain.getBatchName(), sydxExamScoreDomain.getCourseCode(), sydxExamScoreDomain.getStudentCodes());
-			return new ResponseEntity<List<OutletScore>>(outletScoreList, HttpStatus.OK);
-		} catch (Exception e) {
-			e.printStackTrace();
-			return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("请求失败"), HttpStatus.INTERNAL_SERVER_ERROR);
-		}
-	}
+    @ApiOperation(value = "查询成绩:按考试名称、机构ID、学号、课程code查询成绩")
+    @PostMapping("/getExamScores")
+    public ResponseEntity<?> queryExamScores(@RequestBody SydxExamScoreDomain sydxExamScoreDomain) {
+        try {
+            if (StringUtils.isEmpty(sydxExamScoreDomain.getBatchName())) {
+                return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("考试批次名称不能为空"), HttpStatus.BAD_REQUEST);
+            }
+            if (StringUtils.isEmpty(sydxExamScoreDomain.getCourseCode())) {
+                return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("课程不能为空"), HttpStatus.BAD_REQUEST);
+            }
+            if (sydxExamScoreDomain.getStudentCodes() == null || sydxExamScoreDomain.getStudentCodes().size() == 0) {
+                return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("学号不能为空"), HttpStatus.BAD_REQUEST);
+            }
+            if (sydxExamScoreDomain.getStudentCodes().size() > 1000) {
+                return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("单次查询,学号数量不能大于1000"), HttpStatus.BAD_REQUEST);
+            }
+            User accessUser = getAccessUser();
+            //如果考试代码为空,则将考试名称作为考试代码
+            final String finalExamCode;
+            if (StringUtils.isEmpty(sydxExamScoreDomain.getCourseCode())) {
+                finalExamCode = sydxExamScoreDomain.getBatchName();
+            } else {
+                finalExamCode = sydxExamScoreDomain.getExamCode();
+            }
+            List<OutletScore> outletScoreList = outletScoreService.queryExamScoreBy(accessUser.getRootOrgId(),
+                    finalExamCode, sydxExamScoreDomain.getCourseCode(), sydxExamScoreDomain.getStudentCodes());
+            return new ResponseEntity<List<OutletScore>>(outletScoreList, HttpStatus.OK);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return new ResponseEntity<FailureBaseResponse>(new FailureBaseResponse("请求失败"), HttpStatus.INTERNAL_SERVER_ERROR);
+        }
+    }
 
 }

+ 17 - 0
examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/controller/sydx/bean/SydxExamScoreDomain.java

@@ -1,6 +1,7 @@
 package cn.com.qmth.examcloud.exchange.outer.api.controller.sydx.bean;
 
 import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
+import io.swagger.annotations.ApiModelProperty;
 
 import java.util.List;
 
@@ -11,13 +12,29 @@ public class SydxExamScoreDomain implements JsonSerializable {
 	/**
 	 * 考试批次名称
 	 */
+	@Deprecated
+	@ApiModelProperty(value = "考试批次名称,已废弃,推荐使用examCode")
 	private String batchName;
 
+	/**
+	 * 考试代码
+	 */
+	@ApiModelProperty(value = "考试代码,推荐使用")
+	private String examCode;
+
 	/**
 	 * 机构Id
 	 */
 	private String courseCode;
 
+	public String getExamCode() {
+		return examCode;
+	}
+
+	public void setExamCode(String examCode) {
+		this.examCode = examCode;
+	}
+
 	/**
 	 * 学生代码
 	 */

+ 1 - 0
examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/provider/GetScoreDataServiceProvider.java

@@ -107,6 +107,7 @@ public class GetScoreDataServiceProvider extends ControllerSupport implements Ge
 		}
 		QueryScoreDataReq queryScoreDataReq = new QueryScoreDataReq();
 		queryScoreDataReq.setCourseCode(req.getCourseCode());
+		queryScoreDataReq.setExamCode(req.getExamCode());
 		queryScoreDataReq.setExamName(req.getExamName());
 		queryScoreDataReq.setIdentityNumber(req.getIdentityNumber());
 		queryScoreDataReq.setRootOrgId(req.getRootOrgId());

+ 6 - 1
examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/provider/cug/CugOuterServiceProvider.java

@@ -149,7 +149,12 @@ public class CugOuterServiceProvider extends ControllerSupport implements CugOut
 		}
 
 		GetExamReq getExamReq = new GetExamReq();
-		getExamReq.setName(examName);
+		//如果考试代码为空,则将考试名称作为考试代码
+		if (StringUtils.isEmpty(req.getExamCode())){
+			getExamReq.setCode(examName);
+		}else {
+			getExamReq.setCode(req.getExamCode());
+		}
 		getExamReq.setRootOrgId(rootOrgId);
 		GetExamResp getExamResp = examCloudService.getExam(getExamReq);
 

+ 13 - 0
examcloud-exchange-outer-api/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/request/OuterQueryScoreDataReq.java

@@ -1,6 +1,7 @@
 package cn.com.qmth.examcloud.exchange.outer.api.request;
 
 import cn.com.qmth.examcloud.api.commons.exchange.EnterpriseRequest;
+import io.swagger.annotations.ApiModelProperty;
 
 /**
  * 
@@ -16,6 +17,10 @@ public class OuterQueryScoreDataReq extends EnterpriseRequest{
 	 */
 	private static final long serialVersionUID = -5033520077132433253L;
 
+	@ApiModelProperty(value = "考试代码,推荐使用")
+	private String examCode;
+	@ApiModelProperty(value = "考试名称,已弃用,推荐使用examCode")
+	@Deprecated
 	private String examName;
 	
 	private Long rootOrgId;
@@ -34,6 +39,14 @@ public class OuterQueryScoreDataReq extends EnterpriseRequest{
 		this.examName = examName;
 	}
 
+	public String getExamCode() {
+		return examCode;
+	}
+
+	public void setExamCode(String examCode) {
+		this.examCode = examCode;
+	}
+
 	public Long getRootOrgId() {
 		return rootOrgId;
 	}

+ 10 - 0
examcloud-exchange-outer-api/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/request/cug/OuterSaveCugStudentAndExamStudentReq.java

@@ -44,6 +44,8 @@ public class OuterSaveCugStudentAndExamStudentReq extends EnterpriseRequest {
 	@ApiModelProperty(value = "操作者", example = "XX系统", required = true)
 	private String operator;
 
+	@ApiModelProperty(value = "考试代码", example = "2018年秋季入学考试", required = false)
+	private String examCode;
 	@ApiModelProperty(value = "考试名称", example = "2018年秋季入学考试", required = true)
 	private String examName;
 
@@ -59,6 +61,14 @@ public class OuterSaveCugStudentAndExamStudentReq extends EnterpriseRequest {
 	@ApiModelProperty(value = "信息采集人", example = "王二小", required = false)
 	private String infoCollector;
 
+	public String getExamCode() {
+		return examCode;
+	}
+
+	public void setExamCode(String examCode) {
+		this.examCode = examCode;
+	}
+
 	public String getName() {
 		return name;
 	}

+ 6 - 6
examcloud-exchange-outer-service/src/main/java/cn/com/qmth/examcloud/exchange/outer/service/OutletScoreService.java

@@ -15,13 +15,13 @@ public interface OutletScoreService {
 	/**
 	 * 
 	 * @param rootOrgId
-	 * @param examName
+	 * @param examCode
 	 * @param studentCode
 	 * @param courseCode
 	 * @return
 	 * @throws Exception
 	 */
-	List<OutletScore> queryExamScoreBy(Long rootOrgId,String examName,String studentCode,String courseCode) throws Exception;
+	List<OutletScore> queryExamScoreBy(Long rootOrgId,String examCode,String studentCode,String courseCode) throws Exception;
 	/**
 	 * 
 	 * @param examRemark
@@ -39,18 +39,18 @@ public interface OutletScoreService {
     List<OutletScore> queryExamScoreByIdentityNumbers(List<String> identityNumbers, Long examOrgId)  throws Exception;
     /**
      * 按考试名称和身份证号查询成绩
-     * @param identityNumber 身份证号
+     * @param identityNumbers 身份证号
      * @return
      */
     List<OutletScore> queryExamScoreByExamNameAndIdentityNumbers(String examName,List<String> identityNumbers, Long examOrgId) throws Exception;
     /**
-     * 根据机构ID,批次名称,课程code,学号List查询考生成绩
+     * 根据机构ID,课程代码,课程code,学号List查询考生成绩
      * @param orgId
-     * @param batchName
+     * @param examCode
      * @param courseCode
      * @param studentCodes
      * @return
      */
-    List<OutletScore> queryExamScoreBy(Long orgId,String batchName, String courseCode,List<String> studentCodes) throws Exception;
+    List<OutletScore> queryExamScoreBy(Long orgId,String examCode, String courseCode,List<String> studentCodes) throws Exception;
 }
 

+ 9 - 9
examcloud-exchange-outer-service/src/main/java/cn/com/qmth/examcloud/exchange/outer/service/impl/OutletScoreServiceImpl.java

@@ -71,13 +71,13 @@ public class OutletScoreServiceImpl implements OutletScoreService{
 	 * examStuRemark不再使用  2018-10-15 chenken
 	 */
 	@Override
-	public List<OutletScore> queryExamScore(String examName, String examStuRemark,Long rootOrgId) throws Exception {
-		if(StringUtils.isBlank(examName) || rootOrgId == null){
+	public List<OutletScore> queryExamScore(String examCode, String examStuRemark,Long rootOrgId) throws Exception {
+		if(StringUtils.isBlank(examCode) || rootOrgId == null){
 			return null;
 		}
 		
 		GetExamReq getExamReq = new GetExamReq();
-		getExamReq.setName(examName);
+		getExamReq.setCode(examCode);
 		getExamReq.setRootOrgId(rootOrgId);
 		GetExamResp getExamResp = examCloudService.getExam(getExamReq);
 		Long examId = getExamResp.getId();
@@ -114,9 +114,9 @@ public class OutletScoreServiceImpl implements OutletScoreService{
 	}
 	
 	@Override
-	public List<OutletScore> queryExamScoreBy(Long rootOrgId,String examName,String courseCode, List<String> studentCodes) throws Exception {
+	public List<OutletScore> queryExamScoreBy(Long rootOrgId, String examCode, String courseCode, List<String> studentCodes) throws Exception {
 		GetExamReq getExamReq = new GetExamReq();
-		getExamReq.setName(examName);
+		getExamReq.setCode(examCode);
 		getExamReq.setRootOrgId(rootOrgId);
 		GetExamResp getExamResp = examCloudService.getExam(getExamReq);
 		Long examId = getExamResp.getId();
@@ -327,13 +327,13 @@ public class OutletScoreServiceImpl implements OutletScoreService{
 	}
 
 	@Override
-	public List<OutletScore> queryExamScoreBy(Long rootOrgId, String examName,String studentCode, String courseCode) throws Exception {
-		if(rootOrgId == null || examName == null || studentCode == null || courseCode == null){
+	public List<OutletScore> queryExamScoreBy(Long rootOrgId, String examCode, String studentCode, String courseCode) throws Exception {
+		if(rootOrgId == null || examCode == null || studentCode == null || courseCode == null){
 			return null;
 		}
 		
 		GetExamReq getExamReq = new GetExamReq();
-		getExamReq.setName(examName);
+		getExamReq.setCode(examCode);
 		getExamReq.setRootOrgId(rootOrgId);
 		GetExamResp getExamResp = examCloudService.getExam(getExamReq);
 		Long examId = getExamResp.getId();
@@ -354,7 +354,7 @@ public class OutletScoreServiceImpl implements OutletScoreService{
 		for(ExamScoreDataBean examScoreData:examScoreDataList){
 			OutletScore outletScore = new OutletScore();
 			
-			outletScore.setExamName(examName);
+			outletScore.setExamName(examCode);
 			outletScore.setCourseCode(courseCode);
 			outletScore.setCourseName(examScoreData.getCourseName());