From d60ce3d8efc87b4b076c97e1455ec7ab36727c08 Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Tue, 9 Jun 2026 16:00:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E7=94=A8=E6=88=B7=E9=A6=96=E6=AC=A1?= =?UTF-8?q?=E5=BC=BA=E5=88=B6=E4=BF=AE=E6=94=B9=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/api/constant/UserExpireEnum.java | 32 +++++++++++++++++++ .../service/impl/SysUserServiceImpl.java | 21 ++++++------ 2 files changed, 43 insertions(+), 10 deletions(-) create mode 100644 pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/constant/UserExpireEnum.java diff --git a/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/constant/UserExpireEnum.java b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/constant/UserExpireEnum.java new file mode 100644 index 000000000..781bfe938 --- /dev/null +++ b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/constant/UserExpireEnum.java @@ -0,0 +1,32 @@ +package com.bsd.pjcloud.admin.api.constant; + +import lombok.Getter; + +/** + * 用户过期状态 + * + * @author zjf + * @date 2023/11/14 + */ +public enum UserExpireEnum { + + /** + * 正常 + */ + NORMAL("0", "未过期"), + /** + * 锁定 + */ + EXPIRE("9", "已过期"); + + @Getter + private final String code; + + private final String desc; + + UserExpireEnum(String code, String desc) { + this.code = code; + this.desc = desc; + } + +} diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserServiceImpl.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserServiceImpl.java index b27de4db9..65b39d73b 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserServiceImpl.java +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserServiceImpl.java @@ -34,6 +34,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.admin.api.constant.UserExpireEnum; import com.bsd.pjcloud.admin.api.constant.UserStaffingTypeEnum; import com.bsd.pjcloud.admin.api.constant.UserStateEnum; import com.bsd.pjcloud.admin.api.dto.ForgotPasswordDTO; @@ -191,6 +192,7 @@ public class SysUserServiceImpl extends ServiceImpl impl sysUser.setUpdateBy(userDto.getUsername()); sysUser.setPassword(ENCODER.encode(userDto.getPassword())); sysUser.setPasswordModifyTime(LocalDateTime.now()); + sysUser.setPasswordExpireFlag(UserExpireEnum.EXPIRE.getCode()); baseMapper.insert(sysUser); // 保存用户岗位信息 Optional.ofNullable(userDto.getPost()).ifPresent(posts -> { @@ -413,6 +415,8 @@ public class SysUserServiceImpl extends ServiceImpl impl if (StrUtil.isNotBlank(userDto.getPassword())) { sysUser.setPassword(ENCODER.encode(userDto.getPassword())); + sysUser.setPasswordModifyTime(LocalDateTime.now()); + sysUser.setPasswordExpireFlag(UserExpireEnum.EXPIRE.getCode()); } // 判断用户username是否重复 @@ -811,6 +815,7 @@ public class SysUserServiceImpl extends ServiceImpl impl sysUser.setProcessStatus(TaskCheckStatusEnum.RESULT.getCode()); sysUser.setProcessTime(LocalDateTime.now()); sysUser.setStaffingType(UserStaffingTypeEnum.NONE_STAFFING.getType()); + sysUser.setPasswordExpireFlag(UserExpireEnum.EXPIRE.getCode()); // 把用户放到默认部门 Long defaultDeptIdLong = null; String defaultDeptId = ParamResolver.getStr("DEFAULT_DEPT"); @@ -1003,23 +1008,19 @@ public class SysUserServiceImpl extends ServiceImpl impl if (StrUtil.length(password) < 8 || StrUtil.length(password) > 20) { return "密码长度需为8-20位"; } - boolean hasUpper = false; - boolean hasLower = false; + boolean hasLetter = false; boolean hasDigit = false; - boolean hasSpecial = false; for (char c : password.toCharArray()) { - if (Character.isUpperCase(c)) { - hasUpper = true; - } else if (Character.isLowerCase(c)) { - hasLower = true; + if (Character.isLetter(c)) { + hasLetter = true; } else if (Character.isDigit(c)) { hasDigit = true; } else { - hasSpecial = true; + return "密码只能包含字母和数字"; } } - if (!(hasUpper && hasLower && hasDigit && hasSpecial)) { - return "密码需包含大写字母、小写字母、数字和特殊字符"; + if (!(hasLetter && hasDigit)) { + return "密码需同时包含字母和数字"; } return null; }