From e616839a72143ba9443086635ad42632e1e46ac8 Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Sat, 17 Jun 2023 22:02:55 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.6.0=E3=80=91=E3=80=90sys=E3=80=91?= =?UTF-8?q?=E3=80=90auth=E3=80=91=E6=95=B4=E7=90=86=E7=94=A8=E4=BA=8E?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E7=94=A8=E6=88=B7=E5=AF=86=E7=A0=81=E7=9A=84?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kernel/sys/api/SysUserServiceApi.java | 9 +++ .../sys/api/pojo/user/UserValidateDTO.java | 58 +++++++++++++++++++ .../user/biz/UserIntegrationService.java | 18 ++++++ .../user/enums/SysUserExceptionEnum.java | 9 ++- 4 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/pojo/user/UserValidateDTO.java diff --git a/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserServiceApi.java b/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserServiceApi.java index c7c48f97b..dbd938801 100644 --- a/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserServiceApi.java +++ b/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserServiceApi.java @@ -26,6 +26,7 @@ package cn.stylefeng.roses.kernel.sys.api; 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.api.pojo.user.UserValidateDTO; import java.util.List; @@ -89,4 +90,12 @@ public interface SysUserServiceApi { */ String getUserRealName(Long userId); + /** + * 获取用于用户校验的 + * + * @author fengshuonan + * @since 2023/6/17 21:56 + */ + UserValidateDTO getUserValidateDTO(Long account); + } diff --git a/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/pojo/user/UserValidateDTO.java b/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/pojo/user/UserValidateDTO.java new file mode 100644 index 000000000..ad8adfcf5 --- /dev/null +++ b/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/pojo/user/UserValidateDTO.java @@ -0,0 +1,58 @@ +/* + * Copyright [2020-2030] [https://www.stylefeng.cn] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Guns源码头部的版权声明。 + * 3.请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns + * 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns + * 6.若您的项目无法满足以上几点,可申请商业授权 + */ +package cn.stylefeng.roses.kernel.sys.api.pojo.user; + +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; +import lombok.Data; + +/** + * 用在用户登录校验结果的包装 + * + * @author fengshuonan + * @since 2023/6/17 21:55 + */ +@Data +public class UserValidateDTO { + + /** + * 加密后的密码,存在sys_user表的password字段 + */ + @ChineseDescription("加密后的密码") + private String userPasswordHexed; + + /** + * 用户状态,状态在UserStatusEnum维护 + */ + @ChineseDescription("用户状态") + private Integer userStatus; + + public UserValidateDTO() { + } + + public UserValidateDTO(String userPasswordHexed, Integer userStatus) { + this.userPasswordHexed = userPasswordHexed; + this.userStatus = userStatus; + } +} diff --git a/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/biz/UserIntegrationService.java b/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/biz/UserIntegrationService.java index 15a48fb1a..136fbc16f 100644 --- a/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/biz/UserIntegrationService.java +++ b/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/biz/UserIntegrationService.java @@ -4,13 +4,16 @@ import cn.hutool.core.util.ObjectUtil; import cn.stylefeng.roses.kernel.db.api.DbOperatorApi; import cn.stylefeng.roses.kernel.file.api.FileInfoApi; import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; +import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException; import cn.stylefeng.roses.kernel.sys.api.SysUserServiceApi; import cn.stylefeng.roses.kernel.sys.api.exception.SysException; 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.api.pojo.user.UserValidateDTO; import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUser; import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUserOrg; import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUserRole; +import cn.stylefeng.roses.kernel.sys.modular.user.enums.SysUserExceptionEnum; import cn.stylefeng.roses.kernel.sys.modular.user.factory.UserOrgFactory; import cn.stylefeng.roses.kernel.sys.modular.user.service.SysUserOrgService; import cn.stylefeng.roses.kernel.sys.modular.user.service.SysUserRoleService; @@ -174,4 +177,19 @@ public class UserIntegrationService implements SysUserServiceApi { return sysUser.getRealName(); } + @Override + public UserValidateDTO getUserValidateDTO(Long account) { + + LambdaQueryWrapper sysUserLambdaQueryWrapper = new LambdaQueryWrapper<>(); + sysUserLambdaQueryWrapper.eq(SysUser::getAccount, account); + sysUserLambdaQueryWrapper.select(SysUser::getPassword, SysUser::getStatusFlag); + SysUser sysUserServiceOne = this.sysUserService.getOne(sysUserLambdaQueryWrapper, false); + + if (sysUserServiceOne == null) { + throw new ServiceException(SysUserExceptionEnum.ACCOUNT_NOT_EXIST); + } + + return new UserValidateDTO(sysUserServiceOne.getPassword(), sysUserServiceOne.getStatusFlag()); + } + } diff --git a/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/enums/SysUserExceptionEnum.java b/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/enums/SysUserExceptionEnum.java index 6fa9326a8..0c8d1f6a7 100644 --- a/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/enums/SysUserExceptionEnum.java +++ b/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/enums/SysUserExceptionEnum.java @@ -21,7 +21,14 @@ public enum SysUserExceptionEnum implements AbstractExceptionEnum { /** * 不能删除超级管理员 */ - USER_CAN_NOT_DELETE_ADMIN(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10002", "不能删除超级管理员"); + USER_CAN_NOT_DELETE_ADMIN(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10002", "不能删除超级管理员"), + + /** + * 用户账号不存在 + *

+ * 但是提示:用户账号或密码错误,请重新输入 + */ + ACCOUNT_NOT_EXIST(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10003", "用户账号或密码错误,请重新输入"); /** * 错误编码