From cd80052eee8115ba7a99641d0244bf98e4792b30 Mon Sep 17 00:00:00 2001 From: lapuda <577732344@qq.com> Date: Thu, 23 Jul 2026 14:58:12 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=85=20test:=20=E6=B7=BB=E5=8A=A0=E5=AF=B9?= =?UTF-8?q?=E4=BC=81=E4=B8=9A=E8=B4=A6=E5=8F=B7=E7=8A=B6=E6=80=81=E7=9A=84?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/web/service/BackDoorLoginService.java | 10 +++++++--- .../web/service/BackDoorLoginServiceTest.java | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/service/BackDoorLoginService.java b/ruoyi-admin/src/main/java/com/ruoyi/web/service/BackDoorLoginService.java index 9d4a864..9ca184c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/service/BackDoorLoginService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/service/BackDoorLoginService.java @@ -156,12 +156,16 @@ public class BackDoorLoginService { throw new ServiceException("企业账号不存在"); } - if (!UserStatus.OK.getCode().equals(appUser.getDelFlag())) + // HighGo 中 app_user.status 是 CHAR(2),JDBC 会保留定长字段的尾部空格。 + // SQL 比较会将 "0 " 视为 "0",Java 字符串比较则不会;统一 trim,确保 + // 列表筛选与登录时的状态判断使用完全相同的语义。 + String delFlag = StringUtils.trimToEmpty(appUser.getDelFlag()); + String status = StringUtils.trimToEmpty(appUser.getStatus()); + if (!UserStatus.OK.getCode().equals(delFlag)) { throw new ServiceException("企业账号已删除,不能登录"); } - if (StringUtils.isNotBlank(appUser.getStatus()) - && !UserStatus.OK.getCode().equals(appUser.getStatus())) + if (StringUtils.isNotEmpty(status) && !UserStatus.OK.getCode().equals(status)) { throw new ServiceException("企业账号已停用,不能登录"); } diff --git a/ruoyi-admin/src/test/java/com/ruoyi/web/service/BackDoorLoginServiceTest.java b/ruoyi-admin/src/test/java/com/ruoyi/web/service/BackDoorLoginServiceTest.java index ac31a3a..1394654 100644 --- a/ruoyi-admin/src/test/java/com/ruoyi/web/service/BackDoorLoginServiceTest.java +++ b/ruoyi-admin/src/test/java/com/ruoyi/web/service/BackDoorLoginServiceTest.java @@ -200,6 +200,20 @@ class BackDoorLoginServiceTest verify(tokenService, never()).createTokenHourTwo(org.mockito.ArgumentMatchers.any()); } + @Test + void loginCompanyAcceptsPaddedHighGoActiveStatus() + { + AppUser company = activeCompany(66L); + company.setStatus("0 "); + when(sysUserService.selectAppUserById(66L)).thenReturn(company); + when(sysLoginService.loginUserIdApp(company)).thenReturn("company-site-token"); + + CompanyLoginSession session = service.loginCompany(66L); + + assertEquals("company-site-token", session.getToken()); + verify(sysLoginService).loginUserIdApp(company); + } + @Test void loginCompanyRejectsNonCompanyAccount() {