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; }