From b8e1b1b5ec521423f0fafb6bfb17a5cfe1a3fe75 Mon Sep 17 00:00:00 2001 From: CaptainB Date: Wed, 1 Jun 2022 20:28:18 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=94=A8=E6=88=B7=E4=BF=AE=E6=94=B9last?= =?UTF-8?q?=5Fworkspace=5Fid=E4=B9=8B=E5=90=8E=E6=89=A7=E8=A1=8C=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E8=A2=AB=E8=A6=86=E7=9B=96=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/metersphere/service/UserService.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/backend/src/main/java/io/metersphere/service/UserService.java b/backend/src/main/java/io/metersphere/service/UserService.java index 179cbb51ec..925718e6bd 100644 --- a/backend/src/main/java/io/metersphere/service/UserService.java +++ b/backend/src/main/java/io/metersphere/service/UserService.java @@ -395,9 +395,13 @@ public class UserService { User userFromDB = userMapper.selectByPrimaryKey(user.getId()); // last workspace id 变了 if (user.getLastWorkspaceId() != null && !StringUtils.equals(user.getLastWorkspaceId(), userFromDB.getLastWorkspaceId())) { - List projects = getProjectListByWsAndUserId(user.getLastWorkspaceId()); + List projects = getProjectListByWsAndUserId(user.getId(), user.getLastWorkspaceId()); if (projects.size() > 0) { - user.setLastProjectId(projects.get(0).getId()); + // 如果传入的 last_project_id 是 last_workspace_id 下面的 + boolean present = projects.stream().anyMatch(p -> StringUtils.equals(p.getId(), user.getLastProjectId())); + if (!present) { + user.setLastProjectId(projects.get(0).getId()); + } } else { user.setLastProjectId(""); } @@ -417,7 +421,7 @@ public class UserService { if (StringUtils.equals("workspace", sign)) { user.setLastWorkspaceId(sourceId); - List projects = getProjectListByWsAndUserId(sourceId); + List projects = getProjectListByWsAndUserId(sessionUser.getId(), sourceId); if (projects.size() > 0) { user.setLastProjectId(projects.get(0).getId()); } else { @@ -430,14 +434,13 @@ public class UserService { userMapper.updateByPrimaryKeySelective(newUser); } - private List getProjectListByWsAndUserId(String workspaceId) { - String useId = SessionUtils.getUser().getId(); + private List getProjectListByWsAndUserId(String userId, String workspaceId) { ProjectExample projectExample = new ProjectExample(); projectExample.createCriteria().andWorkspaceIdEqualTo(workspaceId); List projects = projectMapper.selectByExample(projectExample); UserGroupExample userGroupExample = new UserGroupExample(); - userGroupExample.createCriteria().andUserIdEqualTo(useId); + userGroupExample.createCriteria().andUserIdEqualTo(userId); List userGroups = userGroupMapper.selectByExample(userGroupExample); List projectList = new ArrayList<>(); userGroups.forEach(userGroup -> projects.forEach(project -> {