From 6ca853516671882e8e54d9630a4299f12fbcf9aa Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期四, 13 一月 2022 11:14:33 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/satoken' into dev --- ruoyi-common/src/main/java/com/ruoyi/common/utils/LoginUtils.java | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 107 insertions(+), 0 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/LoginUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/LoginUtils.java new file mode 100644 index 0000000..a5dc50e --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/LoginUtils.java @@ -0,0 +1,107 @@ +package com.ruoyi.common.utils; + +import cn.dev33.satoken.stp.StpUtil; +import cn.hutool.core.util.ObjectUtil; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.enums.DeviceType; +import com.ruoyi.common.enums.UserType; +import com.ruoyi.common.exception.UtilException; + +/** + * 鐧诲綍閴存潈宸ュ叿 + * 涓洪�傞厤澶氱鐧诲綍鑰屽皝瑁� + * + * @author Lion Li + */ +public class LoginUtils { + + private final static String LOGIN_USER_KEY = "loginUser"; + + /** + * 鐧诲綍绯荤粺 + * 閽堝涓ゅ鐢ㄦ埛浣撶郴 + * @param loginUser 鐧诲綍鐢ㄦ埛淇℃伅 + */ + public static void login(LoginUser loginUser, UserType userType) { + StpUtil.login(userType.getUserType() + loginUser.getUserId()); + setLoginUser(loginUser); + } + + /** + * 鐧诲綍绯荤粺 鍩轰簬 璁惧绫诲瀷 + * 閽堝涓�濂楃敤鎴蜂綋绯� + * @param loginUser 鐧诲綍鐢ㄦ埛淇℃伅 + */ + public static void loginByDevice(LoginUser loginUser, UserType userType, DeviceType deviceType) { + StpUtil.login(userType.getUserType() + loginUser.getUserId(), deviceType.getDevice()); + setLoginUser(loginUser); + } + + /** + * 璁剧疆鐢ㄦ埛鏁版嵁 + */ + public static void setLoginUser(LoginUser loginUser) { + StpUtil.getTokenSession().set(LOGIN_USER_KEY, loginUser); + } + + /** + * 鑾峰彇鐢ㄦ埛 + **/ + public static LoginUser getLoginUser() { + return (LoginUser) StpUtil.getTokenSession().get(LOGIN_USER_KEY); + } + + /** + * 鑾峰彇鐢ㄦ埛id + */ + public static Long getUserId() { + LoginUser loginUser = getLoginUser(); + if (ObjectUtil.isNull(loginUser)) { + String loginId = StpUtil.getLoginIdAsString(); + String userId; + String replace = ""; + if (StringUtils.contains(loginId, UserType.SYS_USER.getUserType())) { + userId = StringUtils.replace(loginId, UserType.SYS_USER.getUserType(), replace); + } else if (StringUtils.contains(loginId, UserType.APP_USER.getUserType())){ + userId = StringUtils.replace(loginId, UserType.APP_USER.getUserType(), replace); + } else { + throw new UtilException("鐧诲綍鐢ㄦ埛: LoginId寮傚父 => " + loginId); + } + return Long.parseLong(userId); + } + return loginUser.getUserId(); + } + + /** + * 鑾峰彇閮ㄩ棬ID + **/ + public static Long getDeptId() { + return getLoginUser().getDeptId(); + } + + /** + * 鑾峰彇鐢ㄦ埛璐︽埛 + **/ + public static String getUsername() { + return getLoginUser().getUsername(); + } + + /** + * 鑾峰彇鐢ㄦ埛绫诲瀷 + */ + public static UserType getUserType() { + String loginId = StpUtil.getLoginIdAsString(); + return getUserType(loginId); + } + + public static UserType getUserType(Object loginId) { + if (StringUtils.contains(loginId.toString(), UserType.SYS_USER.getUserType())) { + return UserType.SYS_USER; + } else if (StringUtils.contains(loginId.toString(), UserType.APP_USER.getUserType())){ + return UserType.APP_USER; + } else { + throw new UtilException("鐧诲綍鐢ㄦ埛: LoginId寮傚父 => " + loginId); + } + } + +} -- Gitblit v1.9.3