Răsfoiți Sursa

3.1.0-开放接口

xiaof 3 ani în urmă
părinte
comite
f8f40d6006

+ 190 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/open/ExamStudentScore.java

@@ -0,0 +1,190 @@
+package com.qmth.distributed.print.business.bean.dto.open;
+
+import java.util.List;
+
+public class ExamStudentScore {
+
+    private String name;
+    private String studentCode;
+    private String paperNumber;
+    private String paperName;
+    private String paperType;
+    private String college;
+    private String major;
+    private String className;
+    private String teacherName;
+    private String teacherCode;
+    private Integer status;
+    private Double totalScore;
+    private Double objectiveScore;
+    private Double subjectiveScore;
+    private List<TopicInfo> objectiveScoreDetail;
+    private List<TopicInfo> subjectiveScoreDetail;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getStudentCode() {
+        return studentCode;
+    }
+
+    public void setStudentCode(String studentCode) {
+        this.studentCode = studentCode;
+    }
+
+    public String getPaperNumber() {
+        return paperNumber;
+    }
+
+    public void setPaperNumber(String paperNumber) {
+        this.paperNumber = paperNumber;
+    }
+
+    public String getPaperName() {
+        return paperName;
+    }
+
+    public void setPaperName(String paperName) {
+        this.paperName = paperName;
+    }
+
+    public String getPaperType() {
+        return paperType;
+    }
+
+    public void setPaperType(String paperType) {
+        this.paperType = paperType;
+    }
+
+    public String getCollege() {
+        return college;
+    }
+
+    public void setCollege(String college) {
+        this.college = college;
+    }
+
+    public String getMajor() {
+        return major;
+    }
+
+    public void setMajor(String major) {
+        this.major = major;
+    }
+
+    public String getClassName() {
+        return className;
+    }
+
+    public void setClassName(String className) {
+        this.className = className;
+    }
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public String getTeacherCode() {
+        return teacherCode;
+    }
+
+    public void setTeacherCode(String teacherCode) {
+        this.teacherCode = teacherCode;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Double getTotalScore() {
+        return totalScore;
+    }
+
+    public void setTotalScore(Double totalScore) {
+        this.totalScore = totalScore;
+    }
+
+    public Double getObjectiveScore() {
+        return objectiveScore;
+    }
+
+    public void setObjectiveScore(Double objectiveScore) {
+        this.objectiveScore = objectiveScore;
+    }
+
+    public Double getSubjectiveScore() {
+        return subjectiveScore;
+    }
+
+    public void setSubjectiveScore(Double subjectiveScore) {
+        this.subjectiveScore = subjectiveScore;
+    }
+
+    public List<TopicInfo> getObjectiveScoreDetail() {
+        return objectiveScoreDetail;
+    }
+
+    public void setObjectiveScoreDetail(List<TopicInfo> objectiveScoreDetail) {
+        this.objectiveScoreDetail = objectiveScoreDetail;
+    }
+
+    public List<TopicInfo> getSubjectiveScoreDetail() {
+        return subjectiveScoreDetail;
+    }
+
+    public void setSubjectiveScoreDetail(List<TopicInfo> subjectiveScoreDetail) {
+        this.subjectiveScoreDetail = subjectiveScoreDetail;
+    }
+
+    public static class TopicInfo{
+        private String score;
+        private String answer;
+        private Integer mainNumber;
+        private String subNumber;
+
+        public String getScore() {
+            return score;
+        }
+
+        public void setScore(String score) {
+            this.score = score;
+        }
+
+        public String getAnswer() {
+            return answer;
+        }
+
+        public void setAnswer(String answer) {
+            this.answer = answer;
+        }
+
+        public Integer getMainNumber() {
+            return mainNumber;
+        }
+
+        public void setMainNumber(Integer mainNumber) {
+            this.mainNumber = mainNumber;
+        }
+
+        public String getSubNumber() {
+            return subNumber;
+        }
+
+        public void setSubNumber(String subNumber) {
+            this.subNumber = subNumber;
+        }
+    }
+}

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/GradeBatchPaperMapper.java

@@ -54,5 +54,5 @@ public interface GradeBatchPaperMapper extends BaseMapper<GradeBatchPaper> {
                                                      @Param("schoolId") Long schoolId);
 
 
-    GradeBatchPaper findByThirdExamIdAndGradeCourseCode(@Param("thirdExamId") String thirdExamId, @Param("gradeCourseCode") String gradeCourseCode);
+    GradeBatchPaper findByThirdExamIdAndGradeCourseCode(@Param("schoolId") Long schoolId, @Param("thirdExamId") String thirdExamId, @Param("gradeCourseCode") String gradeCourseCode);
 }

+ 1 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/GradeBatchPaperService.java

@@ -2,7 +2,6 @@ package com.qmth.distributed.print.business.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.qmth.distributed.print.business.bean.params.analyze.AbleAnalyzePaperParam;
 import com.qmth.distributed.print.business.bean.params.analyze.GradeBatchPaperParam;
 import com.qmth.distributed.print.business.bean.result.analyze.GradeBatchPaperResult;
 import com.qmth.distributed.print.business.entity.GradeBatchPaper;
@@ -70,5 +69,5 @@ public interface GradeBatchPaperService extends IService<GradeBatchPaper> {
      */
     void checkOperateAuth(Long schoolId, String paperNumber, String paperType);
 
-    GradeBatchPaper findByThirdExamIdAndGradeCourseCode(String thirdExamId, String gradeCourseCode);
+    GradeBatchPaper findByThirdExamIdAndGradeCourseCode(Long schoolId, String thirdExamId, String gradeCourseCode);
 }

+ 8 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/OpenApiService.java

@@ -1,19 +1,19 @@
 package com.qmth.distributed.print.business.service;
 
-import com.qmth.distributed.print.business.bean.dto.open.PaperConfig;
-import com.qmth.distributed.print.business.bean.dto.open.PaperDimension;
-import com.qmth.distributed.print.business.bean.dto.open.PaperEvaluation;
-import com.qmth.distributed.print.business.bean.dto.open.PaperStructure;
+import com.qmth.distributed.print.business.bean.dto.open.*;
+import com.qmth.teachcloud.common.entity.BasicSchool;
 
 import java.util.List;
 
 public interface OpenApiService {
 
-    PaperConfig getPaperConfig(String thirdExamId, String gradeCourseCode);
+    PaperConfig getPaperConfig(BasicSchool basicSchool, String thirdExamId, String gradeCourseCode);
 
-    PaperDimension getPaperDimension(String thirdExamId, String gradeCourseCode);
+    PaperDimension getPaperDimension(BasicSchool basicSchool, String thirdExamId, String gradeCourseCode);
 
-    PaperStructure getPaperStructure(String thirdExamId, String gradeCourseCode);
+    PaperStructure getPaperStructure(BasicSchool basicSchool, String thirdExamId, String gradeCourseCode);
 
-    List<PaperEvaluation> getPaperEvaluation(String thirdExamId, String gradeCourseCode);
+    List<PaperEvaluation> getPaperEvaluation(BasicSchool basicSchool, String thirdExamId, String gradeCourseCode);
+
+    List<ExamStudentScore> listExamStudentScore(BasicSchool basicSchool, String thirdExamId, String gradeCourseCode, Integer pageNumber, Integer pageSize);
 }

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeBatchPaperServiceImpl.java

@@ -153,8 +153,8 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
     }
 
     @Override
-    public GradeBatchPaper findByThirdExamIdAndGradeCourseCode(String thirdExamId, String gradeCourseCode) {
-        return this.baseMapper.findByThirdExamIdAndGradeCourseCode(thirdExamId, gradeCourseCode);
+    public GradeBatchPaper findByThirdExamIdAndGradeCourseCode(Long schoolId, String thirdExamId, String gradeCourseCode) {
+        return this.baseMapper.findByThirdExamIdAndGradeCourseCode(schoolId, thirdExamId, gradeCourseCode);
     }
 
     @Override

+ 87 - 18
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/OpenApiServiceImpl.java

@@ -1,13 +1,16 @@
 package com.qmth.distributed.print.business.service.impl;
 
-import com.qmth.distributed.print.business.bean.dto.open.PaperConfig;
-import com.qmth.distributed.print.business.bean.dto.open.PaperDimension;
-import com.qmth.distributed.print.business.bean.dto.open.PaperEvaluation;
-import com.qmth.distributed.print.business.bean.dto.open.PaperStructure;
-import com.qmth.distributed.print.business.entity.GradeBatchPaper;
-import com.qmth.distributed.print.business.entity.GradeModuleDefine;
-import com.qmth.distributed.print.business.entity.GradeModuleEvaluation;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.distributed.print.business.bean.dto.open.*;
+import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.service.*;
+import com.qmth.teachcloud.common.entity.BasicMajor;
+import com.qmth.teachcloud.common.entity.BasicSchool;
+import com.qmth.teachcloud.common.service.BasicMajorService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -37,9 +40,18 @@ public class OpenApiServiceImpl implements OpenApiService {
     @Resource
     private GradeModuleEvaluationService gradeModuleEvaluationService;
 
+    @Resource
+    ExamTaskService examTaskService;
+
+    @Resource
+    BasicMajorService basicMajorService;
+
+    @Resource
+    private TSyncExamStudentScoreService tSyncExamStudentScoreService;
+
     @Override
-    public PaperConfig getPaperConfig(String thirdExamId, String gradeCourseCode) {
-        GradeBatchPaper gradeBatchPaper = gradeBatchPaperService.findByThirdExamIdAndGradeCourseCode(thirdExamId, gradeCourseCode);
+    public PaperConfig getPaperConfig(BasicSchool basicSchool, String thirdExamId, String gradeCourseCode) {
+        GradeBatchPaper gradeBatchPaper = gradeBatchPaperService.findByThirdExamIdAndGradeCourseCode(basicSchool.getId(), thirdExamId, gradeCourseCode);
         if (gradeBatchPaper == null) {
             return null;
         }
@@ -47,8 +59,8 @@ public class OpenApiServiceImpl implements OpenApiService {
     }
 
     @Override
-    public PaperDimension getPaperDimension(String thirdExamId, String gradeCourseCode) {
-        GradeBatchPaper gradeBatchPaper = gradeBatchPaperService.findByThirdExamIdAndGradeCourseCode(thirdExamId, gradeCourseCode);
+    public PaperDimension getPaperDimension(BasicSchool basicSchool, String thirdExamId, String gradeCourseCode) {
+        GradeBatchPaper gradeBatchPaper = gradeBatchPaperService.findByThirdExamIdAndGradeCourseCode(basicSchool.getId(), thirdExamId, gradeCourseCode);
         if (gradeBatchPaper == null) {
             return null;
         }
@@ -56,8 +68,8 @@ public class OpenApiServiceImpl implements OpenApiService {
     }
 
     @Override
-    public PaperStructure getPaperStructure(String thirdExamId, String gradeCourseCode) {
-        GradeBatchPaper gradeBatchPaper = gradeBatchPaperService.findByThirdExamIdAndGradeCourseCode(thirdExamId, gradeCourseCode);
+    public PaperStructure getPaperStructure(BasicSchool basicSchool, String thirdExamId, String gradeCourseCode) {
+        GradeBatchPaper gradeBatchPaper = gradeBatchPaperService.findByThirdExamIdAndGradeCourseCode(basicSchool.getId(), thirdExamId, gradeCourseCode);
         if (gradeBatchPaper == null) {
             return null;
         }
@@ -66,16 +78,17 @@ public class OpenApiServiceImpl implements OpenApiService {
     }
 
     @Override
-    public List<PaperEvaluation> getPaperEvaluation(String thirdExamId, String gradeCourseCode) {
-        GradeBatchPaper gradeBatchPaper = gradeBatchPaperService.findByThirdExamIdAndGradeCourseCode(thirdExamId, gradeCourseCode);
+    public List<PaperEvaluation> getPaperEvaluation(BasicSchool basicSchool, String thirdExamId, String gradeCourseCode) {
+        List<PaperEvaluation> paperEvaluations = new ArrayList<>();
+        GradeBatchPaper gradeBatchPaper = gradeBatchPaperService.findByThirdExamIdAndGradeCourseCode(basicSchool.getId(), thirdExamId, gradeCourseCode);
         if (gradeBatchPaper == null) {
-            return null;
+            return paperEvaluations;
         }
         List<GradeModuleDefine> gradeModuleDefineList = gradeModuleDefineService.findBySchoolIdAndPaperNumberAndPaperType(gradeBatchPaper.getSchoolId(), gradeBatchPaper.getPaperNumber(), gradeBatchPaper.getPaperType());
         List<GradeModuleEvaluation> gradeModuleEvaluationList = gradeModuleEvaluationService.findBySchoolIdAndPaperNumberAndPaperType(gradeBatchPaper.getSchoolId(), gradeBatchPaper.getPaperNumber(), gradeBatchPaper.getPaperType());
         // 分组(分隔符_)
         if (!gradeModuleDefineList.isEmpty()) {
-            List<PaperEvaluation> paperEvaluations = new ArrayList<>();
+
             Map<String, List<GradeModuleDefine>> stringListMap = gradeModuleDefineList.stream().collect(Collectors.groupingBy(m -> m.getModuleType() + "_" + m.getInterpret() + "_" + m.getRemark()));
             for (Map.Entry<String, List<GradeModuleDefine>> stringListEntry : stringListMap.entrySet()) {
                 String[] key = stringListEntry.getKey().split("_");
@@ -117,6 +130,62 @@ public class OpenApiServiceImpl implements OpenApiService {
             }
             return paperEvaluations;
         }
-        return null;
+        return paperEvaluations;
+    }
+
+    @Override
+    public List<ExamStudentScore> listExamStudentScore(BasicSchool basicSchool, String thirdExamId, String gradeCourseCode, Integer pageNumber, Integer pageSize) {
+        GradeBatchPaper gradeBatchPaper = gradeBatchPaperService.findByThirdExamIdAndGradeCourseCode(basicSchool.getId(), thirdExamId, gradeCourseCode);
+        if (gradeBatchPaper == null) {
+            return new ArrayList<>();
+        }
+
+        QueryWrapper<ExamTask> examTaskQueryWrapper = new QueryWrapper<>();
+        examTaskQueryWrapper.lambda().eq(ExamTask::getSchoolId, gradeBatchPaper.getSchoolId())
+                .eq(ExamTask::getPaperNumber, gradeBatchPaper.getPaperNumber());
+        ExamTask examTask = examTaskService.getOne(examTaskQueryWrapper);
+
+        QueryWrapper<TSyncExamStudentScore> examStudentScoreQueryWrapper = new QueryWrapper<>();
+        String subjectCode = examTask.getCourseCode() + gradeBatchPaper.getPaperType() + examTask.getSequence();
+        examStudentScoreQueryWrapper.lambda().eq(TSyncExamStudentScore::getSchoolId, gradeBatchPaper.getSchoolId())
+                .eq(TSyncExamStudentScore::getSubjectCode, subjectCode);
+
+        Page<TSyncExamStudentScore> page = new Page<>(pageNumber, pageSize);
+        IPage<TSyncExamStudentScore> tSyncExamStudentScoreIPage = tSyncExamStudentScoreService.page(page, examStudentScoreQueryWrapper);
+        return tSyncExamStudentScoreIPage.getRecords().stream().map(m -> {
+            ExamStudentScore examStudentScore = new ExamStudentScore();
+            examStudentScore.setName(m.getName());
+            examStudentScore.setStudentCode(m.getStudentCode());
+            examStudentScore.setPaperNumber(gradeBatchPaper.getPaperNumber());
+            examStudentScore.setPaperName(m.getSubjectName());
+            examStudentScore.setPaperType(gradeBatchPaper.getPaperType());
+            examStudentScore.setCollege(m.getCollege());
+            BasicMajor basicMajor = basicMajorService.getById(m.getMajorId());
+            examStudentScore.setMajor(basicMajor == null ? null : basicMajor.getName());
+            examStudentScore.setClassName(m.getClazzName());
+            examStudentScore.setTeacherName(m.getTeacher());
+            // todo 任课老师code 20220530
+//            examStudentScore.setTeacherCode(m.g);
+            examStudentScore.setStatus(m.getStatus());
+            examStudentScore.setTotalScore(m.getTotalScore());
+            examStudentScore.setObjectiveScore(m.getObjectiveScore());
+            examStudentScore.setSubjectiveScore(m.getSubjectiveScore());
+            String syncData = m.getSyncData();
+            JSONObject jsonObject = JSONObject.parseObject(syncData);
+            List<ExamStudentScore.TopicInfo> objectiveTopic = new ArrayList<>();
+            if (jsonObject.containsKey("objectiveScoreDetail")) {
+                String objective = jsonObject.getString("objectiveScoreDetail");
+                objectiveTopic = JSON.parseArray(objective, ExamStudentScore.TopicInfo.class);
+            }
+            examStudentScore.setObjectiveScoreDetail(objectiveTopic);
+
+            List<ExamStudentScore.TopicInfo> subjectiveTopic = new ArrayList<>();
+            if (jsonObject.containsKey("subjectiveScoreDetail")) {
+                String subjective = jsonObject.getString("subjectiveScoreDetail");
+                subjectiveTopic = JSON.parseArray(subjective, ExamStudentScore.TopicInfo.class);
+            }
+            examStudentScore.setSubjectiveScoreDetail(subjectiveTopic);
+            return examStudentScore;
+        }).collect(Collectors.toList());
     }
 }

+ 4 - 2
distributed-print-business/src/main/resources/mapper/GradeBatchPaperMapper.xml

@@ -112,8 +112,10 @@
     <select id="findByThirdExamIdAndGradeCourseCode" resultMap="BaseResultMap">
         select gbp.*
         from grade_batch gb
-                 join grade_batch_paper gbp on gb.id = gbp.batch_id
-        where gb.third_exam_id = #{thirdExamId}
+                 join grade_batch_paper gbp on gb.school_id = gbp.school_id
+            and gb.id = gbp.batch_id
+        where gb.school_id = #{schoolId}
+          and gb.third_exam_id = #{thirdExamId}
           and gbp.grade_course_code = #{gradeCourseCode}
     </select>
 

+ 26 - 15
distributed-print/src/main/java/com/qmth/distributed/print/api/OpenApiController.java

@@ -1,8 +1,11 @@
 package com.qmth.distributed.print.api;
 
-import com.alibaba.fastjson.JSONObject;
+import com.qmth.boot.api.annotation.Aac;
+import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.service.OpenApiService;
+import com.qmth.teachcloud.common.entity.BasicSchool;
+import com.qmth.teachcloud.common.util.AuthThirdUtil;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import io.swagger.annotations.Api;
@@ -12,7 +15,10 @@ import io.swagger.annotations.ApiResponses;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 
@@ -34,13 +40,6 @@ public class OpenApiController {
     @Resource
     private OpenApiService openApiService;
 
-    @ApiOperation(value = "查询教研分析数据(1.蓝图数据,2.考生作答数据)")
-    @ApiResponses({@ApiResponse(code = 200, message = "查询教研分析数据(1.蓝图数据,2.考生作答数据)", response = Object.class)})
-    @RequestMapping(value = "/analysis/data", method = RequestMethod.POST)
-    public Result analysisData(JSONObject jsonObject) {
-        return ResultUtil.ok(true);
-    }
-
     /**
      * 试卷基础配置查询
      *
@@ -50,9 +49,11 @@ public class OpenApiController {
     @ApiOperation(value = "试卷基础配置查询")
     @ApiResponses({@ApiResponse(code = 200, message = "试卷基础配置查询", response = Object.class)})
     @PostMapping("/paper_config")
+    @Aac(auth = BOOL.FALSE)
     public Result paperConfig(@RequestParam String thirdExamId,
                               @RequestParam String gradeCourseCode) {
-        return ResultUtil.ok(openApiService.getPaperConfig(thirdExamId, gradeCourseCode));
+        BasicSchool basicSchool = AuthThirdUtil.hasPermission();
+        return ResultUtil.ok(openApiService.getPaperConfig(basicSchool, thirdExamId, gradeCourseCode));
     }
 
     /**
@@ -64,9 +65,11 @@ public class OpenApiController {
     @ApiOperation(value = "试卷考察点查询")
     @ApiResponses({@ApiResponse(code = 200, message = "试卷考察点查询", response = Object.class)})
     @PostMapping("/paper_dimension")
+    @Aac(auth = BOOL.FALSE)
     public Result paperDimension(@RequestParam String thirdExamId,
                                  @RequestParam String gradeCourseCode) {
-        return ResultUtil.ok(openApiService.getPaperDimension(thirdExamId, gradeCourseCode));
+        BasicSchool basicSchool = AuthThirdUtil.hasPermission();
+        return ResultUtil.ok(openApiService.getPaperDimension(basicSchool, thirdExamId, gradeCourseCode));
     }
 
     /**
@@ -78,9 +81,11 @@ public class OpenApiController {
     @ApiOperation(value = "试卷蓝图查询")
     @ApiResponses({@ApiResponse(code = 200, message = "试卷蓝图查询", response = Object.class)})
     @PostMapping("/paper_structure")
+    @Aac(auth = BOOL.FALSE)
     public Result paperStructure(@RequestParam String thirdExamId,
                                  @RequestParam String gradeCourseCode) {
-        return ResultUtil.ok(openApiService.getPaperStructure(thirdExamId, gradeCourseCode));
+        BasicSchool basicSchool = AuthThirdUtil.hasPermission();
+        return ResultUtil.ok(openApiService.getPaperStructure(basicSchool, thirdExamId, gradeCourseCode));
     }
 
     /**
@@ -92,9 +97,11 @@ public class OpenApiController {
     @ApiOperation(value = "试卷评价模型查询")
     @ApiResponses({@ApiResponse(code = 200, message = "试卷评价模型查询", response = Object.class)})
     @PostMapping("/paper_evaluation")
+    @Aac(auth = BOOL.FALSE)
     public Result paperEvaluation(@RequestParam String thirdExamId,
                                   @RequestParam String gradeCourseCode) {
-        return ResultUtil.ok(openApiService.getPaperEvaluation(thirdExamId, gradeCourseCode));
+        BasicSchool basicSchool = AuthThirdUtil.hasPermission();
+        return ResultUtil.ok(openApiService.getPaperEvaluation(basicSchool, thirdExamId, gradeCourseCode));
     }
 
     /**
@@ -106,8 +113,12 @@ public class OpenApiController {
     @ApiOperation(value = "考生成绩查询")
     @ApiResponses({@ApiResponse(code = 200, message = "考生成绩查询", response = Object.class)})
     @PostMapping("/exam_student_score")
+    @Aac(auth = BOOL.FALSE)
     public Result examStudentScore(@RequestParam String thirdExamId,
-                                   @RequestParam String gradeCourseCode) {
-        return ResultUtil.ok(true);
+                                   @RequestParam String gradeCourseCode,
+                                   @RequestParam Integer pageNumber,
+                                   @RequestParam Integer pageSize) {
+        BasicSchool basicSchool = AuthThirdUtil.hasPermission();
+        return ResultUtil.ok(openApiService.listExamStudentScore(basicSchool, thirdExamId, gradeCourseCode, pageNumber, pageSize));
     }
 }