diff --git a/backend/src/main/java/com/yfd/platform/system/controller/SmsVerifyCodeController.java b/backend/src/main/java/com/yfd/platform/system/controller/SmsVerifyCodeController.java index 8680affe..7795dacf 100644 --- a/backend/src/main/java/com/yfd/platform/system/controller/SmsVerifyCodeController.java +++ b/backend/src/main/java/com/yfd/platform/system/controller/SmsVerifyCodeController.java @@ -70,7 +70,8 @@ public class SmsVerifyCodeController { @Resource private SysUserTenantMapper sysUserTenantMapper; - + @Resource + private SysUserTenantMapper userTenantMapper; @Resource private ISdHbrvDicService hbrvDicService; @@ -184,7 +185,7 @@ public class SmsVerifyCodeController { */ @PostMapping("/register") @Operation(summary = "注册用户") - @Transactional + @Transactional(rollbackFor = Exception.class) public ResponseResult register(@RequestHeader(value = "Tenant_id", required = false) String tenantId,@RequestBody SmsVerifyCodeRequest smsVerifyCodeRequest) { String code = smsVerifyCodeRequest.getCode(); if (smsVerifyCodeRequest.getPhone() == null || smsVerifyCodeRequest.getPhone().isEmpty()) { @@ -233,6 +234,10 @@ public class SmsVerifyCodeController { // 给注册用户加上默认权限 SysUser savedUser = userService.getUserByPhone(smsVerifyCodeRequest.getPhone(),tenantId); if (savedUser != null) { + SysUserTenant sysUserTenant = new SysUserTenant(); + sysUserTenant.setTenantId(tenantId); + sysUserTenant.setUserId(user.getId()); + userTenantMapper.insert(sysUserTenant); this.addDefaultRole(savedUser.getId(), smsVerifyCodeRequest); } if (success) { diff --git a/backend/src/main/java/com/yfd/platform/system/service/impl/AdminAuthServiceImpl.java b/backend/src/main/java/com/yfd/platform/system/service/impl/AdminAuthServiceImpl.java index 3b6579f9..4f75a0aa 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/impl/AdminAuthServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/system/service/impl/AdminAuthServiceImpl.java @@ -74,6 +74,8 @@ public class AdminAuthServiceImpl implements IAdminAuthService { @Override public boolean isCurrentManagedAdmin() { - return isManagedAdminUsername(SecurityUtils.getCurrentUsername()); + String maxLevel = userMapper.getMaxLevel(SecurityUtils.getUserId()); + boolean adminRole = "1".equals(maxLevel); + return adminRole||isManagedAdminUsername(SecurityUtils.getCurrentUsername()); } } diff --git a/backend/src/main/java/com/yfd/platform/system/service/impl/UserDetailsServiceImpl.java b/backend/src/main/java/com/yfd/platform/system/service/impl/UserDetailsServiceImpl.java index c1c9c6d6..45735c42 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/impl/UserDetailsServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/system/service/impl/UserDetailsServiceImpl.java @@ -9,6 +9,7 @@ import com.yfd.platform.system.domain.SysUser; import com.yfd.platform.system.mapper.SysMenuMapper; import com.yfd.platform.system.mapper.SysUserMapper; import com.yfd.platform.system.mapper.SysUserTenantMapper; +import com.yfd.platform.system.service.IAdminAuthService; import com.yfd.platform.system.service.IUserService; import jakarta.servlet.http.HttpServletRequest; import org.springframework.security.core.userdetails.UserDetails; @@ -38,6 +39,8 @@ public class UserDetailsServiceImpl implements UserDetailsService { @Resource private IUserService userService; + @Resource + private IAdminAuthService adminAuthService; @Resource private SysMenuMapper sysMenuMapper; @@ -71,7 +74,7 @@ public class UserDetailsServiceImpl implements UserDetailsService { } // 判断是否为超级管理员(LEVEL=1) - boolean isSuperAdmin = isSuperAdmin(user.getId()); + boolean isSuperAdmin = (isSuperAdmin(user.getId())||user.getUsertype()==0); // 查询用户可访问的门户列表 List accessibleTenantIds = sysUserTenantMapper.getTenantIdsByUserId(user.getId()); @@ -79,10 +82,10 @@ public class UserDetailsServiceImpl implements UserDetailsService { // 非超级管理员必须指定门户,且必须在可访问列表中 if (!isSuperAdmin) { if (StrUtil.isBlank(tenantId)) { - throw new RuntimeException("普通用户登录必须指定门户(Tenant_Id)"); + throw new RuntimeException("用户无权限访问该平台"); } if (accessibleTenantIds == null || !accessibleTenantIds.contains(tenantId)) { - throw new RuntimeException("用户无权限访问该门户"); + throw new RuntimeException("用户无权限访问该平台"); } } diff --git a/backend/src/main/resources/mapper/system/SysUserMapper.xml b/backend/src/main/resources/mapper/system/SysUserMapper.xml index c6b90b81..1e63e72f 100644 --- a/backend/src/main/resources/mapper/system/SysUserMapper.xml +++ b/backend/src/main/resources/mapper/system/SysUserMapper.xml @@ -83,7 +83,7 @@ and u.orgid = #{orgid} - and u.username LIKE '%' || #{username} || '%' + and (u.username LIKE '%' || #{username} || '%' OR u.nickname LIKE '%' || #{username} || '%' OR u.phone LIKE '%' || #{username} || '%') and (ut.TENANT_ID = #{tenantId} OR u.tenant_id = #{tenantId})