Browse Source

queryFinalScoreData

deason 7 months ago
parent
commit
df10a523a8

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

@@ -3,12 +3,17 @@ package cn.com.qmth.examcloud.exchange.outer.api.provider;
 import cn.com.qmth.examcloud.commons.exception.StatusException;
 import cn.com.qmth.examcloud.core.oe.admin.api.ExamScoreDataCloudService;
 import cn.com.qmth.examcloud.core.oe.admin.api.bean.ScoreDataBean;
+import cn.com.qmth.examcloud.core.oe.admin.api.request.GetFinalScoreDataReq;
 import cn.com.qmth.examcloud.core.oe.admin.api.request.GetScoreDataReq;
 import cn.com.qmth.examcloud.core.oe.admin.api.request.QueryScoreDataReq;
 import cn.com.qmth.examcloud.core.oe.admin.api.request.QueryScoreListReq;
+import cn.com.qmth.examcloud.core.oe.admin.api.response.GetFinalScoreDataResp;
 import cn.com.qmth.examcloud.core.oe.admin.api.response.GetScoreDataResp;
 import cn.com.qmth.examcloud.core.oe.admin.api.response.QueryScoreDataResp;
 import cn.com.qmth.examcloud.core.oe.admin.api.response.QueryScoreListResp;
+import cn.com.qmth.examcloud.examwork.api.ExamCloudService;
+import cn.com.qmth.examcloud.examwork.api.request.GetExamReq;
+import cn.com.qmth.examcloud.examwork.api.response.GetExamResp;
 import cn.com.qmth.examcloud.exchange.outer.api.GetScoreDataService;
 import cn.com.qmth.examcloud.exchange.outer.api.bean.OuterScoreDataBean;
 import cn.com.qmth.examcloud.exchange.outer.api.request.OuterGetScoreDataReq;
@@ -42,6 +47,9 @@ public class GetScoreDataServiceProvider extends ControllerSupport implements Ge
     @Autowired
     private ExamScoreDataCloudService examScoreDataCloudService;
 
+    @Autowired
+    private ExamCloudService examCloudService;
+
     @ApiOperation(value = "按某个考试记录ID获取成绩数据", hidden = true)
     @PostMapping("/getScoreData")
     @Override
@@ -78,13 +86,45 @@ public class GetScoreDataServiceProvider extends ControllerSupport implements Ge
         return outerGetScoreDataResp;
     }
 
-
     @ApiOperation(value = "按某个考生获取最终成绩数据", notes = "若该考生存在考多次情况,会按成绩规则只保留一条最终成绩记录")
     @PostMapping("/queryFinalScoreData")
     @Override
     public OuterQueryFinalScoreDataResp queryFinalScoreData(@RequestBody OuterQueryFinalScoreDataReq req) {
-        // to do
-        return new OuterQueryFinalScoreDataResp();
+        if (req.getRootOrgId() == null) {
+            throw new StatusException("1000001", "rootOrgId不能为空");
+        }
+        if (!getEnterpriseRootOrgId().equals(req.getRootOrgId())) {
+            throw new StatusException("1000002", "rootOrgId错误");
+        }
+        if (StringUtils.isBlank(req.getCourseCode())) {
+            throw new StatusException("1000004", "课程code不能为空");
+        }
+        if (StringUtils.isBlank(req.getIdentityNumber()) && StringUtils.isBlank(req.getStudentCode())) {
+            throw new StatusException("1000006", "证件号和学号不能都为空");
+        }
+
+        GetExamReq examQuery = new GetExamReq();
+        examQuery.setRootOrgId(req.getRootOrgId());
+        examQuery.setCode(req.getExamCode());
+        examQuery.setName(req.getExamName());
+        GetExamResp examResp = examCloudService.getExam(examQuery);
+
+        GetFinalScoreDataReq query = new GetFinalScoreDataReq();
+        query.setRootOrgId(req.getRootOrgId());
+        query.setExamId(examResp.getId());
+        query.setCourseCode(req.getCourseCode());
+        query.setStudentCode(req.getStudentCode());
+        query.setIdentityNumber(req.getIdentityNumber());
+        GetFinalScoreDataResp resp = examScoreDataCloudService.getFinalScoreData(query);
+
+        OuterQueryFinalScoreDataResp result = new OuterQueryFinalScoreDataResp();
+        result.setAbsent(resp.getAbsent());
+        result.setIllegality(resp.getIllegality());
+        result.setAudit(resp.getAudit());
+        if (resp.getScoreDataBean() != null) {
+            result.setTotalScore(resp.getScoreDataBean().getTotalScore());
+        }
+        return result;
     }
 
     @ApiOperation(value = "按某个考生获取成绩数据", notes = "若该考生存在考多次情况,会对应有多条成绩记录")