Przeglądaj źródła

添加获取考试完成情况接口

lideyin 5 lat temu
rodzic
commit
73712a3db9

+ 33 - 5
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamStatisticsCloudServiceProvider.java

@@ -1,25 +1,24 @@
 package cn.com.qmth.examcloud.core.oe.admin.api.provider;
 
 import cn.com.qmth.examcloud.api.commons.exchange.PageInfo;
+import cn.com.qmth.examcloud.commons.exception.StatusException;
 import cn.com.qmth.examcloud.core.oe.admin.api.ExamStatisticsCloudService;
 import cn.com.qmth.examcloud.core.oe.admin.api.bean.ExamCompletionBean;
 import cn.com.qmth.examcloud.core.oe.admin.api.request.GetExamCompletionStatisticsReq;
 import cn.com.qmth.examcloud.core.oe.admin.api.response.GetExamCompletionStatisticsResp;
+import cn.com.qmth.examcloud.core.oe.common.entity.ExamStudentEntity;
+import cn.com.qmth.examcloud.core.oe.common.repository.ExamStudentRepo;
 import cn.com.qmth.examcloud.web.support.ControllerSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.domain.Sort;
+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.ArrayList;
-import java.util.Iterator;
 import java.util.List;
-import java.util.function.Function;
 
 /**
  * @Description 考试统计类
@@ -32,14 +31,43 @@ import java.util.function.Function;
 @RequestMapping("${$rmp.cloud.oe}/examStatistics")
 public class ExamStatisticsCloudServiceProvider extends ControllerSupport implements ExamStatisticsCloudService {
 
+    @Autowired
+    private ExamStudentRepo examStudentRepo;
+
     @Override
     @ApiOperation(value = "获取考试完成情况统计信息")
     @PostMapping("/getExamCompletionStatistics")
     public GetExamCompletionStatisticsResp getExamCompletionStatistics(@RequestBody GetExamCompletionStatisticsReq req) {
+        if (req.getPageNo()==null){
+            throw new StatusException("100001","当前页码不允许为空");
+        }
+        if (req.getPageSize()==null){
+            throw new StatusException("100002","每页条数不允许为空");
+        }
+        if (req.getRootOrgId()==null){
+            throw new StatusException("100003","学校id不允许为空");
+        }
         GetExamCompletionStatisticsResp resp = new GetExamCompletionStatisticsResp();
         PageInfo<ExamCompletionBeanW> examCompletionInfo = null;//TODO 调王伟接口获取
         PageInfo<ExamCompletionBean> pagedList = getPageInfoFrom(examCompletionInfo);
         resp.setPagedExamCompletionList(pagedList);
+        List<ExamCompletionBean> list = pagedList.getList();
+        for (ExamCompletionBean b : list) {
+
+            List<ExamStudentEntity> examStudentList = examStudentRepo.findByExamId(b.getExamId());
+            long completeCount = 0;
+            long planCount = 0;
+            long percent = 0;
+            if (examCompletionInfo != null && !examStudentList.isEmpty()) {
+                completeCount = examStudentList.stream().filter(p -> p.getFinished()).count();
+                planCount = examStudentList.size();
+                percent = completeCount * 100 / planCount;
+            }
+
+            b.setPlanNum(planCount);
+            b.setCompleteNum(completeCount);
+            b.setCompletePercent(percent);
+        }
         return resp;
     }