diff --git a/src/main/java/com/yunhai/userbase/controller/api/SysUserController.java b/src/main/java/com/yunhai/userbase/controller/api/SysUserController.java index 186d5d7..ac44a3e 100644 --- a/src/main/java/com/yunhai/userbase/controller/api/SysUserController.java +++ b/src/main/java/com/yunhai/userbase/controller/api/SysUserController.java @@ -41,10 +41,10 @@ public class SysUserController { @OperationLog("新增用户") @PostMapping("Add") - public void add(@RequestBody @Validated(ValidationGroups.Create.class) SysUserRequest request) { + public Integer add(@RequestBody @Validated(ValidationGroups.Create.class) SysUserRequest request) { List data=new ArrayList<>(); - sysUserService.add(request); + return sysUserService.add(request); } @OperationLog("编辑用户") diff --git a/src/main/java/com/yunhai/userbase/service/ISysUserService.java b/src/main/java/com/yunhai/userbase/service/ISysUserService.java index ff40624..05c85f8 100644 --- a/src/main/java/com/yunhai/userbase/service/ISysUserService.java +++ b/src/main/java/com/yunhai/userbase/service/ISysUserService.java @@ -19,8 +19,8 @@ import java.util.List; */ public interface ISysUserService { - /** 新增用户:校验密码/手机号/身份证,BCrypt 加密,并写入组用户关联。 */ - void add(SysUserRequest request); + /** 新增用户:校验密码/手机号/身份证,BCrypt 加密,并写入组用户关联。返回创建后的用户ID。 */ + Integer add(SysUserRequest request); /** 编辑用户;密码为空时不修改密码。 */ void edit(Integer id, SysUserRequest request); diff --git a/src/main/java/com/yunhai/userbase/service/impl/AppRoleService.java b/src/main/java/com/yunhai/userbase/service/impl/AppRoleService.java index 46cc59b..f1023d9 100644 --- a/src/main/java/com/yunhai/userbase/service/impl/AppRoleService.java +++ b/src/main/java/com/yunhai/userbase/service/impl/AppRoleService.java @@ -182,7 +182,8 @@ public class AppRoleService implements IAppRoleService { } else { ApplicationInfo app = applicationInfoRepository.findById(role.getAppId()).orElse(null); if (app == null) { - throw new DException("角色所属应用不存在: " + role.getAppId()); + // 应用已删除的孤儿角色:不再抛错导致整页 500,返回空授权树(数据侧请用清理 SQL 修复) + return Collections.emptyList(); } apps = Collections.singletonList(app); } diff --git a/src/main/java/com/yunhai/userbase/service/impl/SysUserService.java b/src/main/java/com/yunhai/userbase/service/impl/SysUserService.java index 638ebdd..0a720b6 100644 --- a/src/main/java/com/yunhai/userbase/service/impl/SysUserService.java +++ b/src/main/java/com/yunhai/userbase/service/impl/SysUserService.java @@ -96,9 +96,9 @@ public class SysUserService implements ISysUserService { @Override @Transactional - public void add(SysUserRequest request) { + public Integer add(SysUserRequest request) { // 单条新增走完整校验(含密码强度) - createUser(request, true); + return createUser(request, true); } /** @@ -108,7 +108,7 @@ public class SysUserService implements ISysUserService { * - 单条新增 = true(前端已交互式校验); * - 批量导入 = false(默认密码 Vzuk4Dp3 不含符号,按业务约定直接放行)。 */ - private void createUser(SysUserRequest request, boolean enforcePasswordStrength) { + private Integer createUser(SysUserRequest request, boolean enforcePasswordStrength) { if (sysUserRepository.countByAccount(request.getAccount()) > 0) { throw new DException("账号已存在"); } @@ -146,6 +146,8 @@ public class SysUserService implements ISysUserService { rel.setIsMain(IS_MAIN); rel.setCreateTime(LocalDateTime.now()); sysUserGroupRelRepository.save(rel); + + return saved.getId(); } @Override