diff --git a/backend/src/main/java/io/metersphere/track/issue/AbstractIssuePlatform.java b/backend/src/main/java/io/metersphere/track/issue/AbstractIssuePlatform.java index c0ab911d95..f3923c13a5 100644 --- a/backend/src/main/java/io/metersphere/track/issue/AbstractIssuePlatform.java +++ b/backend/src/main/java/io/metersphere/track/issue/AbstractIssuePlatform.java @@ -264,6 +264,19 @@ public abstract class AbstractIssuePlatform implements IssuesPlatform { return input; } + protected String getImages(String input) { + String result = ""; + String regex = "(\\!\\[.*?\\]\\((.*?)\\))"; + if (StringUtils.isBlank(input)) { + return result; + } + Matcher matcher = Pattern.compile(regex).matcher(input); + while (matcher.find()) { + result += matcher.group(); + } + return result; + } + protected String htmlImg2MsImg(String input) { // -> ![中心主题.png](/resource/md/get/a0b19136_中心主题.png) String regex = "()"; diff --git a/backend/src/main/java/io/metersphere/track/issue/JiraPlatform.java b/backend/src/main/java/io/metersphere/track/issue/JiraPlatform.java index d81f034e59..fc23e2a6d7 100644 --- a/backend/src/main/java/io/metersphere/track/issue/JiraPlatform.java +++ b/backend/src/main/java/io/metersphere/track/issue/JiraPlatform.java @@ -309,8 +309,12 @@ public class JiraPlatform extends AbstractIssuePlatform { issues.forEach(item -> { setConfig(); try { + IssuesWithBLOBs issuesWithBLOBs = issuesMapper.selectByPrimaryKey(item.getId()); parseIssue(item, jiraClientV2.getIssues(item.getId())); - item.setDescription(htmlDesc2MsDesc(item.getDescription())); + String desc = htmlDesc2MsDesc(item.getDescription()); + // 保留之前上传的图片 + String images = getImages(issuesWithBLOBs.getDescription()); + item.setDescription(desc + "\n" + images); issuesMapper.updateByPrimaryKeySelective(item); } catch (HttpClientErrorException e) { if (e.getRawStatusCode() == 404) {