diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/converter/ApplicationConverter.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/converter/ApplicationConverter.java index df1de14a..49bfad92 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/converter/ApplicationConverter.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/converter/ApplicationConverter.java @@ -5,6 +5,10 @@ import com.qqchen.deploy.backend.deploy.entity.Application; import com.qqchen.deploy.backend.framework.converter.BaseConverter; import org.mapstruct.Mapper; +import java.util.List; + @Mapper(config = BaseConverter.class) public interface ApplicationConverter extends BaseConverter { + + } \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/ApplicationDTO.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/ApplicationDTO.java index 427ad47d..c933f593 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/ApplicationDTO.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/ApplicationDTO.java @@ -34,5 +34,8 @@ public class ApplicationDTO extends BaseDTO { @NotNull(message = "排序号不能为空") private Integer sort; + private Long projectGroupId; + private ProjectGroupDTO projectGroup; -} \ No newline at end of file + +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/variables/JenkinsBuildVariables.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/variables/JenkinsBuildVariables.java new file mode 100644 index 00000000..c362fe23 --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/variables/JenkinsBuildVariables.java @@ -0,0 +1,4 @@ +package com.qqchen.deploy.backend.deploy.dto.variables; + +public class JenkinsBuildVariables { +} diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/DeployAppConfig.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/DeployAppConfig.java new file mode 100644 index 00000000..da816c73 --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/DeployAppConfig.java @@ -0,0 +1,36 @@ +package com.qqchen.deploy.backend.deploy.entity; + + +import com.fasterxml.jackson.databind.JsonNode; +import com.qqchen.deploy.backend.deploy.enums.BuildTypeEnum; +import com.qqchen.deploy.backend.framework.domain.Entity; +import com.vladmihalcea.hibernate.type.json.JsonType; +import jakarta.persistence.Column; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.Table; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.hibernate.annotations.Type; + +@Data +@EqualsAndHashCode(callSuper = true) +@jakarta.persistence.Entity +@Table(name = "deploy_app_config") +public class DeployAppConfig extends Entity { + + + @Column(name = "environment_id", nullable = false) + private Long environmentId; + + @Column(name = "application_id", nullable = false) + private Long applicationId; + + @Column(nullable = false) + @Enumerated(EnumType.STRING) + private BuildTypeEnum buildType; + + @Type(JsonType.class) + @Column(name = "build_variables", columnDefinition = "text", nullable = false) + private JsonNode buildVariables; +} diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IApplicationService.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IApplicationService.java index e1bb0d94..f7576696 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IApplicationService.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IApplicationService.java @@ -4,6 +4,11 @@ import com.qqchen.deploy.backend.deploy.dto.ApplicationDTO; import com.qqchen.deploy.backend.deploy.entity.Application; import com.qqchen.deploy.backend.deploy.query.ApplicationQuery; import com.qqchen.deploy.backend.framework.service.IBaseService; +import org.springframework.data.domain.Page; public interface IApplicationService extends IBaseService { + + Page page(ApplicationQuery query); + + } \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/ApplicationServiceImpl.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/ApplicationServiceImpl.java index 87db0967..ef86f105 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/ApplicationServiceImpl.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/ApplicationServiceImpl.java @@ -1,13 +1,41 @@ package com.qqchen.deploy.backend.deploy.service.impl; +import com.qqchen.deploy.backend.deploy.converter.ApplicationConverter; +import com.qqchen.deploy.backend.deploy.converter.ProjectGroupConverter; import com.qqchen.deploy.backend.deploy.dto.ApplicationDTO; import com.qqchen.deploy.backend.deploy.entity.Application; +import com.qqchen.deploy.backend.deploy.entity.ProjectGroup; import com.qqchen.deploy.backend.deploy.query.ApplicationQuery; +import com.qqchen.deploy.backend.deploy.repository.IProjectGroupRepository; import com.qqchen.deploy.backend.deploy.service.IApplicationService; import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl; +import jakarta.annotation.Resource; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Optional; + +import static java.util.stream.Collectors.toList; + @Service public class ApplicationServiceImpl extends BaseServiceImpl implements IApplicationService { + + @Resource + private IProjectGroupRepository projectGroupRepository; + + @Resource + private ProjectGroupConverter projectGroupConverter; + + public Page page(ApplicationQuery query) { + Page page = super.page(query); + List result = page.getContent().stream().peek(application -> { + Optional projectGroupOptional = projectGroupRepository.findById(application.getProjectGroupId()); + projectGroupOptional.ifPresent(projectGroup -> application.setProjectGroup(projectGroupConverter.toDto(projectGroup))); + }).collect(toList()); + return new PageImpl<>(result, page.getPageable(), page.getTotalElements()); + } + } \ No newline at end of file