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