# ISSUE-003:管理员创建用户500错误(根因已确认) **状态**: 待解决 **严重度**: 中 **创建日期**: 2026-06-29 **模块**: 用户管理 **测试用例**: `ADMIN-CREATE-PARENT` **根因确认日期**: 2026-06-30 ## 问题描述 管理员通过 `POST /api/admin/users/create` 创建新用户时返回 Spring Boot 默认 500 错误页面(非业务 `Result.error`)。 ## 错误信息 ``` code=500 status=Internal Server Error path=/api/admin/users/create ``` 即使使用时间戳唯一手机号(如 `13930143018`)仍500,排除重复手机号问题。 ## 根因分析 **文件**: `cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminController.java` line 76-104 ```java User user = new User(); user.setPhone(phone); user.setNickname(nickname); user.setRole(role); user.setRealName(realName); user.setPassword(""); // ← 空字符串可能违反约束 user.setCreatedAt(new Date()); user.setUpdatedAt(new Date()); // ❌ 缺少: user.setFamilyId(...) — family_id 是 NOT NULL 字段! userMapper.insert(user); ``` `users` 表结构(生产库): ```sql family_id BIGINT NOT NULL, // ← 约束存在 ``` **根因**: `family_id` 是 `NOT NULL` 字段,但 `AdminController.createUser()` 没有设置 `familyId`,导致 MySQL 约束违反异常 → 500。 ## 现有用户 familyId 参考 | userId | phone | familyId | |--------|-------|----------| | 1 | 13910958767 | 2 | | 8 | 13701366188 | 2 | | 9 | 13701366181 | 16 | | 10 | 13800138999 | 17 | ## 影响范围 - 管理员无法通过管理后台创建新用户 - 所有新用户创建都失败(NOT NULL 约束) ## 修复建议 在 `AdminController.createUser()` 中添加 `familyId`: ```java user.setFamilyId(1L); // 或创建新的 family 记录 ``` 或者修改表结构允许 NULL(不推荐)。 ## 责任人 待定 ## 修复日期 待定 ## 回归测试 修复后运行:`python e2e_issue_tracking.py` 验证 `ISSUE003-CREATE` 通过。