From 1ca1f9c44f9db32e88ef6b09f8582438a0164a47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?DESKTOP-9ERGOBP=5C=E4=BB=BB=E7=BB=B4=E7=82=B3?= Date: Mon, 24 Nov 2025 16:24:00 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91=20?= =?UTF-8?q?=E9=80=9A=E8=BF=87=E6=95=99=E5=B8=88=E8=8E=B7=E5=8F=96=E6=95=99?= =?UTF-8?q?=E5=B8=88=E8=83=BD=E5=A4=9F=E7=AE=A1=E7=90=86=E5=BE=97=E5=AD=A6?= =?UTF-8?q?=E7=94=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/user/vo/user/UserRespVO.java | 4 ++ .../dal/mysql/user/AdminUserMapper.java | 12 ++++++ .../system/service/user/AdminUserService.java | 7 ++++ .../service/user/AdminUserServiceImpl.java | 37 +++++++++++++++++++ 4 files changed, 60 insertions(+) diff --git a/exam-module-system/exam-module-system-biz/src/main/java/pc/exam/pp/module/system/controller/admin/user/vo/user/UserRespVO.java b/exam-module-system/exam-module-system-biz/src/main/java/pc/exam/pp/module/system/controller/admin/user/vo/user/UserRespVO.java index bdc10eb8..9d81a5d7 100644 --- a/exam-module-system/exam-module-system-biz/src/main/java/pc/exam/pp/module/system/controller/admin/user/vo/user/UserRespVO.java +++ b/exam-module-system/exam-module-system-biz/src/main/java/pc/exam/pp/module/system/controller/admin/user/vo/user/UserRespVO.java @@ -1,5 +1,6 @@ package pc.exam.pp.module.system.controller.admin.user.vo.user; +import com.alibaba.excel.annotation.ExcelIgnore; import pc.exam.pp.framework.excel.core.annotations.DictFormat; import pc.exam.pp.framework.excel.core.convert.DictConvert; import pc.exam.pp.module.system.enums.DictTypeConstants; @@ -38,6 +39,9 @@ public class UserRespVO{ @ExcelProperty("班级名称") private String className; + @Schema(description = "班级ID") + private Long classId; + @Schema(description = "备注", example = "我是一个用户") private String remark; diff --git a/exam-module-system/exam-module-system-biz/src/main/java/pc/exam/pp/module/system/dal/mysql/user/AdminUserMapper.java b/exam-module-system/exam-module-system-biz/src/main/java/pc/exam/pp/module/system/dal/mysql/user/AdminUserMapper.java index 9f93836e..996349e3 100644 --- a/exam-module-system/exam-module-system-biz/src/main/java/pc/exam/pp/module/system/dal/mysql/user/AdminUserMapper.java +++ b/exam-module-system/exam-module-system-biz/src/main/java/pc/exam/pp/module/system/dal/mysql/user/AdminUserMapper.java @@ -68,6 +68,18 @@ public interface AdminUserMapper extends BaseMapperX { return selectList(AdminUserDO::getDeptId, deptIds); } + default List selectAllStudents() { + return selectList(new LambdaQueryWrapperX() + .eq(AdminUserDO::getUserType, "2")); + } + + default List selectListByClassId(Long classId) { + return selectList(new LambdaQueryWrapperX() + .eq(AdminUserDO::getClassId, classId) + .eq(AdminUserDO::getStatus, 0) + .eq(AdminUserDO::getDeleted, false)); + } + List selectUserByIdList(@Param("id") Long id); String selectOneById(Long id); diff --git a/exam-module-system/exam-module-system-biz/src/main/java/pc/exam/pp/module/system/service/user/AdminUserService.java b/exam-module-system/exam-module-system-biz/src/main/java/pc/exam/pp/module/system/service/user/AdminUserService.java index 2d40b3db..e8434505 100644 --- a/exam-module-system/exam-module-system-biz/src/main/java/pc/exam/pp/module/system/service/user/AdminUserService.java +++ b/exam-module-system/exam-module-system-biz/src/main/java/pc/exam/pp/module/system/service/user/AdminUserService.java @@ -288,4 +288,11 @@ public interface AdminUserService { * @return 全部信息集合 */ List getSpeciatListByTenantId(); + + /** + * 通过教师获取学生信息 + * + * @return 学生信息集合 + */ + List getStudentByTeacherId(); } diff --git a/exam-module-system/exam-module-system-biz/src/main/java/pc/exam/pp/module/system/service/user/AdminUserServiceImpl.java b/exam-module-system/exam-module-system-biz/src/main/java/pc/exam/pp/module/system/service/user/AdminUserServiceImpl.java index 92d43a8c..61d0bc92 100644 --- a/exam-module-system/exam-module-system-biz/src/main/java/pc/exam/pp/module/system/service/user/AdminUserServiceImpl.java +++ b/exam-module-system/exam-module-system-biz/src/main/java/pc/exam/pp/module/system/service/user/AdminUserServiceImpl.java @@ -1208,6 +1208,43 @@ public class AdminUserServiceImpl implements AdminUserService { return specialtyQueryVos; } + @Override + public List getStudentByTeacherId() { + List userRespVOS = new ArrayList<>(); + // 1、获取登录账号的ID + Long userId = SecurityFrameworkUtils.getLoginUserId(); + AdminUserDO adminUserDO = userMapper.selectById(userId); + // 2、判断是管理员还是教师 + // 2-1、管理员可以查看全部的学生 + if (adminUserDO.getUserType().equals("0")) { + // 查询所有学生 + List adminUserDOList = userMapper.selectAllStudents(); + List userResp = BeanUtils.toBean(adminUserDOList, UserRespVO.class); + for (UserRespVO userRespVO : userResp) { + ClassDO classDO = classMapper.selectById(userRespVO.getClassId()); + userRespVO.setClassName(classDO.getName()); + userRespVOS.add(userRespVO); + } + } + if (adminUserDO.getUserType().equals("1")) { + // 2-2、教师只能查看自己班级的学生 + Set classIds = adminUserDO.getClassIds(); + // 通过班级查询所有学生 + for (Long classId : classIds) { + ClassDO classDO = classMapper.selectById(classId); + if (classDO != null) { + List adminUserDOS = userMapper.selectListByClassId(classId); + List userResp = BeanUtils.toBean(adminUserDOS, UserRespVO.class); + for (UserRespVO userRespVO : userResp) { + userRespVO.setClassName(classDO.getName()); + userRespVOS.add(userRespVO); + } + } + } + } + return userRespVOS; + } + /** * 对密码进行加密 *