diff --git a/src/main/java/com/gxwebsoft/common/system/mapper/UserMapper.java b/src/main/java/com/gxwebsoft/common/system/mapper/UserMapper.java index b889d0f..0dce068 100644 --- a/src/main/java/com/gxwebsoft/common/system/mapper/UserMapper.java +++ b/src/main/java/com/gxwebsoft/common/system/mapper/UserMapper.java @@ -81,6 +81,15 @@ public interface UserMapper extends BaseMapper { @InterceptorIgnore(tenantLine = "true") List selectAccountsByPhone(@Param("phone") String phone); + /** + * 根据邮箱查询所有账号(忽略租户隔离) + * + * @param email 邮箱 + * @return List + */ + @InterceptorIgnore(tenantLine = "true") + List selectAccountsByEmail(@Param("email") String email); + /** * 根据手机号统计账号数量(忽略租户隔离) * diff --git a/src/main/java/com/gxwebsoft/common/system/service/impl/UserServiceImpl.java b/src/main/java/com/gxwebsoft/common/system/service/impl/UserServiceImpl.java index 2f5e20d..a5332f6 100644 --- a/src/main/java/com/gxwebsoft/common/system/service/impl/UserServiceImpl.java +++ b/src/main/java/com/gxwebsoft/common/system/service/impl/UserServiceImpl.java @@ -54,6 +54,8 @@ public class UserServiceImpl extends ServiceImpl implements Us private OrganizationService organizationService; @Resource private UserRefereeService userRefereeService; + @Resource + private TenantService tenantService; @Autowired(required = false) private SyncMessageProducer syncMessageProducer; @@ -346,6 +348,10 @@ public class UserServiceImpl extends ServiceImpl implements Us role = roleService.getOne(roleQw, false); // If the default "user" role is missing (fresh DB / incomplete init), create it to avoid empty roles. if (role == null && addUser.getTenantId() != null && "user".equals(roleCode)) { + // 校验租户是否存在,否则插入 sys_role 会因外键约束失败(tenant_id 引用 sys_tenant) + if (tenantService.getById(addUser.getTenantId()) == null) { + throw new BusinessException("租户不存在(tenantId=" + addUser.getTenantId() + "),无法创建默认角色"); + } Role defaultRole = new Role(); defaultRole.setRoleName("注册用户"); defaultRole.setRoleCode("user");