From b869c1fa43e3415b5dd040d157c87178af2defc8 Mon Sep 17 00:00:00 2001 From: OTTO <731554297@qq.com> Date: Mon, 30 Sep 2024 09:06:57 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E7=94=A8=E6=88=B7=E8=BA=AB=E4=BB=BD?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=AE=A1=E7=90=86):=20=E6=88=90=E5=91=98?= =?UTF-8?q?=E7=A7=BB=E5=87=BA=E7=BB=84=E7=BB=87/=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=EF=BC=8C=E5=8E=9F=E6=8C=87=E6=B4=BE=E7=BB=99=E8=BF=99=E4=B8=AA?= =?UTF-8?q?=E6=88=90=E5=91=98=E7=9A=84=E5=B7=A5=E4=BD=9C=E9=A1=B9/?= =?UTF-8?q?=E5=85=B6=E4=BB=96=E8=AF=A5=E6=80=8E=E4=B9=88=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 设置Gitlink返回Issue中用户的状态(使用HashMap作为缓存,减少重复请求) --- .../service/PmsProjectIssuesService.java | 44 +++++++++++++++++-- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/PmsProjectIssuesService.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/PmsProjectIssuesService.java index fdf5f76a5..1fbad3887 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/PmsProjectIssuesService.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/project/service/PmsProjectIssuesService.java @@ -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 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 ); }