guyue
8 天以前 9daf1936174685bad526ed41a026d2f2c421f6b0
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,14 +90,25 @@
        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())) {
            user1.setStatus("正常");
            user.setStatus("正常");
        }
        userService.updateById(user);
@@ -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);