feat(用户身份状态管理): 成员移出组织/项目,原指派给这个成员的工作项/其他该怎么显示
设置Gitlink返回Issue中用户的状态(使用HashMap作为缓存,减少重复请求)
This commit is contained in:
parent
f3a28c8aae
commit
b869c1fa43
|
|
@ -6,6 +6,7 @@ import com.microservices.common.core.exception.ServiceException;
|
|||
import com.microservices.common.core.utils.DateUtils;
|
||||
import com.microservices.common.httpClient.util.GitLinkRequestHelper;
|
||||
import com.microservices.common.security.utils.SecurityUtils;
|
||||
import com.microservices.pms.common.service.IPmsCommonService;
|
||||
import com.microservices.pms.enterprise.domain.PmsEnterprise;
|
||||
import com.microservices.pms.enterprise.service.IPmsEnterpriseService;
|
||||
import com.microservices.pms.project.domain.PmsProject;
|
||||
|
|
@ -14,6 +15,7 @@ import com.microservices.pms.project.domain.vo.*;
|
|||
import com.microservices.pms.utils.PmsConstants;
|
||||
import com.microservices.pms.utils.PmsGitLinkRequestUrl;
|
||||
import com.microservices.pms.utils.PmsUtils;
|
||||
import com.microservices.system.api.domain.SimpleSysUser;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
|
|
@ -57,18 +59,54 @@ public class PmsProjectIssuesService {
|
|||
@Autowired
|
||||
private IPmsEnterpriseService pmsEnterpriseService;
|
||||
|
||||
@Autowired
|
||||
private IPmsCommonService pmsCommonService;
|
||||
|
||||
|
||||
public JSONObject selectPmsProjectIssuesList(PmsProjectIssuesSearchVo pmsProjectIssuesSearchVo) {
|
||||
pmsProjectService.selectAndCheckPmsProjectById(pmsProjectIssuesSearchVo.getPmProjectId());
|
||||
JSONObject issueSearch = new JSONObject();
|
||||
convertObjectToJSONObject(pmsProjectIssuesSearchVo, issueSearch, null);
|
||||
try {
|
||||
return gitLinkRequestHelper.doGet(PmsGitLinkRequestUrl.GET_ISSUE_LIST(issueSearch));
|
||||
return setProjectIssueUserState(gitLinkRequestHelper.doGet(PmsGitLinkRequestUrl.GET_ISSUE_LIST(issueSearch)));
|
||||
} catch (URISyntaxException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private JSONObject setProjectIssueUserState(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);
|
||||
}
|
||||
issues.set(i, issue);
|
||||
}
|
||||
issueListResult.put("issues", issues);
|
||||
}
|
||||
return issueListResult;
|
||||
}
|
||||
|
||||
public JSONObject insertPmsProjectIssues(PmsProjectIssuesInputVo pmsProjectIssuesInputVo) {
|
||||
pmsProjectService.selectAndCheckPmsProjectById(pmsProjectIssuesInputVo.getPmProjectId());
|
||||
JSONObject issueInput = convertPmsProjectIssuesInputVoToIssueInputJSON(pmsProjectIssuesInputVo);
|
||||
|
|
@ -235,8 +273,8 @@ public class PmsProjectIssuesService {
|
|||
convertObjectToJSONObject(pmsProjectIssueJournalAddVo, journalsJson, null);
|
||||
return gitLinkRequestHelper.doPost(
|
||||
PmsGitLinkRequestUrl.ADD_ISSUE_JOURNAL(issueId,
|
||||
pmsProjectIssueJournalInputVo.getPmProjectId(),
|
||||
pmsProjectIssueJournalInputVo.getPmProjectRepositoryId()),
|
||||
pmsProjectIssueJournalInputVo.getPmProjectId(),
|
||||
pmsProjectIssueJournalInputVo.getPmProjectRepositoryId()),
|
||||
journalsJson
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue