From a7c9ed23a07e22b525942d989eb8a159f2a4f130 Mon Sep 17 00:00:00 2001
From: guyue <1721849008@qq.com>
Date: 星期三, 30 七月 2025 14:32:48 +0800
Subject: [PATCH] 修改重复次数统计增加num

---
 src/main/java/com/linghu/controller/UserController.java |   32 ++++++++++++++++++++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/linghu/controller/UserController.java b/src/main/java/com/linghu/controller/UserController.java
index 7958d99..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,6 +56,18 @@
     @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("该邮箱已存在");
@@ -76,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())
@@ -220,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();
@@ -235,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("邮箱已存在(数据库中重复)");
                     }

--
Gitblit v1.7.1