From f96f653e87dbf5746f067eed434c052578413ea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=A1=BA=E4=B8=9C?= <577732344@qq.com> Date: Tue, 13 Jan 2026 22:57:39 +0800 Subject: [PATCH] =?UTF-8?q?bugfix-=E4=BC=81=E4=B8=9A=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=B3=A8=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/service/SysLoginService.java | 36 +++++++++++++------ 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java index 537e72f..c88e138 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java @@ -827,19 +827,33 @@ public class SysLoginService AppUser appUser = appUserService.getPhoneAndUserType(phone, StringUtil.IS_COMPANY_USER); if (appUser != null) { - // 用户存在,执行登录 + // 用户存在 if (StringUtils.isBlank(appUser.getYtjPassword())) { - return AjaxResult.error("账号密码未设置,请联系管理员!"); + // 密码为空,设置密码并登录 + AppUser updateParam = new AppUser(); + updateParam.setUserId(appUser.getUserId()); + updateParam.setYtjPassword(SiteSecurityUtils.encryptPassword(password)); + updateParam.setLoginDate(new Date()); + // 如果传了企业信息,也更新 + if (StringUtils.isNotBlank(companyCode)) { + updateParam.setIdCard(companyCode); + } + if (StringUtils.isNotBlank(companyName)) { + updateParam.setName(companyName); + } + appUserService.updateAppUser(updateParam); + appUser.setYtjPassword(updateParam.getYtjPassword()); + } else { + // 密码已设置,校验密码 + if (!SiteSecurityUtils.matchesPassword(password, appUser.getYtjPassword())) { + return AjaxResult.error("密码错误,请重新输入!"); + } + // 更新登录时间 + AppUser updateParam = new AppUser(); + updateParam.setUserId(appUser.getUserId()); + updateParam.setLoginDate(new Date()); + appUserService.updateAppUser(updateParam); } - if (!SiteSecurityUtils.matchesPassword(password, appUser.getYtjPassword())) { - return AjaxResult.error("密码错误,请重新输入!"); - } - - // 更新登录时间 - AppUser updateParam = new AppUser(); - updateParam.setUserId(appUser.getUserId()); - updateParam.setLoginDate(new Date()); - appUserService.updateAppUser(updateParam); // 生成token并返回 String token = loginUserIdApp(appUser);