feat(用户身份状态管理): 成员移出组织/项目,原指派给这个成员的工作项/其他该怎么显示

设置Gitlink返回Issue中用户的状态

Signed-off-by: OTTO <731554297@qq.com>
This commit is contained in:
OTTO 2024-10-08 10:17:24 +08:00
parent f747001b5e
commit ffb582c0a1
1 changed files with 34 additions and 23 deletions

View File

@ -68,38 +68,19 @@ public class PmsProjectIssuesService {
JSONObject issueSearch = new JSONObject();
convertObjectToJSONObject(pmsProjectIssuesSearchVo, issueSearch, null);
try {
return setProjectIssueUserState(gitLinkRequestHelper.doGet(PmsGitLinkRequestUrl.GET_ISSUE_LIST(issueSearch)));
return setProjectIssueListUserState(gitLinkRequestHelper.doGet(PmsGitLinkRequestUrl.GET_ISSUE_LIST(issueSearch)));
} catch (URISyntaxException e) {
throw new RuntimeException(e);
}
}
private JSONObject setProjectIssueUserState(JSONObject issueListResult) {
private JSONObject setProjectIssueListUserState(JSONObject issueListResult) {
HashMap<Long, String> gitlinkUserNickNameMap = new HashMap<>();
if (issueListResult.containsKey("issues")) {
JSONArray issues = issueListResult.getJSONArray("issues");
for (int i = 0; i < issues.size(); i++) {
JSONObject issue = issues.getJSONObject(i);
if (issue.containsKey("assigners")) {
JSONArray assigners = issue.getJSONArray("assigners");
for (int j = 0; j < assigners.size(); j++) {
JSONObject assigner = assigners.getJSONObject(j);
if (assigner.containsKey("id")) {
Long gitlinkUserId = assigner.getLong("id");
String nickName;
if (gitlinkUserNickNameMap.containsKey(gitlinkUserId)) {
nickName = gitlinkUserNickNameMap.get(gitlinkUserId);
} else {
SimpleSysUser simpleSysUser = pmsCommonService.getSimpleSysUserByGitlinkUserId(gitlinkUserId);
nickName = simpleSysUser.getNickName();
gitlinkUserNickNameMap.put(gitlinkUserId, nickName);
}
assigner.put("name", nickName);
}
assigners.set(j, assigner);
}
issue.put("assigners", assigners);
}
setIssueAssignersState(issue, gitlinkUserNickNameMap);
issues.set(i, issue);
}
issueListResult.put("issues", issues);
@ -141,7 +122,7 @@ public class PmsProjectIssuesService {
public JSONObject selectPmsProjectIssueById(Long id, Long pmProjectId) {
PmsProject pmsProject = pmsProjectService.selectAndCheckPmsProjectById(pmProjectId);
try {
JSONObject result = gitLinkRequestHelper.doGet(PmsGitLinkRequestUrl.GET_ISSUE(id, pmProjectId));
JSONObject result = setProjectIssueUserState(gitLinkRequestHelper.doGet(PmsGitLinkRequestUrl.GET_ISSUE(id, pmProjectId)));
result.put("pm_project_name", pmsProject.getProjectName());
return result;
} catch (URISyntaxException e) {
@ -149,6 +130,36 @@ public class PmsProjectIssuesService {
}
}
private JSONObject setProjectIssueUserState(JSONObject issueResult) {
HashMap<Long, String> gitlinkUserNickNameMap = new HashMap<>();
setIssueAssignersState(issueResult, gitlinkUserNickNameMap);
return issueResult;
}
private void setIssueAssignersState(JSONObject issueResult, HashMap<Long, String> gitlinkUserNickNameMap) {
if (issueResult.containsKey("assigners")) {
JSONArray assigners = issueResult.getJSONArray("assigners");
for (int j = 0; j < assigners.size(); j++) {
JSONObject assigner = assigners.getJSONObject(j);
if (assigner.containsKey("id")) {
Long gitlinkUserId = assigner.getLong("id");
String nickName;
if (gitlinkUserNickNameMap.containsKey(gitlinkUserId)) {
nickName = gitlinkUserNickNameMap.get(gitlinkUserId);
} else {
SimpleSysUser simpleSysUser = pmsCommonService.getSimpleSysUserByGitlinkUserId(gitlinkUserId);
nickName = simpleSysUser.getNickName();
gitlinkUserNickNameMap.put(gitlinkUserId, nickName);
}
assigner.put("name", nickName);
}
assigners.set(j, assigner);
}
issueResult.put("assigners", assigners);
}
}
public JSONObject deletePmsProjectIssueByIds(Long[] ids, Long pmProjectId) {
// 删除缺陷与测试单关联关系
pmsProjectTestsheetIssuesService.deletePmsProjectTestsheetIssuesByIssueIds(ids);