From 8d602fe2a474ee3baae4447c7f07d027b25bedfe Mon Sep 17 00:00:00 2001 From: guyue <1721849008@qq.com> Date: 星期四, 17 七月 2025 21:30:02 +0800 Subject: [PATCH] 修改token解析 --- src/main/java/com/linghu/controller/UserController.java | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/linghu/controller/UserController.java b/src/main/java/com/linghu/controller/UserController.java index 619e913..9414122 100644 --- a/src/main/java/com/linghu/controller/UserController.java +++ b/src/main/java/com/linghu/controller/UserController.java @@ -39,6 +39,7 @@ import java.io.IOException; import java.time.LocalDateTime; import java.util.*; +import java.util.regex.Pattern; import java.util.stream.Collectors; @RestController @@ -55,11 +56,24 @@ @PostMapping @ApiOperation(value = "添加") public ResponseResult add(@RequestBody User user) { + // 1. 校验邮箱是否为空 + String email = user.getUser_email(); + if (!StringUtils.hasText(email)) { + return ResponseResult.error("邮箱不能为空"); + } + + // 2. 邮箱格式正则校验(基础版:包含@且@前后有内容) + String emailRegex = "^[A-Za-z0-9+_.-]+@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*\\.[A-Za-z]{2,}$"; + boolean isEmailValid = Pattern.matches(emailRegex, email); + if (!isEmailValid) { + return ResponseResult.error("邮箱格式无效,请包含@符号且格式正确(例如:xxx@example.com)"); + } List<User> list = userService.list(new LambdaQueryWrapper<User>().eq(User::getUser_email, user.getUser_email())); if (list != null && list.size() > 0) { - return ResponseResult.success("该邮箱已存在"); + return ResponseResult.error("该邮箱已存在"); } user.setStatus("正常"); + user.setCreate_time(LocalDateTime.now()); userService.save(user); return ResponseResult.success(); @@ -76,12 +90,27 @@ if (user1 == null) { return ResponseResult.error("该账户不存在"); } + // 1. 校验邮箱是否为空 + String email = user.getUser_email(); + if (!StringUtils.hasText(email)) { + return ResponseResult.error("邮箱不能为空"); + } + // 2. 邮箱格式正则校验(基础版:包含@且@前后有内容) + String emailRegex = "^[A-Za-z0-9+_.-]+@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*\\.[A-Za-z]{2,}$"; + boolean isEmailValid = Pattern.matches(emailRegex, email); + if (!isEmailValid) { + return ResponseResult.error("邮箱格式无效,请包含@符号且格式正确(例如:xxx@example.com)"); + } List<User> list = userService.list(new LambdaQueryWrapper<User>() .ne(User::getUser_id, user.getUser_id()) .eq(User::getUser_email, user.getUser_email())); if (list != null && list.size() > 0) { - return ResponseResult.success("该邮箱已存在"); + return ResponseResult.error("该邮箱已存在"); } + if (!user1.getUser_email().equals(user.getUser_email())||!user1.getPassword().equals(user.getPassword())) { + user.setStatus("正常"); + } + userService.updateById(user); return ResponseResult.success(); @@ -212,6 +241,12 @@ List<User> insertUserList = new ArrayList<>(); List<String> errorMessages = new ArrayList<>(); Set<String> emailSet = new HashSet<>(); // 用于校验导入数据中的邮箱重复 + if (excelDataList.isEmpty()) { + return ResponseResult.error("导入失败,数据不能为空"); + } + // 邮箱格式正则表达式 + String emailRegex = "^[A-Za-z0-9+_.-]+@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*\\.[A-Za-z]{2,}$"; + Pattern emailPattern = Pattern.compile(emailRegex); for (ExcelDataWithRow<UserExcel> excelData : excelDataList) { int rowNum = excelData.getRowNumber(); @@ -228,6 +263,10 @@ if (!StringUtils.hasText(excelRowData.getUser_email())) { rowErrors.add("邮箱不能为空"); } else { + // 新增:邮箱格式校验 + if (!emailPattern.matcher(excelRowData.getUser_email()).matches()) { + rowErrors.add("邮箱格式不正确(需符合 example@domain.com 格式)"); + } if (userEmailMap.containsKey(excelRowData.getUser_email())) { rowErrors.add("邮箱已存在(数据库中重复)"); } @@ -257,6 +296,7 @@ user.setUser_email(excelRowData.getUser_email()); user.setPassword(excelRowData.getPassword()); // 实际场景建议加密存储 user.setSectionalization_id(sectionMap.get(excelRowData.getSectionalization_name()).getSectionalization_id()); + user.setCreate_time(LocalDateTime.now()); user.setStatus("正常"); insertUserList.add(user); -- Gitblit v1.7.1