From 849803e8882b5df557be8d686aeba1cf65ee5245 Mon Sep 17 00:00:00 2001 From: "Michelle.Chung" <1242874891@qq.com> Date: Sat, 21 Oct 2023 19:21:58 +0800 Subject: [PATCH] =?UTF-8?q?add=20update=5F5.1.0-5.1.1.sql=20;=20update=20?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=20SysLoginService#buildLoginUser=20=E4=B8=8D?= =?UTF-8?q?=E4=BD=9C=20client=20=E4=BC=A0=E5=8F=82(=E5=90=8E=E7=BB=AD?= =?UTF-8?q?=E4=BC=98=E5=8C=96)=20;=20update=20=E6=9B=B4=E6=96=B0=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=90=8D=E7=A7=B0=20client=20->=20clientKey=20;=20upd?= =?UTF-8?q?ate=20=E4=BC=98=E5=8C=96=20SysLogininforServiceImpl=20=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E4=BB=A5=E5=8F=8A=E9=AD=94=E6=B3=95=E5=80=BC=20;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/dromara/web/service/SysLoginService.java | 4 +--- .../org/dromara/web/service/impl/EmailAuthStrategy.java | 4 +++- .../dromara/web/service/impl/PasswordAuthStrategy.java | 4 +++- .../org/dromara/web/service/impl/SmsAuthStrategy.java | 4 +++- .../org/dromara/web/service/impl/SocialAuthStrategy.java | 4 +++- .../org/dromara/web/service/impl/XcxAuthStrategy.java | 2 ++ .../dromara/common/core/domain/dto/UserOnlineDTO.java | 2 +- .../org/dromara/common/core/domain/model/LoginUser.java | 2 +- .../common/satoken/listener/UserActionListener.java | 2 +- .../java/org/dromara/system/domain/SysLogininfor.java | 2 +- .../java/org/dromara/system/domain/SysUserOnline.java | 2 +- .../org/dromara/system/domain/bo/SysLogininforBo.java | 2 +- .../org/dromara/system/domain/vo/SysLogininforVo.java | 2 +- .../system/service/impl/SysLogininforServiceImpl.java | 9 +++++---- script/sql/update/update_5.0-5.1.sql | 5 ----- script/sql/update/update_5.1.0-5.1.1.sql | 4 ++++ 16 files changed, 31 insertions(+), 23 deletions(-) create mode 100644 script/sql/update/update_5.1.0-5.1.1.sql diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java b/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java index 7e3dc26f2..b31201b18 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java @@ -133,7 +133,7 @@ public class SysLoginService { /** * 构建登录用户 */ - public LoginUser buildLoginUser(SysUserVo user, String client, String deviceType) { + public LoginUser buildLoginUser(SysUserVo user) { LoginUser loginUser = new LoginUser(); loginUser.setTenantId(user.getTenantId()); loginUser.setUserId(user.getUserId()); @@ -141,8 +141,6 @@ public class SysLoginService { loginUser.setUsername(user.getUserName()); loginUser.setNickname(user.getNickName()); loginUser.setUserType(user.getUserType()); - loginUser.setClient(client); - loginUser.setDeviceType(deviceType); loginUser.setMenuPermission(permissionService.getMenuPermission(user.getUserId())); loginUser.setRolePermission(permissionService.getRolePermission(user.getUserId())); loginUser.setDeptName(ObjectUtil.isNull(user.getDept()) ? "" : user.getDept().getDeptName()); diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EmailAuthStrategy.java b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EmailAuthStrategy.java index 55361c7ce..4ac352162 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EmailAuthStrategy.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EmailAuthStrategy.java @@ -60,7 +60,9 @@ public class EmailAuthStrategy implements IAuthStrategy { loginService.checkLogin(LoginType.EMAIL, tenantId, user.getUserName(), userType, () -> !validateEmailCode(tenantId, email, emailCode, userType)); // 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了 - LoginUser loginUser = loginService.buildLoginUser(user, client.getClientKey(), client.getDeviceType()); + LoginUser loginUser = loginService.buildLoginUser(user); + loginUser.setClientKey(client.getClientKey()); + loginUser.setDeviceType(client.getDeviceType()); SaLoginModel model = new SaLoginModel(); model.setDevice(client.getDeviceType()); // 自定义分配 不同用户体系 不同 token 授权时间 不设置默认走全局 yml 配置 diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/PasswordAuthStrategy.java b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/PasswordAuthStrategy.java index 047ac67b1..670be8b6c 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/PasswordAuthStrategy.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/PasswordAuthStrategy.java @@ -71,7 +71,9 @@ public class PasswordAuthStrategy implements IAuthStrategy { loginService.checkLogin(LoginType.PASSWORD, tenantId, username, userType, () -> !BCrypt.checkpw(password, user.getPassword())); // 此处可根据登录用户的数据不同 自行创建 loginUser - LoginUser loginUser = loginService.buildLoginUser(user, client.getClientKey(), client.getDeviceType()); + LoginUser loginUser = loginService.buildLoginUser(user); + loginUser.setClientKey(client.getClientKey()); + loginUser.setDeviceType(client.getDeviceType()); SaLoginModel model = new SaLoginModel(); model.setDevice(client.getDeviceType()); // 自定义分配 不同用户体系 不同 token 授权时间 不设置默认走全局 yml 配置 diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/SmsAuthStrategy.java b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/SmsAuthStrategy.java index 7e97fa6b9..8de8be19d 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/SmsAuthStrategy.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/SmsAuthStrategy.java @@ -60,7 +60,9 @@ public class SmsAuthStrategy implements IAuthStrategy { loginService.checkLogin(LoginType.SMS, tenantId, user.getUserName(), userType, () -> !validateSmsCode(tenantId, phonenumber, smsCode, userType)); // 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了 - LoginUser loginUser = loginService.buildLoginUser(user, client.getClientKey(), client.getDeviceType()); + LoginUser loginUser = loginService.buildLoginUser(user); + loginUser.setClientKey(client.getClientKey()); + loginUser.setDeviceType(client.getDeviceType()); SaLoginModel model = new SaLoginModel(); model.setDevice(client.getDeviceType()); // 自定义分配 不同用户体系 不同 token 授权时间 不设置默认走全局 yml 配置 diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/SocialAuthStrategy.java b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/SocialAuthStrategy.java index 8d37bef52..9180a862c 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/SocialAuthStrategy.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/SocialAuthStrategy.java @@ -96,7 +96,9 @@ public class SocialAuthStrategy implements IAuthStrategy { SysUserVo user = loadUser(tenantId, social.getUserId()); // 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了 - LoginUser loginUser = loginService.buildLoginUser(user, client.getClientKey(), client.getDeviceType()); + LoginUser loginUser = loginService.buildLoginUser(user); + loginUser.setClientKey(client.getClientKey()); + loginUser.setDeviceType(client.getDeviceType()); SaLoginModel model = new SaLoginModel(); model.setDevice(client.getDeviceType()); // 自定义分配 不同用户体系 不同 token 授权时间 不设置默认走全局 yml 配置 diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/XcxAuthStrategy.java b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/XcxAuthStrategy.java index a739c0f8b..7def610de 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/XcxAuthStrategy.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/XcxAuthStrategy.java @@ -54,6 +54,8 @@ public class XcxAuthStrategy implements IAuthStrategy { loginUser.setUsername(user.getUserName()); loginUser.setNickname(user.getNickName()); loginUser.setUserType(user.getUserType()); + loginUser.setClientKey(client.getClientKey()); + loginUser.setDeviceType(client.getDeviceType()); loginUser.setOpenid(openid); SaLoginModel model = new SaLoginModel(); diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/UserOnlineDTO.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/UserOnlineDTO.java index eb66636c1..549ada3db 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/UserOnlineDTO.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/UserOnlineDTO.java @@ -42,7 +42,7 @@ public class UserOnlineDTO implements Serializable { /** * 客户端 */ - private String client; + private String clientKey; /** * 设备类型 diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/model/LoginUser.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/model/LoginUser.java index 80e342998..e2671243a 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/model/LoginUser.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/model/LoginUser.java @@ -115,7 +115,7 @@ public class LoginUser implements Serializable { /** * 客户端 */ - private String client; + private String clientKey; /** * 设备类型 diff --git a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/listener/UserActionListener.java b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/listener/UserActionListener.java index 191e57a31..0733ea56e 100644 --- a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/listener/UserActionListener.java +++ b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/listener/UserActionListener.java @@ -50,7 +50,7 @@ public class UserActionListener implements SaTokenListener { dto.setTokenId(tokenValue); dto.setUserName(user.getUsername()); dto.setUserType(user.getUserType()); - dto.setClient(user.getClient()); + dto.setClientKey(user.getClientKey()); dto.setDeviceType(user.getDeviceType()); dto.setDeptName(user.getDeptName()); if(tokenConfig.getTimeout() == -1) { diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysLogininfor.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysLogininfor.java index c2cb45b03..509476037 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysLogininfor.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysLogininfor.java @@ -45,7 +45,7 @@ public class SysLogininfor implements Serializable { /** * 客户端 */ - private String client; + private String clientKey; /** * 设备类型 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysUserOnline.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysUserOnline.java index 411732532..1fa072b83 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysUserOnline.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysUserOnline.java @@ -34,7 +34,7 @@ public class SysUserOnline { /** * 客户端 */ - private String client; + private String clientKey; /** * 设备类型 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysLogininforBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysLogininforBo.java index 8c9e5e263..db76c5359 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysLogininforBo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysLogininforBo.java @@ -41,7 +41,7 @@ public class SysLogininforBo { /** * 客户端 */ - private String client; + private String clientKey; /** * 设备类型 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysLogininforVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysLogininforVo.java index 1304eebb0..0943d3c11 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysLogininforVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysLogininforVo.java @@ -55,7 +55,7 @@ public class SysLogininforVo implements Serializable { * 客户端 */ @ExcelProperty(value = "客户端") - private String client; + private String clientKey; /** * 设备类型 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysLogininforServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysLogininforServiceImpl.java index e2b045417..f544ed1c3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysLogininforServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysLogininforServiceImpl.java @@ -13,6 +13,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.core.utils.ServletUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.ip.AddressUtils; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.system.domain.SysClient; import org.dromara.system.domain.SysLogininfor; import org.dromara.system.domain.bo.SysLogininforBo; @@ -45,7 +46,7 @@ public class SysLogininforServiceImpl implements ISysLogininforService { private final SysLogininforMapper baseMapper; - private final ISysClientService iSysClientService; + private final ISysClientService clientService; /** * 记录登录信息 @@ -59,10 +60,10 @@ public class SysLogininforServiceImpl implements ISysLogininforService { final UserAgent userAgent = UserAgentUtil.parse(request.getHeader("User-Agent")); final String ip = ServletUtils.getClientIP(request); // 客户端信息 - String clientid = request.getHeader("Clientid"); + String clientid = request.getHeader(LoginHelper.CLIENT_KEY); SysClient client = null; if (StringUtils.isNotBlank(clientid)) { - client = iSysClientService.queryByClientId(clientid); + client = clientService.queryByClientId(clientid); } String address = AddressUtils.getRealAddressByIP(ip); @@ -84,7 +85,7 @@ public class SysLogininforServiceImpl implements ISysLogininforService { logininfor.setUserName(logininforEvent.getUsername()); logininfor.setUserType(logininforEvent.getUserType()); if (ObjectUtil.isNotNull(client)) { - logininfor.setClient(client.getClientKey()); + logininfor.setClientKey(client.getClientKey()); logininfor.setDeviceType(client.getDeviceType()); } logininfor.setIpaddr(ip); diff --git a/script/sql/update/update_5.0-5.1.sql b/script/sql/update/update_5.0-5.1.sql index e0fa29994..871bda38f 100644 --- a/script/sql/update/update_5.0-5.1.sql +++ b/script/sql/update/update_5.0-5.1.sql @@ -99,8 +99,3 @@ insert into sys_role_menu values ('2', '1065'); update sys_dept set leader = null; alter table sys_dept modify column leader bigint null default null comment '负责人' after order_num; - -ALTER TABLE sys_logininfor - ADD COLUMN user_type VARCHAR(10) NULL DEFAULT 'sys_user' COMMENT '用户类型(sys_user系统用户)' AFTER `user_name`, - ADD COLUMN client VARCHAR(32) NULL DEFAULT NULL COMMENT '客户端' AFTER `user_type`, - ADD COLUMN device_type VARCHAR(32) NULL DEFAULT NULL COMMENT '设备类型' AFTER `client`; diff --git a/script/sql/update/update_5.1.0-5.1.1.sql b/script/sql/update/update_5.1.0-5.1.1.sql new file mode 100644 index 000000000..d55cd1c32 --- /dev/null +++ b/script/sql/update/update_5.1.0-5.1.1.sql @@ -0,0 +1,4 @@ +ALTER TABLE sys_logininfor + ADD COLUMN user_type VARCHAR(10) NULL DEFAULT 'sys_user' COMMENT '用户类型(sys_user系统用户)' AFTER `user_name`, + ADD COLUMN client_key VARCHAR(32) NULL DEFAULT NULL COMMENT '客户端' AFTER `user_type`, + ADD COLUMN device_type VARCHAR(32) NULL DEFAULT NULL COMMENT '设备类型' AFTER `client_key`;