From ca75a49cfe80fd6f5e1f82042836bf31f4c5b789 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Wed, 28 Aug 2024 12:10:39 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D=EF=BC=9A?= =?UTF-8?q?=E5=85=81=E8=AE=B8=E7=94=A8=E6=88=B7=E4=BF=AE=E6=94=B9=E8=87=AA?= =?UTF-8?q?=E8=BA=AB=E4=BF=A1=E6=81=AF=EF=BC=8C=E4=BD=86=E6=98=AF=E4=B8=8D?= =?UTF-8?q?=E5=85=81=E8=AE=B8=E4=BF=AE=E6=94=B9=E8=87=AA=E8=BA=AB=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E4=B8=BA=E7=A6=81=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imes/module/system/enums/ErrorCodeConstants.java | 6 ++++-- .../system/service/user/AdminUserServiceImpl.java | 11 +++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java index 90239af9b..910f015b4 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java @@ -45,8 +45,7 @@ public interface ErrorCodeConstants { ErrorCode USER_PASSWORD_FAILED = new ErrorCode(1_002_003_005, "用户密码校验失败"); ErrorCode USER_IS_DISABLE = new ErrorCode(1_002_003_006, "名字为【{}】的用户已被禁用"); ErrorCode USER_COUNT_MAX = new ErrorCode(1_002_003_008, "创建用户失败,原因:超过组织最大组织配额({})!"); - ErrorCode USER_ME_ERROR = new ErrorCode(1_002_003_009, "不可操作用户自身"); - ErrorCode USERNAME_MULTIPLE_ERROR = new ErrorCode(1_002_003_010,"存在【{}】重复用户,请联系系统管理员"); + ErrorCode USER_ME_ERROR = new ErrorCode(1_002_003_009, "不允许操作用户自身"); ErrorCode THE_PASSWORD_LENGTH_MUST_BE_AT_LEAST_6_CHARACTERS = new ErrorCode(1_002_003_010, "密码长度必须至少为6个字符"); @@ -56,6 +55,9 @@ public interface ErrorCodeConstants { ErrorCode PASSWORDS_CAN_ONLY_CONTAIN_LETTERS_AND_NUMBERS = new ErrorCode(1_002_003_013, "密码只能包含字母和数字"); ErrorCode INSUFFICIENT_PERMISSIONS = new ErrorCode(1_002_003_014, "当前用户权限不足,无法修改开料状态"); + ErrorCode USERNAME_MULTIPLE_ERROR = new ErrorCode(1_002_003_015,"存在【{}】重复用户,请联系系统管理员"); + ErrorCode USER_OPERATE_SELF_STATUS_ERROR = new ErrorCode(1_002_003_016, "不允许操作用户自身状态"); + // ========== 部门模块 1-002-004-000 ========== ErrorCode DEPT_NAME_DUPLICATE = new ErrorCode(1_002_004_000, "已经存在该名字的部门"); diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserServiceImpl.java index e49ea3429..e432885c1 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserServiceImpl.java @@ -71,6 +71,7 @@ import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.e import static com.cf.imes.framework.common.util.collection.CollectionUtils.convertList; import static com.cf.imes.framework.common.util.collection.CollectionUtils.convertSet; import static com.cf.imes.module.system.enums.ErrorCodeConstants.USER_ME_ERROR; +import static com.cf.imes.module.system.enums.ErrorCodeConstants.USER_OPERATE_SELF_STATUS_ERROR; /** * 后台用户 Service 实现类 @@ -156,8 +157,8 @@ public class AdminUserServiceImpl implements AdminUserService { @Transactional(rollbackFor = Exception.class) public void updateUser(UserSaveReqVO updateReqVO) { Long organId = updateReqVO.getOrganId() == null ? OrganContextHolder.getOrganId(): updateReqVO.getOrganId(); - // 不允许自身操作 - checkCurrentWhenOperate(updateReqVO.getId()); + // 不允许关闭自身状态 + checkCurrentWhenOperateStatus(updateReqVO.getId(), updateReqVO.getStatus()); // 校验正确性 validateUserForCreateOrUpdate(updateReqVO.getId(), updateReqVO.getUsername(), updateReqVO.getEmail(), updateReqVO.getDeptId(), updateReqVO.getPostIds(), null, organId); @@ -673,6 +674,12 @@ public class AdminUserServiceImpl implements AdminUserService { } } + private void checkCurrentWhenOperateStatus(Long userId, Integer status) { + if (ObjectUtil.equal(userId, SecurityFrameworkUtils.getLoginUserId()) && Objects.equals(CommonStatusEnum.DISABLE.getStatus(), status)) { + throw exception(USER_OPERATE_SELF_STATUS_ERROR); + } + } + @Override public Map userTotal() { Map map = new HashMap<>();