Commit 2cf2c60f by gdj

fix user delete

parent 001b2362
...@@ -84,7 +84,8 @@ public class UserOrgServiceImpl extends ServiceImpl<IUserOrgMapper, UserOrgEntit ...@@ -84,7 +84,8 @@ public class UserOrgServiceImpl extends ServiceImpl<IUserOrgMapper, UserOrgEntit
// entity.setUpdateTime(System.currentTimeMillis()); // entity.setUpdateTime(System.currentTimeMillis());
return updateById(entity); return updateById(entity);
} }
return false; // 已存在且启用状态 // return false; // 已存在且启用状态
throw new RuntimeException("user had join the org!");
} }
// 创建新关联 // 创建新关联
......
...@@ -421,9 +421,40 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem ...@@ -421,9 +421,40 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem
if (userEntity.getRoleType() == RoleTypeEnum.SYS_ADMIN.getVal()) { if (userEntity.getRoleType() == RoleTypeEnum.SYS_ADMIN.getVal()) {
aboveSysAdminRoleAndThrowError(); aboveSysAdminRoleAndThrowError();
} }
// if (userEntity.getUserType() == UserTypeEnum.WEB.getVal()) { int delete;
// throw new RuntimeException("Failed to delete admin"); if (aboveSysAdminRole()) {
// } // 超级管理员 直接删除用户
this.removeById(userEntity.getId());
// 删除相关用户组织表
LambdaQueryWrapper<UserOrgEntity> delUserOrgQueryWrapper = new LambdaQueryWrapper<>();
delUserOrgQueryWrapper.eq(UserOrgEntity::getUserId, userEntity.getUserId());
delUserOrgQueryWrapper.eq(UserOrgEntity::getWorkspaceId, userEntity.getWorkspaceId());
boolean userOrgDelRes = userOrgService.remove(delUserOrgQueryWrapper);
} else {
// 普通管理员 删除用户,只删用户当前组织联系,当唯一关联才删用户
// 查询 组织关系
LambdaQueryWrapper<UserOrgEntity> userOrgQueryWrapper = new LambdaQueryWrapper<>();
userOrgQueryWrapper.eq(UserOrgEntity::getUserId, userEntity.getUserId());
userOrgQueryWrapper.eq(UserOrgEntity::getWorkspaceId, userEntity.getWorkspaceId());
List<UserOrgEntity> userOrgEntities = userOrgService.list(userOrgQueryWrapper);
// 没有组织关联 直接删除
if (CollectionUtils.isEmpty(userOrgEntities)) {
delete = mapper.delete(queryWrapper);
}
// 判断是否 有其他组织关系
List<UserOrgEntity> curUserOrgList = userOrgEntities.stream().filter(x -> getOrgId().equals(x.getOrgId())).collect(Collectors.toList());
List<UserOrgEntity> otherUserOrgList = userOrgEntities.stream().filter(x -> !getOrgId().equals(x.getOrgId())).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(curUserOrgList)) {
UserOrgEntity userOrgEntity = curUserOrgList.get(0);
// if (userEntity.getUserType() == UserTypeEnum.WEB.getVal()) {
// throw new RuntimeException("Failed to delete admin");
// }
// 然后 假如是删除管理员 不能删除 项目管理员 // 然后 假如是删除管理员 不能删除 项目管理员
if (userEntity.getRoleType() == RoleTypeEnum.ORG_ADMIN.getVal()) { if (userEntity.getRoleType() == RoleTypeEnum.ORG_ADMIN.getVal()) {
throw new RuntimeException("can't delete workspace project admin"); throw new RuntimeException("can't delete workspace project admin");
...@@ -436,16 +467,19 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem ...@@ -436,16 +467,19 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem
throw new RuntimeException("can't delete workspace admin"); throw new RuntimeException("can't delete workspace admin");
} }
} }
int delete = mapper.delete(queryWrapper);
// 删除相关用户组织表 // 删除相关用户组织表
LambdaQueryWrapper<UserOrgEntity> userOrgQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<UserOrgEntity> delUserOrgQueryWrapper = new LambdaQueryWrapper<>();
userOrgQueryWrapper.eq(UserOrgEntity::getUserId, userEntity.getUserId()); delUserOrgQueryWrapper.eq(UserOrgEntity::getUserId, userEntity.getUserId());
userOrgQueryWrapper.eq(UserOrgEntity::getWorkspaceId, userEntity.getWorkspaceId()); delUserOrgQueryWrapper.eq(UserOrgEntity::getWorkspaceId, userEntity.getWorkspaceId());
boolean userOrgDelRes = userOrgService.remove(userOrgQueryWrapper); delUserOrgQueryWrapper.eq(UserOrgEntity::getOrgId, getOrgId());
boolean userOrgDelRes = userOrgService.remove(delUserOrgQueryWrapper);
return delete > 0; }
// 没有其他组织 则删除用户
if (CollectionUtils.isEmpty(otherUserOrgList)) {
delete = mapper.delete(queryWrapper);
}
}
return true;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment