From be45a0700ba19abc14ee51fc68181d9cd21b671b Mon Sep 17 00:00:00 2001 From: s2042968 Date: Tue, 22 Apr 2025 16:31:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../software/manage/mapper/RoleMapper.java | 2 +- .../software/manage/pojo/models/Role.java | 1 - .../manage/pojo/models/RolePermission.java | 1 - .../software/manage/pojo/models/UserRole.java | 1 - .../manage/pojo/other/SingleUserResponse.java | 4 ++-- .../manage/pojo/req/UserBindRoleDTO.java | 1 + .../manage/pojo/req/UserModiRequest.java | 4 +++- .../serviceimpl/PermissionServiceImpl.java | 7 +++++-- .../service/serviceimpl/RoleServiceImpl.java | 12 ++++++------ .../service/serviceimpl/UserServiceImpl.java | 16 +++++++++++++--- .../src/main/resources/sqlmapper/UserMapper.xml | 2 +- 11 files changed, 32 insertions(+), 19 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/RoleMapper.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/RoleMapper.java index 898dae2..c0df6a7 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/RoleMapper.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/RoleMapper.java @@ -34,7 +34,7 @@ public interface RoleMapper extends BaseMapper { "LEFT JOIN" + " ed_user_role ur ON r.id = ur.role_id " + "LEFT JOIN" + - " ed_users u ON ur.user_id = u.user_id " + + " ed_users u ON ur.user_id = u.id " + "WHERE " + " 1=1 " + "" + diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/Role.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/Role.java index d4d4320..bbed019 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/Role.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/Role.java @@ -16,7 +16,6 @@ import java.util.Date; @TableName("ed_role") // 指定表名 public class Role extends BaseModel { - @TableId(value = "id") private String id; /** diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/RolePermission.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/RolePermission.java index 7d60b03..bce59fa 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/RolePermission.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/RolePermission.java @@ -19,7 +19,6 @@ public class RolePermission extends BaseModel { /** * 主键id */ - @TableId(value = "id") private String id; /** diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/UserRole.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/UserRole.java index f390a50..095007c 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/UserRole.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/UserRole.java @@ -16,7 +16,6 @@ public class UserRole extends BaseModel{ /** * 主键ID */ - @TableField(value = "id") private String id; /** diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/SingleUserResponse.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/SingleUserResponse.java index 41aa98d..d3ec942 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/SingleUserResponse.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/SingleUserResponse.java @@ -17,8 +17,8 @@ public class SingleUserResponse { /** * 用户编码 */ - @JsonProperty("id") - private String userId; + @JsonProperty("userId") + private String id; /** * 用户姓名 diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/UserBindRoleDTO.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/UserBindRoleDTO.java index f8a9e49..3d310a0 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/UserBindRoleDTO.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/UserBindRoleDTO.java @@ -1,5 +1,6 @@ package com.electromagnetic.industry.software.manage.pojo.req; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.util.List; diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/UserModiRequest.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/UserModiRequest.java index 9c7458a..0f66c67 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/UserModiRequest.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/UserModiRequest.java @@ -1,6 +1,7 @@ package com.electromagnetic.industry.software.manage.pojo.req; import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.io.Serializable; @@ -14,7 +15,8 @@ public class UserModiRequest extends BaseRequest implements Serializable { /** * 用户Id */ - private String userId; + @JsonProperty("userId") + private String id; /** * 用户姓名 diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/PermissionServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/PermissionServiceImpl.java index aa370f5..36718dd 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/PermissionServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/PermissionServiceImpl.java @@ -110,7 +110,9 @@ public class PermissionServiceImpl implements PermissionService { */ private List getRoles(String userId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.select(UserRole::getRoleId).eq(UserRole::getUserId, userId); + queryWrapper.select(UserRole::getRoleId) + .eq(UserRole::getUserId, userId) + .eq(UserRole::getEffectFlag, EffectFlagEnum.EFFECT.code); return userRoleMapper.selectObjs(queryWrapper).stream().map(Object::toString).toList(); } @@ -239,7 +241,8 @@ public class PermissionServiceImpl implements PermissionService { @Override public boolean isPermitted(String permissionCode, String userId, String fileId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(UserRole::getUserId, userId); + queryWrapper.eq(UserRole::getUserId, userId) + .eq(UserRole::getEffectFlag, EffectFlagEnum.EFFECT.code); List roleIds = Optional.ofNullable(userRoleMapper.selectList(queryWrapper)) .orElse(Collections.emptyList()) .stream().map(UserRole::getRoleId).toList(); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/RoleServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/RoleServiceImpl.java index 62efa95..f9a25c2 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/RoleServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/RoleServiceImpl.java @@ -75,7 +75,7 @@ public class RoleServiceImpl extends ServiceImpl implements Ro // 创建权限 List data = roleDTO.getData(); - List list = flattenTree(data, roleDTO.getRoleId()); + List list = flattenTree(data, roleId); rolePermissionService.saveBatch(list); UserThreadLocal.setSuccessInfo("", roleId, StrFormatter.format("创建了角色 {} ", role.getRoleName())); @@ -127,10 +127,7 @@ public class RoleServiceImpl extends ServiceImpl implements Ro disableRolePermission(roleId); // 失效用户角色关联表 - - LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); - queryWrapper1.eq(UserRole::getRoleId, roleId); - userRoleService.remove(queryWrapper1); + disableUserRole(roleId); // 失效角色 LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); @@ -411,7 +408,10 @@ public class RoleServiceImpl extends ServiceImpl implements Ro * 失效角色用户关系 */ private void disableUserRole(String roleId) { - + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(UserRole::getRoleId, roleId) + .set(UserRole::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code); + userRoleService.update(updateWrapper); } } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java index 6cd4b55..0fcabe5 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java @@ -73,7 +73,7 @@ public class UserServiceImpl extends ServiceImpl implements Us UserLoginResponse userLoginResponse = new UserLoginResponse(); userLoginResponse.setToken(tokenStr); userLoginResponse.setUserId(user.getId()); - UserThreadLocal.setSuccessInfo("", user.getId(), StrFormatter.format("用户{}登陆", user.getUserName())); + UserThreadLocal.setSuccessInfo("", user.getId(), StrFormatter.format("用户 {} 登陆", user.getUserName())); return ElectromagneticResultUtil.success(userLoginResponse); } return ElectromagneticResultUtil.fail("500", "用户不存在/密码错误"); @@ -145,14 +145,15 @@ public class UserServiceImpl extends ServiceImpl implements Us @Override public ElectromagneticResult modifyUser(UserModiRequest userModiRequest) { Assert.notNull(userModiRequest, "用户修改请求参数不能为空"); - String userId = userModiRequest.getUserId(); + String userId = userModiRequest.getId(); Assert.notBlank(userId, "用户ID不能为空"); // 校验用户存在性 User existingUser = this.getById(userId); Assert.notNull(existingUser, StrFormatter.format("用户ID {} 不存在", userId)); - User user = UserMappers.INSTANCE.getUserModiRequestToModel(userModiRequest); + User user = new User(); + BeanUtils.copyProperties(userModiRequest, user); boolean success = this.updateById(user); UserThreadLocal.setSuccessInfo("", userModiRequest.getUserId(), StrFormatter.format("更新了用户 {} ", user.getUserName())); return ElectromagneticResultUtil.success(success); @@ -186,6 +187,7 @@ public class UserServiceImpl extends ServiceImpl implements Us boolean exists = lambdaQuery() .eq(User::getWorkNumber, workNumber) + .eq(User::getEffectFlag, EffectFlagEnum.EFFECT.code) .exists(); // 判断工号是否存在 // 新增 直接返回唯一性结果 @@ -246,6 +248,7 @@ public class UserServiceImpl extends ServiceImpl implements Us } @Override + @Transactional public ElectromagneticResult deleteUser(UserDeleteRequest request) { String userId = request.getUserId(); @@ -260,6 +263,13 @@ public class UserServiceImpl extends ServiceImpl implements Us .eq(User::getId, userId) .set(User::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code)); + // 2. 级联失效用户角色关系 + if (success) { + userRoleService.update(new LambdaUpdateWrapper() + .eq(UserRole::getUserId, userId) + .set(UserRole::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code)); + } + UserThreadLocal.setSuccessInfo("", "", StrFormatter.format("删除了用户 {} ", user.getUserName())); return ElectromagneticResultUtil.success(success); } diff --git a/electrmangnetic/src/main/resources/sqlmapper/UserMapper.xml b/electrmangnetic/src/main/resources/sqlmapper/UserMapper.xml index 3048642..09bc975 100644 --- a/electrmangnetic/src/main/resources/sqlmapper/UserMapper.xml +++ b/electrmangnetic/src/main/resources/sqlmapper/UserMapper.xml @@ -168,7 +168,7 @@