From 9ebd0efeed66a59e0dc2896267d0f3ad684dfb29 Mon Sep 17 00:00:00 2001 From: zhaokai Date: Thu, 5 Mar 2026 19:39:19 +0800 Subject: [PATCH] =?UTF-8?q?fix(student):=20=E4=BF=AE=E5=A4=8D=E5=AD=A6?= =?UTF-8?q?=E7=94=9F=E7=8A=B6=E6=80=81=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../query/study/ClassExamPaperQueryExe.java | 8 ++++++-- .../edu/command/query/study/ClassQueryExe.java | 17 +++++++++++++++++ .../command/query/study/StudentQueryExe.java | 4 +++- .../edu/dto/clientobject/study/ClassCO.java | 2 ++ .../clientobject/study/ClassExamPaperCO.java | 3 +++ .../study/StudentExamRecordRepositoryImpl.java | 7 +++++++ .../study/StudentExamRecordRepository.java | 2 ++ .../main/resources/mapper/study/ClassMapper.xml | 3 ++- 8 files changed, 42 insertions(+), 4 deletions(-) diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassExamPaperQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassExamPaperQueryExe.java index b8f4b38..8d5394b 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassExamPaperQueryExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassExamPaperQueryExe.java @@ -7,8 +7,6 @@ import com.alibaba.cola.dto.SingleResponse; import com.zcloud.edu.command.convertor.study.ClassExamPaperCoConvertor; import com.zcloud.edu.dto.clientobject.resource.QuestionCO; import com.zcloud.edu.dto.clientobject.study.ClassExamPaperCO; -import com.zcloud.edu.dto.data.archives.ClassArchivesDTO; -import com.zcloud.edu.dto.study.ClassExamPaperExportCmd; import com.zcloud.edu.dto.study.ClassExamPaperPageQry; import com.zcloud.edu.persistence.dataobject.QuestionDO; import com.zcloud.edu.persistence.dataobject.study.ClassDO; @@ -16,6 +14,7 @@ import com.zcloud.edu.persistence.dataobject.study.ClassExamPaperDO; import com.zcloud.edu.persistence.repository.resource.QuestionRepository; import com.zcloud.edu.persistence.repository.study.ClassExamPaperRepository; import com.zcloud.edu.persistence.repository.study.ClassRepository; +import com.zcloud.edu.persistence.repository.study.StudentExamRecordRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.Tools; import com.zcloud.gbscommon.utils.WordToPdfUtil; @@ -47,6 +46,7 @@ public class ClassExamPaperQueryExe { private final ClassExamPaperCoConvertor classExamPaperCoConvertor; private final QuestionRepository questionRepository; private final ClassRepository classRepository; + private final StudentExamRecordRepository studentExamRecordRepository; /** * 分页 @@ -84,6 +84,10 @@ public class ClassExamPaperQueryExe { ClassExamPaperCO classExamPaperCO = new ClassExamPaperCO(); BeanUtils.copyProperties(classExamPaperDO, classExamPaperCO); classExamPaperCO.setQuestionList(questionCOList); + //考试人数 + + Long count = studentExamRecordRepository.getCountByClassExamPaperId(classExamPaperDO.getClassExamPaperId()); + classExamPaperCO.setClassExamPaperStudentCount( count); return SingleResponse.of(classExamPaperCO); } diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassQueryExe.java index b47e07a..859cb8a 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassQueryExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassQueryExe.java @@ -14,10 +14,13 @@ import com.zcloud.edu.dto.data.study.ClassCountDTO; import com.zcloud.edu.dto.data.study.ClassQuestionDTO; import com.zcloud.edu.dto.study.ClassCountQry; import com.zcloud.edu.dto.study.ClassPageQry; +import com.zcloud.edu.persistence.dataobject.TeacherDO; import com.zcloud.edu.persistence.dataobject.study.ClassDO; import com.zcloud.edu.persistence.dataobject.study.StudentDO; import com.zcloud.edu.persistence.mapper.po.study.ClassQuestionPO; import com.zcloud.edu.persistence.mapper.po.study.StudentCountPO; +import com.zcloud.edu.persistence.repository.resource.CorpInfoRepository; +import com.zcloud.edu.persistence.repository.resource.TeacherRepository; import com.zcloud.edu.persistence.repository.study.ClassRepository; import com.zcloud.edu.persistence.repository.study.StudentRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; @@ -44,6 +47,8 @@ public class ClassQueryExe { private final ClassCoConvertor classCoConvertor; private final StudentRepository studentRepository; private final StudentCoConvertor studentCoConvertor; + private final TeacherRepository teacherRepository; + private final CorpInfoRepository corpInfoRepository; /** * 分页 @@ -63,6 +68,8 @@ public class ClassQueryExe { if (pageResponse.getData() != null && pageResponse.getData().size() > 0){ List classIds = pageResponse.getData().stream().map(ClassDO::getClassId).collect(Collectors.toList()); List stuCountList = studentRepository.countStudentByClass(classIds); + //判断当前登录人是否是教师 + if (stuCountList != null && stuCountList.size() > 0){ Map stuCountMap = stuCountList.stream().collect(Collectors.toMap(ClassDO::getClassId, classDO -> classDO)); pageResponse.getData().stream().forEach(classDO -> { @@ -71,10 +78,20 @@ public class ClassQueryExe { classDO.setSignCount(stuCountMap.get(classDO.getClassId()).getSignCount()); classDO.setFinishCount(stuCountMap.get(classDO.getClassId()).getFinishCount()); } + + }); } } List examCenterCOS = classCoConvertor.converDOsToCOs(pageResponse.getData()); + TeacherDO teacherInfoByUserId = teacherRepository.getTeacherInfoByUserId(AuthContext.getUserId()); + Boolean checkCorp = corpInfoRepository.checkCorp(); + examCenterCOS.stream().forEach(classCO -> { + //如果是教师,只能维护本人创建的数据, + if(checkCorp || (teacherInfoByUserId != null && teacherInfoByUserId.getUserId().equals(classCO.getCreateId()))){ + classCO.setIsUserCreate( true); + } + }); return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); } diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentQueryExe.java index a04aa1b..147dcb2 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentQueryExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentQueryExe.java @@ -94,7 +94,9 @@ public class StudentQueryExe { StudentDO studentDO = studentRepository.getById(qry.getStuId()); StudentDO studentUrl = studentRepository.findFaceUrlByPhone(studentDO.getPhone()); StudentE studentE = new StudentE(); - studentE.setUserAvatarUrl(studentUrl.getUserAvatarUrl()); + if(studentUrl!=null){ + studentE.setUserAvatarUrl(studentUrl.getUserAvatarUrl()); + } BeanUtils.copyProperties(studentDO, studentE); // 班级信息 ClassDO classDO = classRepository.getByClassId(studentDO.getClassId()); diff --git a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassCO.java b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassCO.java index 46e95ad..db5a652 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassCO.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassCO.java @@ -120,5 +120,7 @@ public class ClassCO extends ClientObject { private Integer signCount = 0; @ApiModelProperty(value = "考试通过人数") private Integer finishCount= 0; + @ApiModelProperty(value = "是否是当前用户创建的数据") + private Boolean isUserCreate = false; } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassExamPaperCO.java b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassExamPaperCO.java index 1327198..b20ab23 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassExamPaperCO.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassExamPaperCO.java @@ -91,5 +91,8 @@ public class ClassExamPaperCO extends ClientObject { //环境 @ApiModelProperty(value = "环境") private String env; + + @ApiModelProperty(value = "班级考试人数") + private Long classExamPaperStudentCount; } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentExamRecordRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentExamRecordRepositoryImpl.java index ab8f393..6d7acec 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentExamRecordRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentExamRecordRepositoryImpl.java @@ -78,5 +78,12 @@ public class StudentExamRecordRepositoryImpl extends BaseRepositoryImpl(); + queryWrapper.eq("class_exam_paper_id", classExamPaperId); + return studentExamRecordMapper.selectCount(queryWrapper); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentExamRecordRepository.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentExamRecordRepository.java index f7537ad..f1a1b57 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentExamRecordRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentExamRecordRepository.java @@ -27,5 +27,7 @@ public interface StudentExamRecordRepository extends BaseRepository