diff --git a/backend/pom.xml b/backend/pom.xml
index 0e8b3e1f..ce187008 100644
--- a/backend/pom.xml
+++ b/backend/pom.xml
@@ -76,6 +76,12 @@
spring-boot-starter-quartz
+
+
+ org.springframework.boot
+ spring-boot-starter-mail
+
+
com.mysql
diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/DeployServiceImpl.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/DeployServiceImpl.java
index ccef7f8c..fddd1cfa 100644
--- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/DeployServiceImpl.java
+++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/DeployServiceImpl.java
@@ -22,6 +22,7 @@ import com.qqchen.deploy.backend.deploy.entity.DeployRecord;
import com.qqchen.deploy.backend.deploy.enums.DeployRecordStatusEnums;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
+import org.flowable.common.engine.api.delegate.event.FlowableEngineEventType;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -90,35 +91,30 @@ public class DeployServiceImpl implements IDeployService {
// 2. 查询用户作为成员的团队
List teamMembers = teamMemberRepository.findByUserIdAndDeletedFalse(currentUserId);
-
+
// 3. 查询用户作为负责人的团队
List ownedTeams = teamRepository.findByOwnerIdAndDeletedFalse(currentUserId);
-
+
// 4. 合并团队ID(去重)
Set teamIdSet = new HashSet<>();
teamIdSet.addAll(teamMembers.stream().map(TeamMember::getTeamId).toList());
teamIdSet.addAll(ownedTeams.stream().map(Team::getId).toList());
-
+
if (teamIdSet.isEmpty()) {
log.info("用户 {} 未加入任何团队且不是任何团队的负责人", user.getUsername());
return buildEmptyResult(user);
}
-
+
List teamIds = new ArrayList<>(teamIdSet);
// 3. 批量查询团队信息
- Map teamMap = teamRepository.findAllById(teamIds)
- .stream().collect(toMap(Team::getId, t -> t));
+ Map teamMap = teamRepository.findAllById(teamIds).stream().collect(toMap(Team::getId, t -> t));
// 4. 批量查询团队配置
- Map configMap = teamConfigRepository.findByTeamIdIn(teamIds)
- .stream().collect(toMap(TeamConfig::getTeamId, c -> c));
+ Map configMap = teamConfigRepository.findByTeamIdIn(teamIds).stream().collect(toMap(TeamConfig::getTeamId, c -> c));
// 5. 收集所有环境ID
- Set allEnvIds = configMap.values().stream()
- .filter(c -> c.getAllowedEnvironmentIds() != null)
- .flatMap(c -> c.getAllowedEnvironmentIds().stream())
- .collect(Collectors.toSet());
+ Set allEnvIds = configMap.values().stream().filter(c -> c.getAllowedEnvironmentIds() != null).flatMap(c -> c.getAllowedEnvironmentIds().stream()).collect(Collectors.toSet());
if (allEnvIds.isEmpty()) {
log.info("用户 {} 所属团队未配置任何环境", user.getUsername());
@@ -126,73 +122,50 @@ public class DeployServiceImpl implements IDeployService {
}
// 6. 批量查询环境信息
- Map envMap = environmentRepository.findAllById(allEnvIds)
- .stream().collect(toMap(Environment::getId, e -> e));
+ Map envMap = environmentRepository.findAllById(allEnvIds).stream().collect(toMap(Environment::getId, e -> e));
// 7. 批量查询所有团队的应用配置
List allTeamApps = teamApplicationRepository.findByTeamIdIn(teamIds);
- Map> teamAppsMap = allTeamApps.stream()
- .collect(groupingBy(TeamApplication::getTeamId));
+ Map> teamAppsMap = allTeamApps.stream().collect(groupingBy(TeamApplication::getTeamId));
// 8. 批量查询应用信息
- Set appIds = allTeamApps.stream()
- .map(TeamApplication::getApplicationId)
- .collect(Collectors.toSet());
+ Set appIds = allTeamApps.stream().map(TeamApplication::getApplicationId).collect(Collectors.toSet());
final Map appMap;
if (!appIds.isEmpty()) {
- appMap = applicationRepository.findAllById(appIds)
- .stream().collect(toMap(Application::getId, a -> a));
+ appMap = applicationRepository.findAllById(appIds).stream().collect(toMap(Application::getId, a -> a));
} else {
appMap = Collections.emptyMap();
}
// 9. 批量查询部署系统
- Set systemIds = allTeamApps.stream()
- .map(TeamApplication::getDeploySystemId)
- .filter(Objects::nonNull)
- .collect(Collectors.toSet());
+ Set systemIds = allTeamApps.stream().map(TeamApplication::getDeploySystemId).filter(Objects::nonNull).collect(Collectors.toSet());
final Map systemMap;
if (!systemIds.isEmpty()) {
- systemMap = externalSystemRepository.findAllById(systemIds)
- .stream().collect(toMap(ExternalSystem::getId, s -> s));
+ systemMap = externalSystemRepository.findAllById(systemIds).stream().collect(toMap(ExternalSystem::getId, s -> s));
} else {
systemMap = Collections.emptyMap();
}
// 10. 批量查询工作流定义
- Set workflowIds = allTeamApps.stream()
- .map(TeamApplication::getWorkflowDefinitionId)
- .filter(Objects::nonNull)
- .collect(Collectors.toSet());
+ Set workflowIds = allTeamApps.stream().map(TeamApplication::getWorkflowDefinitionId).filter(Objects::nonNull).collect(Collectors.toSet());
final Map workflowMap;
if (!workflowIds.isEmpty()) {
- workflowMap = workflowDefinitionRepository.findAllById(workflowIds)
- .stream().collect(toMap(WorkflowDefinition::getId, w -> w));
+ workflowMap = workflowDefinitionRepository.findAllById(workflowIds).stream().collect(toMap(WorkflowDefinition::getId, w -> w));
} else {
workflowMap = Collections.emptyMap();
}
// 11. 批量查询审批人信息
- Set approverUserIds = configMap.values().stream()
- .filter(c -> c.getApproverUserIds() != null)
- .flatMap(c -> c.getApproverUserIds().stream())
- .filter(obj -> obj instanceof List)
- .flatMap(obj -> ((List>) obj).stream())
- .filter(id -> id instanceof Number)
- .map(id -> ((Number) id).longValue())
- .collect(Collectors.toSet());
+ Set approverUserIds = configMap.values().stream().filter(c -> c.getApproverUserIds() != null).flatMap(c -> c.getApproverUserIds().stream()).filter(obj -> obj instanceof List).flatMap(obj -> ((List>) obj).stream()).filter(id -> id instanceof Number).map(id -> ((Number) id).longValue()).collect(Collectors.toSet());
final Map approverMap;
if (!approverUserIds.isEmpty()) {
- approverMap = userRepository.findAllById(approverUserIds)
- .stream().collect(toMap(User::getId, u -> u));
+ approverMap = userRepository.findAllById(approverUserIds).stream().collect(toMap(User::getId, u -> u));
} else {
approverMap = Collections.emptyMap();
}
// 12. 批量查询部署记录信息
- List teamApplicationIds = allTeamApps.stream()
- .map(TeamApplication::getId)
- .collect(toList());
+ List teamApplicationIds = allTeamApps.stream().map(TeamApplication::getId).collect(toList());
// 12.1 批量查询部署统计信息
final Map statisticsMap = new HashMap<>();
@@ -201,8 +174,7 @@ public class DeployServiceImpl implements IDeployService {
if (!teamApplicationIds.isEmpty()) {
// 查询统计信息
- List