大声道撒旦

This commit is contained in:
dengqichen 2024-12-26 16:46:36 +08:00
parent 2d41b2793f
commit ceb37dfe8b
6 changed files with 81 additions and 1 deletions

View File

@ -5,6 +5,10 @@ import com.qqchen.deploy.backend.deploy.entity.Application;
import com.qqchen.deploy.backend.framework.converter.BaseConverter; import com.qqchen.deploy.backend.framework.converter.BaseConverter;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import java.util.List;
@Mapper(config = BaseConverter.class) @Mapper(config = BaseConverter.class)
public interface ApplicationConverter extends BaseConverter<Application, ApplicationDTO> { public interface ApplicationConverter extends BaseConverter<Application, ApplicationDTO> {
} }

View File

@ -34,5 +34,8 @@ public class ApplicationDTO extends BaseDTO {
@NotNull(message = "排序号不能为空") @NotNull(message = "排序号不能为空")
private Integer sort; private Integer sort;
private Long projectGroupId;
private ProjectGroupDTO projectGroup; private ProjectGroupDTO projectGroup;
} }

View File

@ -0,0 +1,4 @@
package com.qqchen.deploy.backend.deploy.dto.variables;
public class JenkinsBuildVariables {
}

View File

@ -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<Long> {
@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;
}

View File

@ -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.entity.Application;
import com.qqchen.deploy.backend.deploy.query.ApplicationQuery; import com.qqchen.deploy.backend.deploy.query.ApplicationQuery;
import com.qqchen.deploy.backend.framework.service.IBaseService; import com.qqchen.deploy.backend.framework.service.IBaseService;
import org.springframework.data.domain.Page;
public interface IApplicationService extends IBaseService<Application, ApplicationDTO, ApplicationQuery, Long> { public interface IApplicationService extends IBaseService<Application, ApplicationDTO, ApplicationQuery, Long> {
Page<ApplicationDTO> page(ApplicationQuery query);
} }

View File

@ -1,13 +1,41 @@
package com.qqchen.deploy.backend.deploy.service.impl; 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.dto.ApplicationDTO;
import com.qqchen.deploy.backend.deploy.entity.Application; 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.query.ApplicationQuery;
import com.qqchen.deploy.backend.deploy.repository.IProjectGroupRepository;
import com.qqchen.deploy.backend.deploy.service.IApplicationService; import com.qqchen.deploy.backend.deploy.service.IApplicationService;
import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl; 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 org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
import static java.util.stream.Collectors.toList;
@Service @Service
public class ApplicationServiceImpl extends BaseServiceImpl<Application, ApplicationDTO, ApplicationQuery, Long> implements IApplicationService { public class ApplicationServiceImpl extends BaseServiceImpl<Application, ApplicationDTO, ApplicationQuery, Long> implements IApplicationService {
@Resource
private IProjectGroupRepository projectGroupRepository;
@Resource
private ProjectGroupConverter projectGroupConverter;
public Page<ApplicationDTO> page(ApplicationQuery query) {
Page<ApplicationDTO> page = super.page(query);
List<ApplicationDTO> result = page.getContent().stream().peek(application -> {
Optional<ProjectGroup> projectGroupOptional = projectGroupRepository.findById(application.getProjectGroupId());
projectGroupOptional.ifPresent(projectGroup -> application.setProjectGroup(projectGroupConverter.toDto(projectGroup)));
}).collect(toList());
return new PageImpl<>(result, page.getPageable(), page.getTotalElements());
}
} }