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; + } + /** * 对密码进行加密 *