From a9287c6b562da327587e2a4bac92df14eb7e2b01 Mon Sep 17 00:00:00 2001 From: guyue <1721849008@qq.com> Date: 星期六, 26 七月 2025 19:16:14 +0800 Subject: [PATCH] 增加获取结果缓冲区的上限 --- src/main/java/com/linghu/controller/UserController.java | 34 ++++++++++++++++++++++++++++++++++ 1 files changed, 34 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/linghu/controller/UserController.java b/src/main/java/com/linghu/controller/UserController.java index 8b086b9..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.error("该邮箱已存在"); } user.setStatus("正常"); + user.setCreate_time(LocalDateTime.now()); userService.save(user); return ResponseResult.success(); @@ -75,6 +89,17 @@ User user1 = userService.getById(user.getUser_id()); 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()) @@ -219,6 +244,10 @@ 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(); UserExcel excelRowData = excelData.getData(); @@ -234,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("邮箱已存在(数据库中重复)"); } @@ -263,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