refactor(项目设置): 添加项目成员选项过滤掉已经添加的成员
--bug=1027791 --user=陈建星 【项目设置】github#25583,项目管理-项目成员,可以添加重复多次添加同一个成员,建议加一个唯一性校验 https://www.tapd.cn/55049933/s/1397290
This commit is contained in:
parent
b241ceadab
commit
177016932e
|
@ -4,6 +4,7 @@ import io.metersphere.base.domain.User;
|
||||||
import io.metersphere.base.domain.UserGroup;
|
import io.metersphere.base.domain.UserGroup;
|
||||||
import io.metersphere.commons.constants.OperLogConstants;
|
import io.metersphere.commons.constants.OperLogConstants;
|
||||||
import io.metersphere.commons.constants.OperLogModule;
|
import io.metersphere.commons.constants.OperLogModule;
|
||||||
|
import io.metersphere.commons.constants.PermissionConstants;
|
||||||
import io.metersphere.commons.constants.UserGroupConstants;
|
import io.metersphere.commons.constants.UserGroupConstants;
|
||||||
import io.metersphere.commons.user.SessionUser;
|
import io.metersphere.commons.user.SessionUser;
|
||||||
import io.metersphere.commons.utils.SessionUtils;
|
import io.metersphere.commons.utils.SessionUtils;
|
||||||
|
@ -15,6 +16,7 @@ import io.metersphere.request.member.EditSeleniumServerRequest;
|
||||||
import io.metersphere.request.member.QueryMemberRequest;
|
import io.metersphere.request.member.QueryMemberRequest;
|
||||||
import io.metersphere.service.BaseUserService;
|
import io.metersphere.service.BaseUserService;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
@ -39,6 +41,11 @@ public class BaseUserController {
|
||||||
return baseUserService.getMemberList(request);
|
return baseUserService.getMemberList(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/add/project/member/option/{projectId}")
|
||||||
|
@RequiresPermissions(PermissionConstants.PROJECT_USER_READ)
|
||||||
|
public List<User> getAddProjectMemberOption(@PathVariable(value = "projectId") String projectId) {
|
||||||
|
return baseUserService.getAddProjectMemberOption(projectId);
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/switch/source/ws/{sourceId}")
|
@GetMapping("/switch/source/ws/{sourceId}")
|
||||||
public UserDTO switchWorkspace(@PathVariable(value = "sourceId") String sourceId) {
|
public UserDTO switchWorkspace(@PathVariable(value = "sourceId") String sourceId) {
|
||||||
|
|
|
@ -718,6 +718,19 @@ public class BaseUserService {
|
||||||
return baseUserGroupMapper.getMemberList(request);
|
return baseUserGroupMapper.getMemberList(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<User> getAddProjectMemberOption(String projectId) {
|
||||||
|
Project project = projectMapper.selectByPrimaryKey(projectId);
|
||||||
|
QueryMemberRequest request = new QueryMemberRequest();
|
||||||
|
request.setWorkspaceId(project.getWorkspaceId());
|
||||||
|
List<User> memberList = getMemberList(request);
|
||||||
|
request.setProjectId(projectId);
|
||||||
|
Set<String> projectUserIds = getProjectMemberList(request)
|
||||||
|
.stream().map(i -> i.getId())
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
return memberList.stream().filter(i -> !projectUserIds.contains(i.getId()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
public void createOssUser(User user) {
|
public void createOssUser(User user) {
|
||||||
user.setCreateTime(System.currentTimeMillis());
|
user.setCreateTime(System.currentTimeMillis());
|
||||||
user.setUpdateTime(System.currentTimeMillis());
|
user.setUpdateTime(System.currentTimeMillis());
|
||||||
|
|
|
@ -30,7 +30,7 @@ export default {
|
||||||
},
|
},
|
||||||
userList: [],
|
userList: [],
|
||||||
loading: false,
|
loading: false,
|
||||||
userResourceUrl: 'user/ws/current/member/list'
|
userResourceUrl: 'user/add/project/member/option/' + getCurrentProjectID()
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|
|
@ -166,7 +166,7 @@
|
||||||
:group-scope-id="workspaceId"
|
:group-scope-id="workspaceId"
|
||||||
ref="addMember"
|
ref="addMember"
|
||||||
:project-id="rowProjectId"
|
:project-id="rowProjectId"
|
||||||
:user-resource-url="'user/ws/current/member/list'"
|
:user-resource-url="'user/add/project/member/option/' + rowProjectId"
|
||||||
@submit="submitForm"/>
|
@submit="submitForm"/>
|
||||||
|
|
||||||
<ms-delete-confirm :title="$t('project.delete')" @delete="_handleDelete" ref="deleteConfirm"/>
|
<ms-delete-confirm :title="$t('project.delete')" @delete="_handleDelete" ref="deleteConfirm"/>
|
||||||
|
|
Loading…
Reference in New Issue