From 0a9d4ea17b9f2bce9d82e959fbdb3c1c1f282ea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Tue, 28 Sep 2021 17:56:19 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E9=80=82=E9=85=8D=E5=8D=95=E4=BD=93?= =?UTF-8?q?=E7=B3=BB=E4=B8=8E=E5=A4=9A=E4=BD=93=E7=B3=BB=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/common/enums/DeviceType.java | 27 ++++++++ .../java/com/ruoyi/common/enums/UserType.java | 27 ++++++++ .../com/ruoyi/common/utils/LoginUtils.java | 69 +++++++++++++++++++ 3 files changed, 123 insertions(+) create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/enums/DeviceType.java create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/enums/UserType.java create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/utils/LoginUtils.java 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 000000000..e6ac849df --- /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 000000000..9c3b53195 --- /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 000000000..9cd759f4a --- /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); + } + } + +}