From 0a9d4ea17b9f2bce9d82e959fbdb3c1c1f282ea2 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期二, 28 九月 2021 17:56:19 +0800 Subject: [PATCH] update 适配单体系与多体系用户权限 --- ruoyi-common/src/main/java/com/ruoyi/common/utils/LoginUtils.java | 69 +++++++++++++++++++++++ ruoyi-common/src/main/java/com/ruoyi/common/enums/DeviceType.java | 27 +++++++++ ruoyi-common/src/main/java/com/ruoyi/common/enums/UserType.java | 27 +++++++++ 3 files changed, 123 insertions(+), 0 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/DeviceType.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/DeviceType.java new file mode 100644 index 0000000..e6ac849 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/DeviceType.java @@ -0,0 +1,27 @@ +package com.ruoyi.common.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 璁惧绫诲瀷 + * 閽堝涓�濂� 鐢ㄦ埛浣撶郴 + * + * @author Lion Li + */ +@Getter +@AllArgsConstructor +public enum DeviceType { + + /** + * pc绔� + */ + PC("pc"), + + /** + * app绔� + */ + APP("app"); + + private final String device; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/UserType.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/UserType.java new file mode 100644 index 0000000..9c3b531 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/UserType.java @@ -0,0 +1,27 @@ +package com.ruoyi.common.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 璁惧绫诲瀷 + * 閽堝涓ゅ 鐢ㄦ埛浣撶郴 + * + * @author Lion Li + */ +@Getter +@AllArgsConstructor +public enum UserType { + + /** + * pc绔� + */ + SYS_USER("sys_user:"), + + /** + * app绔� + */ + APP_USER("app_user:"); + + private final String userType; +} 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..9cd759f --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/LoginUtils.java @@ -0,0 +1,69 @@ +package com.ruoyi.common.utils; + +import cn.dev33.satoken.stp.StpUtil; +import com.ruoyi.common.enums.DeviceType; +import com.ruoyi.common.enums.UserType; +import com.ruoyi.common.exception.UtilException; + +/** + * 鐧诲綍閴存潈宸ュ叿 + * 涓洪�傞厤澶氱鐧诲綍鑰屽皝瑁� + * + * @author Lion Li + */ +public class LoginUtils { + + /** + * 鐧诲綍绯荤粺 + * 閽堝涓ゅ鐢ㄦ埛浣撶郴 + * @param userId 鐢ㄦ埛id + */ + public static void login(Long userId, UserType userType) { + StpUtil.login(userType.getUserType() + userId); + } + + /** + * 鐧诲綍绯荤粺 鍩轰簬 璁惧绫诲瀷 + * 閽堝涓�濂楃敤鎴蜂綋绯� + * @param userId 鐢ㄦ埛id + */ + public static void loginByDevice(Long userId, UserType userType, DeviceType deviceType) { + StpUtil.login(userType.getUserType() + userId, deviceType.getDevice()); + } + + /** + * 鑾峰彇鐢ㄦ埛id + */ + public static Long getUserId() { + 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); + } + + /** + * 鑾峰彇鐢ㄦ埛绫诲瀷 + */ + 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