diff --git a/kernel-s-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/constants/MessageConstants.java b/kernel-s-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/constants/MessageConstants.java index cff211e5d..2552c3dcf 100644 --- a/kernel-s-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/constants/MessageConstants.java +++ b/kernel-s-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/constants/MessageConstants.java @@ -47,14 +47,4 @@ public interface MessageConstants { */ String RECEIVE_ALL_USER_FLAG = "all"; - /** - * 默认websocket-url - */ - String DEFAULT_WS_URL = "ws://localhost:8080/webSocket/{token}"; - - /** - * 系统配置中websocket url的变量编码 - */ - String WEB_SOCKET_WS_URL_CONFIG_CODE = "WEB_SOCKET_WS_URL"; - } diff --git a/kernel-s-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/expander/WebSocketConfigExpander.java b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/login/expander/WebSocketConfigExpander.java similarity index 89% rename from kernel-s-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/expander/WebSocketConfigExpander.java rename to kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/login/expander/WebSocketConfigExpander.java index e83284679..4922f97c2 100644 --- a/kernel-s-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/expander/WebSocketConfigExpander.java +++ b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/login/expander/WebSocketConfigExpander.java @@ -22,10 +22,9 @@ * 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns * 6.若您的项目无法满足以上几点,可申请商业授权 */ -package cn.stylefeng.roses.kernel.message.api.expander; +package cn.stylefeng.roses.kernel.sys.modular.login.expander; import cn.stylefeng.roses.kernel.config.api.context.ConfigContext; -import cn.stylefeng.roses.kernel.message.api.constants.MessageConstants; /** * websocket相关配置快速获取 @@ -42,7 +41,7 @@ public class WebSocketConfigExpander { * @since 2021/1/25 20:34 */ public static String getWebSocketWsUrl() { - return ConfigContext.me().getSysConfigValueWithDefault("WEB_SOCKET_WS_URL", String.class, MessageConstants.DEFAULT_WS_URL); + return ConfigContext.me().getSysConfigValueWithDefault("WEB_SOCKET_WS_URL", String.class, "null"); } } diff --git a/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/login/service/UserIndexInfoService.java b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/login/service/UserIndexInfoService.java index 3d1b8b5d0..56baf5f57 100644 --- a/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/login/service/UserIndexInfoService.java +++ b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/login/service/UserIndexInfoService.java @@ -1,6 +1,7 @@ package cn.stylefeng.roses.kernel.sys.modular.login.service; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.stylefeng.roses.kernel.auth.api.context.LoginContext; import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser; import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; @@ -11,6 +12,7 @@ import cn.stylefeng.roses.kernel.sys.api.SysUserServiceApi; import cn.stylefeng.roses.kernel.sys.api.pojo.user.SimpleUserDTO; import cn.stylefeng.roses.kernel.sys.api.pojo.user.UserOrgDTO; import cn.stylefeng.roses.kernel.sys.modular.app.service.SysAppService; +import cn.stylefeng.roses.kernel.sys.modular.login.expander.WebSocketConfigExpander; import cn.stylefeng.roses.kernel.sys.modular.login.pojo.IndexUserAppInfo; import cn.stylefeng.roses.kernel.sys.modular.login.pojo.IndexUserMenuInfo; import cn.stylefeng.roses.kernel.sys.modular.login.pojo.IndexUserOrgInfo; @@ -93,10 +95,11 @@ public class UserIndexInfoService { this.fillMenuUrlAppIdMap(userIndexInfo, userMenuList); // 7. 构建websocket url - + this.fillWebSocketUrl(loginUser, userIndexInfo); // 8. 更新用户的session信息,因为可能更新了loginUser中的值 + return userIndexInfo; } @@ -309,4 +312,22 @@ public class UserIndexInfoService { userIndexInfo.setMenuUrlAppIdMap(menuUrlAppIdMap); } + + /** + * 填充用户的websocket url + * + * @author fengshuonan + * @since 2023/6/19 23:13 + */ + private void fillWebSocketUrl(LoginUser loginUser, UserIndexInfo userIndexInfo) { + + // 从sys_config中获取配置 + String webSocketWsUrl = WebSocketConfigExpander.getWebSocketWsUrl(); + Map params = new HashMap<>(1); + params.put("token", loginUser.getToken()); + webSocketWsUrl = StrUtil.format(webSocketWsUrl, params); + + userIndexInfo.setWebsocketUrl(webSocketWsUrl); + } + }