From 3c40fca9b3c2616ff250314517f6b7a7f9645860 Mon Sep 17 00:00:00 2001 From: huertian Date: Fri, 3 Jan 2025 14:35:59 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E9=82=AE=E7=AE=B1=E6=9F=A5=E8=AF=A2=E6=95=99=E5=B8=88=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jinduguanli/config/RedisConfig.java | 9 +++--- .../controller/UserController.java | 11 +++++++ .../jinduguanli/service/UserService.java | 29 +++++++++++++++++++ 3 files changed, 45 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/huertian/jinduguanli/config/RedisConfig.java b/src/main/java/com/huertian/jinduguanli/config/RedisConfig.java index a4106e6..b31ad51 100644 --- a/src/main/java/com/huertian/jinduguanli/config/RedisConfig.java +++ b/src/main/java/com/huertian/jinduguanli/config/RedisConfig.java @@ -52,6 +52,7 @@ public class RedisConfig { .build(); } + @SuppressWarnings("null") @Bean public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) { RedisTemplate template = new RedisTemplate<>(); @@ -59,15 +60,15 @@ public class RedisConfig { // 使用 GenericJackson2JsonRedisSerializer 进行序列化 GenericJackson2JsonRedisSerializer jackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer(); - + // 设置 key 的序列化方式 template.setKeySerializer(new StringRedisSerializer()); template.setHashKeySerializer(new StringRedisSerializer()); - + // 设置 value 的序列化方式 template.setValueSerializer(jackson2JsonRedisSerializer); template.setHashValueSerializer(jackson2JsonRedisSerializer); - + template.afterPropertiesSet(); // 测试连接 @@ -77,7 +78,7 @@ public class RedisConfig { } catch (Exception e) { logger.error("Redis连接测试失败: {}", e.getMessage(), e); } - + return template; } } diff --git a/src/main/java/com/huertian/jinduguanli/controller/UserController.java b/src/main/java/com/huertian/jinduguanli/controller/UserController.java index e653bd1..51cc331 100644 --- a/src/main/java/com/huertian/jinduguanli/controller/UserController.java +++ b/src/main/java/com/huertian/jinduguanli/controller/UserController.java @@ -102,4 +102,15 @@ public class UserController { return new ApiResponse<>(ErrorCode.SYSTEM_ERROR, "获取部门用户列表失败", null); } } + + @GetMapping("/teacher/search") + public ApiResponse searchTeacher(@RequestParam String email) { + logger.info("收到查询教师信息请求,邮箱: {}", email); + try { + return userService.findTeacherByEmail(email); + } catch (Exception e) { + logger.error("查询教师信息失败", e); + return new ApiResponse<>(ErrorCode.SYSTEM_ERROR, "查询教师信息失败", null); + } + } } diff --git a/src/main/java/com/huertian/jinduguanli/service/UserService.java b/src/main/java/com/huertian/jinduguanli/service/UserService.java index 0534216..faa8d3c 100644 --- a/src/main/java/com/huertian/jinduguanli/service/UserService.java +++ b/src/main/java/com/huertian/jinduguanli/service/UserService.java @@ -172,4 +172,33 @@ public class UserService implements UserDetailsService { logger.info("查询部门用户列表,部门ID: {}", departmentId); return userRepository.findByDepartmentIdAndNormalStatus(departmentId); } + + public ApiResponse findTeacherByEmail(String email) { + if (email == null || email.trim().isEmpty()) { + return new ApiResponse<>(ErrorCode.INVALID_PARAM, "邮箱不能为空", null); + } + + User user = userRepository.findByEmail(email).orElse(null); + if (user == null) { + return new ApiResponse<>(ErrorCode.USER_NOT_FOUND, "用户不存在", null); + } + + // 验证用户是否为教师角色且为课程制作教师岗位 + if (user.getRoles() != 1) { + return new ApiResponse<>(ErrorCode.INVALID_PARAM, "非教师用户", null); + } + + if (user.getJobs() != 1) { + return new ApiResponse<>(ErrorCode.INVALID_PARAM, "非课程制作教师", null); + } + + if (user.getStatus() != 1) { + return new ApiResponse<>(ErrorCode.INVALID_PARAM, "用户状态异常", null); + } + + // 清除敏感信息 + user.setPassword(null); + + return ApiResponse.success(user); + } }