From 16b4102a722b3cb71170e047109d223b6cb12645 Mon Sep 17 00:00:00 2001 From: song-cc-rock Date: Mon, 2 Sep 2024 17:59:27 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E7=BC=BA=E9=99=B7=E7=AE=A1=E7=90=86):?= =?UTF-8?q?=20=E7=BC=BA=E9=99=B7=E7=AE=A1=E7=90=86=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bug/service/BugAttachmentLogService.java | 2 + .../bug/service/BugAttachmentService.java | 13 +++--- .../bug/service/BugCommentNoticeService.java | 4 ++ .../bug/service/BugExportService.java | 8 ++++ .../bug/service/BugHistoryService.java | 12 ++---- .../bug/service/BugRelateCaseLogService.java | 1 + .../bug/service/BugScheduleServiceImpl.java | 12 ++++++ .../metersphere/bug/service/BugService.java | 42 +++++++++---------- .../bug/service/BugStatusService.java | 5 +++ .../bug/service/BugSyncNoticeService.java | 4 ++ .../CleanupBugResourceServiceImpl.java | 13 ++++++ .../io/metersphere/bug/utils/ExportUtils.java | 4 +- .../system/service/UserToolService.java | 12 ++++++ 13 files changed, 94 insertions(+), 38 deletions(-) diff --git a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugAttachmentLogService.java b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugAttachmentLogService.java index 947d37e0f1..7136e8efe6 100644 --- a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugAttachmentLogService.java +++ b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugAttachmentLogService.java @@ -35,6 +35,7 @@ public class BugAttachmentLogService { * @param file 上传的文件 * @return 日志 */ + @SuppressWarnings("unused") public LogDTO uploadLog(BugUploadFileRequest request, MultipartFile file) { Bug bug = bugMapper.selectByPrimaryKey(request.getBugId()); List allBugFiles = bugAttachmentService.getAllBugFiles(request.getBugId()); @@ -52,6 +53,7 @@ public class BugAttachmentLogService { * @param request 请求参数 * @return 日志 */ + @SuppressWarnings("unused") public LogDTO deleteLog(BugDeleteFileRequest request) { Bug bug = bugMapper.selectByPrimaryKey(request.getBugId()); List allBugFiles = bugAttachmentService.getAllBugFiles(request.getBugId()); diff --git a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugAttachmentService.java b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugAttachmentService.java index 19827e44c7..6a8addd596 100644 --- a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugAttachmentService.java +++ b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugAttachmentService.java @@ -1,5 +1,6 @@ package io.metersphere.bug.service; +import com.google.common.collect.Maps; import io.metersphere.bug.domain.Bug; import io.metersphere.bug.domain.BugLocalAttachment; import io.metersphere.bug.domain.BugLocalAttachmentExample; @@ -38,11 +39,10 @@ import io.metersphere.sdk.util.FileAssociationSourceUtil; import io.metersphere.sdk.util.LogUtils; import io.metersphere.sdk.util.MsFileUtils; import io.metersphere.sdk.util.Translator; -import io.metersphere.system.dto.sdk.OptionDTO; import io.metersphere.system.log.constants.OperationLogModule; -import io.metersphere.system.mapper.BaseUserMapper; import io.metersphere.system.service.CommonFileService; import io.metersphere.system.service.FileService; +import io.metersphere.system.service.UserToolService; import io.metersphere.system.uid.IDGenerator; import jakarta.annotation.Resource; import org.apache.commons.io.FileUtils; @@ -72,8 +72,6 @@ public class BugAttachmentService { @Resource private FileService fileService; @Resource - private BaseUserMapper baseUserMapper; - @Resource private FileMetadataMapper fileMetadataMapper; @Resource private BugPlatformService bugPlatformService; @@ -87,6 +85,8 @@ public class BugAttachmentService { private BugLocalAttachmentMapper bugLocalAttachmentMapper; @Resource private CommonFileService commonFileService; + @Resource + private UserToolService userToolService; /** * 查询缺陷的附件集合 @@ -125,8 +125,7 @@ public class BugAttachmentService { return bugFiles; } List userIds = bugFiles.stream().map(BugFileDTO::getCreateUser).distinct().toList(); - List userOptions = baseUserMapper.selectUserOptionByIds(userIds); - Map userMap = userOptions.stream().collect(Collectors.toMap(OptionDTO::getId, OptionDTO::getName)); + Map userMap = userToolService.getUserMapByIds(userIds); return bugFiles.stream().peek(file -> file.setCreateUserName(userMap.get(file.getCreateUser()))).toList(); } @@ -621,7 +620,7 @@ public class BugAttachmentService { FileRepository defaultRepository = FileCenter.getDefaultRepository(); String systemTempDir = DefaultRepositoryDir.getSystemTempDir(); // 添加文件与功能用例的关联关系 - Map addFileMap = new HashMap<>(); + Map addFileMap = Maps.newHashMapWithExpectedSize(8); LogUtils.info("开始上传富文本里的附件"); List localAttachments = fileIds.stream().map(fileId -> { BugLocalAttachment localAttachment = new BugLocalAttachment(); diff --git a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugCommentNoticeService.java b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugCommentNoticeService.java index 237cb27090..f51026ec11 100644 --- a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugCommentNoticeService.java +++ b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugCommentNoticeService.java @@ -79,6 +79,10 @@ public class BugCommentNoticeService { noticeSendService.send(NoticeConstants.TaskType.BUG_TASK, noticeModel); } + /** + * 设置本地语言 + * @param language 语言 + */ private static void setLanguage(String language) { Locale locale = Locale.SIMPLIFIED_CHINESE; if (StringUtils.containsIgnoreCase(language, "US")) { diff --git a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugExportService.java b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugExportService.java index e29c094584..1bf5463ad4 100644 --- a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugExportService.java +++ b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugExportService.java @@ -61,6 +61,14 @@ public class BugExportService { return filesFolder; } + /** + * 生成excel文件 + * @param list 列表数据 + * @param xlsxFileName excel文件名 + * @param excelPath excel文件路径 + * @param headerModel excel导出表头 + * @throws Exception 异常信息 + */ private void generateExcelFile(List list, String xlsxFileName, String excelPath, BugExportHeaderModel headerModel) throws Exception { if (CollectionUtils.isNotEmpty(list)) { // 准备数据 {评论, 内容, 关联用例数} diff --git a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugHistoryService.java b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugHistoryService.java index d25acb87fc..1ed8e27f21 100644 --- a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugHistoryService.java +++ b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugHistoryService.java @@ -4,8 +4,6 @@ import io.metersphere.sdk.util.BeanUtils; import io.metersphere.sdk.util.Translator; import io.metersphere.system.domain.OperationHistory; import io.metersphere.system.domain.OperationHistoryExample; -import io.metersphere.system.domain.User; -import io.metersphere.system.domain.UserExample; import io.metersphere.system.dto.OperationHistoryDTO; import io.metersphere.system.dto.request.OperationHistoryRequest; import io.metersphere.system.log.constants.OperationLogModule; @@ -13,6 +11,7 @@ import io.metersphere.system.log.constants.OperationLogType; import io.metersphere.system.mapper.BaseOperationHistoryMapper; import io.metersphere.system.mapper.OperationHistoryMapper; import io.metersphere.system.mapper.UserMapper; +import io.metersphere.system.service.UserToolService; import jakarta.annotation.Resource; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -21,7 +20,6 @@ import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; @Service @Transactional(rollbackFor = Exception.class) @@ -29,7 +27,8 @@ public class BugHistoryService { @Resource private UserMapper userMapper; - + @Resource + private UserToolService userToolService; @Resource private OperationHistoryMapper operationHistoryMapper; @Resource @@ -49,10 +48,7 @@ public class BugHistoryService { return List.of(); } List userIds = history.stream().map(OperationHistory::getCreateUser).toList(); - UserExample userExample = new UserExample(); - userExample.createCriteria().andIdIn(userIds); - List users = userMapper.selectByExample(userExample); - Map userMap = users.stream().collect(Collectors.toMap(User::getId, User::getName)); + Map userMap = userToolService.getUserMapByIds(userIds); Long latestVersionId = baseOperationHistoryMapper.selectLatestIdByOperationId(request.getSourceId()); return history.stream().map(h -> { OperationHistoryDTO dto = new OperationHistoryDTO(); diff --git a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugRelateCaseLogService.java b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugRelateCaseLogService.java index 7c44f0f26e..1b7856c4d6 100644 --- a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugRelateCaseLogService.java +++ b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugRelateCaseLogService.java @@ -28,6 +28,7 @@ public class BugRelateCaseLogService { * @param id 取消关联的引用ID * @return 日志 */ + @SuppressWarnings("unused") public LogDTO getRelateLog(String id) { BugRelationCase bugRelationCase = bugRelationCaseMapper.selectByPrimaryKey(id); BugRelateCaseDTO relateCase = extBugRelateCaseMapper.getRelateCase(bugRelationCase.getCaseId(), bugRelationCase.getCaseType()); diff --git a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugScheduleServiceImpl.java b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugScheduleServiceImpl.java index bcc3ce7b31..cc380256c0 100644 --- a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugScheduleServiceImpl.java +++ b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugScheduleServiceImpl.java @@ -24,6 +24,12 @@ public class BugScheduleServiceImpl implements BaseBugScheduleService { @Resource private ScheduleService scheduleService; + /** + * 更新缺陷同步定时任务配置 + * @param bugSyncConfigs 配置 + * @param projectId 项目ID + * @param currentUser 当前用户 + */ @Override public void updateBugSyncScheduleConfig(List bugSyncConfigs, String projectId, String currentUser) { List syncCron = bugSyncConfigs.stream().filter(config -> config.getType().equals(ProjectApplicationType.BUG.BUG_SYNC.name() + "_" + ProjectApplicationType.BUG_SYNC_CONFIG.CRON_EXPRESSION.name())).toList(); @@ -56,6 +62,12 @@ public class BugScheduleServiceImpl implements BaseBugScheduleService { } } + /** + * 启用或禁用缺陷同步定时任务 + * @param projectId 项目ID + * @param currentUser 当前用户 + * @param enable 开启或禁用 + */ @Override public void enableOrNotBugSyncSchedule(String projectId, String currentUser, Boolean enable) { Schedule schedule = scheduleService.getScheduleByResource(projectId, BugSyncJob.class.getName()); diff --git a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugService.java b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugService.java index af66c70f8b..a8e8c79cf7 100644 --- a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugService.java +++ b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugService.java @@ -2084,30 +2084,30 @@ public class BugService { List platformCustomFields = platformBug.getCustomFieldList(); // 过滤出需要同步的自定义字段{默认模板时, 需要同步所有字段; 非默认模板时, 需要同步模板中映射的字段} final Map needSyncApiFieldFilterMap = needSyncApiFieldMap; - if (platformBug.getPlatformDefaultTemplate()) { + List bugCustomFieldDTOList; + if (platformBug.getPlatformDefaultTemplate()) { // 平台默认模板创建的缺陷 - List bugCustomFieldDTOList = platformCustomFields.stream() - .map(platformField -> { - BugCustomFieldDTO bugCustomFieldDTO = new BugCustomFieldDTO(); - bugCustomFieldDTO.setId(platformField.getId()); - bugCustomFieldDTO.setValue(platformField.getValue() == null ? null : platformField.getValue().toString()); - return bugCustomFieldDTO; - }).collect(Collectors.toList()); - customEditRequest.setCustomFields(bugCustomFieldDTOList); - } else { + bugCustomFieldDTOList = platformCustomFields.stream() + .map(platformField -> { + BugCustomFieldDTO bugCustomFieldDTO = new BugCustomFieldDTO(); + bugCustomFieldDTO.setId(platformField.getId()); + bugCustomFieldDTO.setValue(platformField.getValue() == null ? null : platformField.getValue().toString()); + return bugCustomFieldDTO; + }).collect(Collectors.toList()); + } else { // 非平台默认模板创建的缺陷(使用模板API映射字段) - List bugCustomFieldDTOList = platformCustomFields.stream() - .filter(field -> needSyncApiFieldFilterMap.containsKey(field.getId())) - .map(platformField -> { - BugCustomFieldDTO bugCustomFieldDTO = new BugCustomFieldDTO(); - bugCustomFieldDTO.setId(needSyncApiFieldFilterMap.get(platformField.getId())); - bugCustomFieldDTO.setValue(platformField.getValue() == null ? null : platformField.getValue().toString()); - return bugCustomFieldDTO; - }).collect(Collectors.toList()); - customEditRequest.setCustomFields(bugCustomFieldDTOList); - } + bugCustomFieldDTOList = platformCustomFields.stream() + .filter(field -> needSyncApiFieldFilterMap.containsKey(field.getId())) + .map(platformField -> { + BugCustomFieldDTO bugCustomFieldDTO = new BugCustomFieldDTO(); + bugCustomFieldDTO.setId(needSyncApiFieldFilterMap.get(platformField.getId())); + bugCustomFieldDTO.setValue(platformField.getValue() == null ? null : platformField.getValue().toString()); + return bugCustomFieldDTO; + }).collect(Collectors.toList()); + } + customEditRequest.setCustomFields(bugCustomFieldDTOList); - // 保存缺陷 + // 保存缺陷 if (originalBug == null) { // 新增 batchBugMapper.insertSelective(bug); diff --git a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugStatusService.java b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugStatusService.java index 73a04e91be..4490d90e20 100644 --- a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugStatusService.java +++ b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugStatusService.java @@ -107,6 +107,11 @@ public class BugStatusService { return baseStatusFlowSettingService.getAllStatusOption(projectId, TemplateScene.BUG.name()); } + /** + * 获取当前项目最新的Jira平台缺陷Key (表头状态筛选需要) + * @param projectId 项目ID + * @return JiraKey + */ public String getJiraPlatformBugKeyLatest(String projectId) { BugExample example = new BugExample(); example.createCriteria().andPlatformEqualTo(BugPlatform.JIRA.name()).andProjectIdEqualTo(projectId); diff --git a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugSyncNoticeService.java b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugSyncNoticeService.java index 98555cdba2..658fb5fca6 100644 --- a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugSyncNoticeService.java +++ b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/BugSyncNoticeService.java @@ -87,6 +87,10 @@ public class BugSyncNoticeService { inSiteNoticeSender.sendAnnouncement(messageDetail, noticeModel, MessageTemplateUtils.getContent(context, paramMap), subject); } + /** + * 设置本地语言 + * @param language 语言 + */ private static void setLanguage(String language) { Locale locale = Locale.SIMPLIFIED_CHINESE; if (StringUtils.containsIgnoreCase(language, "US")) { diff --git a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/CleanupBugResourceServiceImpl.java b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/CleanupBugResourceServiceImpl.java index a54604eecb..958f0a7770 100644 --- a/backend/services/bug-management/src/main/java/io/metersphere/bug/service/CleanupBugResourceServiceImpl.java +++ b/backend/services/bug-management/src/main/java/io/metersphere/bug/service/CleanupBugResourceServiceImpl.java @@ -23,6 +23,10 @@ public class CleanupBugResourceServiceImpl implements CleanupProjectResourceServ @Resource private BugCommonService bugCommonService; + /** + * 清理当前项目相关缺陷资源 + * @param projectId 项目ID + */ @Async @Override public void deleteResources(String projectId) { @@ -36,6 +40,11 @@ public class CleanupBugResourceServiceImpl implements CleanupProjectResourceServ } } + /** + * 获取当前项目下所有缺陷ID集合 + * @param projectId 项目ID + * @return 缺陷ID集合 + */ private List getBugIds(String projectId) { BugExample example = new BugExample(); example.createCriteria().andProjectIdEqualTo(projectId); @@ -43,6 +52,10 @@ public class CleanupBugResourceServiceImpl implements CleanupProjectResourceServ return bugs.stream().map(Bug::getId).toList(); } + /** + * 清理缺陷 + * @param bugIds 缺陷ID集合 + */ private void deleteBug(List bugIds) { BugExample example = new BugExample(); example.createCriteria().andIdIn(bugIds); diff --git a/backend/services/bug-management/src/main/java/io/metersphere/bug/utils/ExportUtils.java b/backend/services/bug-management/src/main/java/io/metersphere/bug/utils/ExportUtils.java index d38c108412..9b233f7d9b 100644 --- a/backend/services/bug-management/src/main/java/io/metersphere/bug/utils/ExportUtils.java +++ b/backend/services/bug-management/src/main/java/io/metersphere/bug/utils/ExportUtils.java @@ -11,8 +11,8 @@ import java.util.function.BiFunction; public class ExportUtils { - private List bugs; - private BugExportHeaderModel headerModel; + private final List bugs; + private final BugExportHeaderModel headerModel; public ExportUtils( List bugs, diff --git a/backend/services/system-setting/src/main/java/io/metersphere/system/service/UserToolService.java b/backend/services/system-setting/src/main/java/io/metersphere/system/service/UserToolService.java index ef70b3b4ca..b58e26b053 100644 --- a/backend/services/system-setting/src/main/java/io/metersphere/system/service/UserToolService.java +++ b/backend/services/system-setting/src/main/java/io/metersphere/system/service/UserToolService.java @@ -2,6 +2,7 @@ package io.metersphere.system.service; import io.metersphere.system.domain.User; import io.metersphere.system.domain.UserExample; +import io.metersphere.system.dto.sdk.OptionDTO; import io.metersphere.system.dto.table.TableBatchProcessDTO; import io.metersphere.system.mapper.BaseUserMapper; import io.metersphere.system.mapper.UserMapper; @@ -11,6 +12,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -42,4 +44,14 @@ public class UserToolService { return request.getSelectIds(); } } + + /** + * 获取用户Map集合 (复用) + * @param userIds 用户ID集合 + * @return 用户 映射集合 + */ + public Map getUserMapByIds(List userIds) { + List userOptions = baseUserMapper.selectUserOptionByIds(userIds); + return userOptions.stream().collect(Collectors.toMap(OptionDTO::getId, OptionDTO::getName)); + } }