From cb6d7ae8cecd1d92da4b4868380dcf1ae8fcf627 Mon Sep 17 00:00:00 2001 From: shiziyuan9527 Date: Mon, 20 Feb 2023 16:44:07 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=B5=8B=E8=AF=95=E8=B7=9F=E8=B8=AA):=20?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E7=BC=BA=E9=99=B7=E6=97=B6=E6=B2=A1=E6=98=BE?= =?UTF-8?q?=E7=A4=BAtapd=E5=A4=84=E7=90=86=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --bug=1023054 --user=李玉号 【测试跟踪】缺陷管理,关联tapd平台,编辑缺陷时没显示tapd处理人 https://www.tapd.cn/55049933/s/1338472 --- .../controller/IssuesController.java | 5 +++++ .../io/metersphere/service/IssuesService.java | 17 +++++++++++++++++ test-track/frontend/src/api/issue.js | 4 ++++ .../src/business/issue/IssueEditDetail.vue | 10 +++++++++- 4 files changed, 35 insertions(+), 1 deletion(-) diff --git a/test-track/backend/src/main/java/io/metersphere/controller/IssuesController.java b/test-track/backend/src/main/java/io/metersphere/controller/IssuesController.java index ceb70d44f1..c13f8cdb72 100644 --- a/test-track/backend/src/main/java/io/metersphere/controller/IssuesController.java +++ b/test-track/backend/src/main/java/io/metersphere/controller/IssuesController.java @@ -151,6 +151,11 @@ public class IssuesController { return issuesService.getTapdProjectUsers(request); } + @GetMapping("/tapd/current_owner/{id}") + public List getTapdIssueCurrentOwner(@PathVariable String id) { + return issuesService.getTapdIssueCurrentOwner(id); + } + @GetMapping("/sync/{projectId}") public boolean syncThirdPartyIssues(@PathVariable String projectId) { return issuesService.syncThirdPartyIssues(projectId); diff --git a/test-track/backend/src/main/java/io/metersphere/service/IssuesService.java b/test-track/backend/src/main/java/io/metersphere/service/IssuesService.java index 35b75439bd..76f0e676e5 100644 --- a/test-track/backend/src/main/java/io/metersphere/service/IssuesService.java +++ b/test-track/backend/src/main/java/io/metersphere/service/IssuesService.java @@ -1900,4 +1900,21 @@ public class IssuesService { syncAllIssuesRequest.setHandleSyncFunc(issueSyncRequest.getHandleSyncFunc()); platform.syncAllIssues(syncAllIssuesRequest); } + + public List getTapdIssueCurrentOwner(String id) { + IssuesWithBLOBs issuesWithBLOBs = issuesMapper.selectByPrimaryKey(id); + if (issuesWithBLOBs == null) { + return null; + } + IssuesRequest issuesRequest = new IssuesRequest(); + Project project = baseProjectService.getProjectById(issuesWithBLOBs.getProjectId()); + issuesRequest.setWorkspaceId(project.getWorkspaceId()); + issuesRequest.setProjectId(issuesWithBLOBs.getProjectId()); + TapdPlatform tapdPlatform = (TapdPlatform) IssueFactory.createPlatform(IssuesManagePlatform.Tapd.name(), issuesRequest); + List tapdUsers = new ArrayList<>(); + if (tapdPlatform != null) { + tapdUsers = tapdPlatform.getTapdUsers(issuesWithBLOBs.getProjectId(), issuesWithBLOBs.getPlatformId()); + } + return tapdUsers; + } } diff --git a/test-track/frontend/src/api/issue.js b/test-track/frontend/src/api/issue.js index 18105c0121..bf1fba90ec 100644 --- a/test-track/frontend/src/api/issue.js +++ b/test-track/frontend/src/api/issue.js @@ -60,6 +60,10 @@ export function getTapdUser(param) { return post(BASE_URL + "tapd/user", param); } +export function getTapdCurrentOwner(id) { + return get(BASE_URL + "tapd/current_owner/" + id); +} + export function getDashboardIssues(page) { return post('issues/dashboard/list/' + page.currentPage + '/' + page.pageSize, page.condition) .then((response) => { diff --git a/test-track/frontend/src/business/issue/IssueEditDetail.vue b/test-track/frontend/src/business/issue/IssueEditDetail.vue index 24d55da178..67f04f3beb 100644 --- a/test-track/frontend/src/business/issue/IssueEditDetail.vue +++ b/test-track/frontend/src/business/issue/IssueEditDetail.vue @@ -207,7 +207,7 @@ import { saveFollow, getFollow, getComments, - getTapdUser, getPlatformTransitions, getPlatformFormOption + getTapdUser, getPlatformTransitions, getPlatformFormOption, getTapdCurrentOwner } from "@/api/issue"; import { uploadIssueAttachment, @@ -401,6 +401,13 @@ export default { }); }); }, + getTapdCurrentOwner() { + getTapdCurrentOwner(this.form.id).then(res => { + if (res && res.data && res.data[0]) { + this.form.tapdUsers = res.data[0].split(';'); + } + }) + }, getDataInfoAsync(data) { if (data && data.id) { getFollow(data.id).then((response) => { @@ -450,6 +457,7 @@ export default { } if (platform === 'Tapd') { this.hasTapdId = true; + this.getTapdCurrentOwner(); getTapdUser(data) .then((response) => { this.tapdUsers = response.data;