增加生成后端服务代码。
This commit is contained in:
parent
6078c0228b
commit
7bfc716eb5
@ -1,5 +1,6 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.api;
|
package com.qqchen.deploy.backend.deploy.api;
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.deploy.dto.JenkinsInstanceDTO;
|
||||||
import com.qqchen.deploy.backend.deploy.service.IJenkinsManagerService;
|
import com.qqchen.deploy.backend.deploy.service.IJenkinsManagerService;
|
||||||
import com.qqchen.deploy.backend.framework.api.Response;
|
import com.qqchen.deploy.backend.framework.api.Response;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
@ -56,4 +57,10 @@ public class JenkinsManagerApiController {
|
|||||||
jenkinsManagerService.syncBuilds(externalSystemId);
|
jenkinsManagerService.syncBuilds(externalSystemId);
|
||||||
return Response.success();
|
return Response.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "获取Jenkins实例信息")
|
||||||
|
@GetMapping("/{externalSystemId}/instance")
|
||||||
|
public Response<JenkinsInstanceDTO> instance(@Parameter(description = "外部系统ID", required = true) @PathVariable Long externalSystemId) {
|
||||||
|
return Response.success(jenkinsManagerService.instance(externalSystemId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
package com.qqchen.deploy.backend.deploy.dto;
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.deploy.entity.JenkinsJob;
|
||||||
|
import com.qqchen.deploy.backend.deploy.entity.JenkinsView;
|
||||||
|
import com.qqchen.deploy.backend.framework.dto.BaseDTO;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Jenkins工作 DTO
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class JenkinsInstanceDTO extends BaseDTO {
|
||||||
|
|
||||||
|
private int totalViews;
|
||||||
|
|
||||||
|
private int totalJobs;
|
||||||
|
|
||||||
|
private int totalBuilds;
|
||||||
|
|
||||||
|
private List<JenkinsViewDTO> jenkinsViewList;
|
||||||
|
|
||||||
|
private List<JenkinsJobDTO> jenkinsJobList;
|
||||||
|
|
||||||
|
}
|
||||||
@ -38,4 +38,12 @@ public interface IJenkinsBuildService extends IBaseService<JenkinsBuild, Jenkins
|
|||||||
* @return 同步的构建总数
|
* @return 同步的构建总数
|
||||||
*/
|
*/
|
||||||
Integer syncAllBuilds(Long externalSystemId);
|
Integer syncAllBuilds(Long externalSystemId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据外部系统ID统计构建总数
|
||||||
|
*
|
||||||
|
* @param externalSystemId 外部系统ID
|
||||||
|
* @return 构建总数
|
||||||
|
*/
|
||||||
|
Long countByExternalSystemId(Long externalSystemId);
|
||||||
}
|
}
|
||||||
@ -6,6 +6,7 @@ import com.qqchen.deploy.backend.framework.service.IBaseService;
|
|||||||
import com.qqchen.deploy.backend.deploy.entity.JenkinsJob;
|
import com.qqchen.deploy.backend.deploy.entity.JenkinsJob;
|
||||||
import com.qqchen.deploy.backend.deploy.dto.JenkinsJobDTO;
|
import com.qqchen.deploy.backend.deploy.dto.JenkinsJobDTO;
|
||||||
import com.qqchen.deploy.backend.deploy.query.JenkinsJobQuery;
|
import com.qqchen.deploy.backend.deploy.query.JenkinsJobQuery;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Jenkins任务 Service接口
|
* Jenkins任务 Service接口
|
||||||
@ -28,4 +29,12 @@ public interface IJenkinsJobService extends IBaseService<JenkinsJob, JenkinsJobD
|
|||||||
* @return 同步的任务总数
|
* @return 同步的任务总数
|
||||||
*/
|
*/
|
||||||
Integer syncJobs(Long externalSystemId);
|
Integer syncJobs(Long externalSystemId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据外部系统ID查询所有任务
|
||||||
|
*
|
||||||
|
* @param externalSystemId 外部系统ID
|
||||||
|
* @return 任务列表
|
||||||
|
*/
|
||||||
|
List<JenkinsJobDTO> findByExternalSystemId(Long externalSystemId);
|
||||||
}
|
}
|
||||||
@ -1,5 +1,7 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.service;
|
package com.qqchen.deploy.backend.deploy.service;
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.deploy.dto.JenkinsInstanceDTO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Jenkins管理服务接口
|
* Jenkins管理服务接口
|
||||||
*/
|
*/
|
||||||
@ -32,4 +34,6 @@ public interface IJenkinsManagerService {
|
|||||||
* @param externalSystemId 外部系统ID
|
* @param externalSystemId 外部系统ID
|
||||||
*/
|
*/
|
||||||
void syncBuilds(Long externalSystemId);
|
void syncBuilds(Long externalSystemId);
|
||||||
|
|
||||||
|
JenkinsInstanceDTO instance(Long externalSystemId);
|
||||||
}
|
}
|
||||||
@ -4,6 +4,7 @@ import com.qqchen.deploy.backend.deploy.entity.JenkinsView;
|
|||||||
import com.qqchen.deploy.backend.deploy.dto.JenkinsViewDTO;
|
import com.qqchen.deploy.backend.deploy.dto.JenkinsViewDTO;
|
||||||
import com.qqchen.deploy.backend.deploy.query.JenkinsViewQuery;
|
import com.qqchen.deploy.backend.deploy.query.JenkinsViewQuery;
|
||||||
import com.qqchen.deploy.backend.framework.service.IBaseService;
|
import com.qqchen.deploy.backend.framework.service.IBaseService;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Jenkins视图 Service接口
|
* Jenkins视图 Service接口
|
||||||
@ -17,4 +18,12 @@ public interface IJenkinsViewService extends IBaseService<JenkinsView, JenkinsVi
|
|||||||
* @return 同步的视图数量
|
* @return 同步的视图数量
|
||||||
*/
|
*/
|
||||||
Integer syncViews(Long externalSystemId);
|
Integer syncViews(Long externalSystemId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据外部系统ID查询所有视图
|
||||||
|
*
|
||||||
|
* @param externalSystemId 外部系统ID
|
||||||
|
* @return 视图列表
|
||||||
|
*/
|
||||||
|
List<JenkinsViewDTO> findByExternalSystemId(Long externalSystemId);
|
||||||
}
|
}
|
||||||
@ -7,6 +7,7 @@ import com.qqchen.deploy.backend.deploy.entity.JenkinsBuild;
|
|||||||
import com.qqchen.deploy.backend.deploy.entity.JenkinsJob;
|
import com.qqchen.deploy.backend.deploy.entity.JenkinsJob;
|
||||||
import com.qqchen.deploy.backend.deploy.entity.JenkinsView;
|
import com.qqchen.deploy.backend.deploy.entity.JenkinsView;
|
||||||
import com.qqchen.deploy.backend.deploy.dto.JenkinsBuildDTO;
|
import com.qqchen.deploy.backend.deploy.dto.JenkinsBuildDTO;
|
||||||
|
import com.qqchen.deploy.backend.deploy.entity.QJenkinsBuild;
|
||||||
import com.qqchen.deploy.backend.deploy.query.JenkinsBuildQuery;
|
import com.qqchen.deploy.backend.deploy.query.JenkinsBuildQuery;
|
||||||
import com.qqchen.deploy.backend.deploy.integration.IJenkinsServiceIntegration;
|
import com.qqchen.deploy.backend.deploy.integration.IJenkinsServiceIntegration;
|
||||||
import com.qqchen.deploy.backend.deploy.integration.response.JenkinsBuildResponse;
|
import com.qqchen.deploy.backend.deploy.integration.response.JenkinsBuildResponse;
|
||||||
@ -179,4 +180,10 @@ public class JenkinsBuildServiceImpl extends BaseServiceImpl<JenkinsBuild, Jenki
|
|||||||
jenkinsBuild.setActions("{}");
|
jenkinsBuild.setActions("{}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long countByExternalSystemId(Long externalSystemId) {
|
||||||
|
QJenkinsBuild qJenkinsBuild = QJenkinsBuild.jenkinsBuild;
|
||||||
|
return super.repository.count(qJenkinsBuild.externalSystemId.eq(externalSystemId).and(qJenkinsBuild.deleted.eq(false)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -1,5 +1,6 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.service.impl;
|
package com.qqchen.deploy.backend.deploy.service.impl;
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.deploy.converter.JenkinsJobConverter;
|
||||||
import com.qqchen.deploy.backend.deploy.entity.ExternalSystem;
|
import com.qqchen.deploy.backend.deploy.entity.ExternalSystem;
|
||||||
import com.qqchen.deploy.backend.deploy.entity.JenkinsJob;
|
import com.qqchen.deploy.backend.deploy.entity.JenkinsJob;
|
||||||
import com.qqchen.deploy.backend.deploy.entity.JenkinsView;
|
import com.qqchen.deploy.backend.deploy.entity.JenkinsView;
|
||||||
@ -50,6 +51,8 @@ public class JenkinsJobServiceImpl extends BaseServiceImpl<JenkinsJob, JenkinsJo
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IJenkinsServiceIntegration jenkinsServiceIntegration;
|
private IJenkinsServiceIntegration jenkinsServiceIntegration;
|
||||||
|
@Resource
|
||||||
|
private JenkinsJobConverter jenkinsJobConverter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 同步外部系统下所有视图的Jenkins任务
|
* 同步外部系统下所有视图的Jenkins任务
|
||||||
@ -238,4 +241,11 @@ public class JenkinsJobServiceImpl extends BaseServiceImpl<JenkinsJob, JenkinsJo
|
|||||||
default -> 0;
|
default -> 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<JenkinsJobDTO> findByExternalSystemId(Long externalSystemId) {
|
||||||
|
JenkinsJobQuery query = new JenkinsJobQuery();
|
||||||
|
query.setExternalSystemId(externalSystemId);
|
||||||
|
return super.findAll(query);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -1,5 +1,10 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.service.impl;
|
package com.qqchen.deploy.backend.deploy.service.impl;
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.deploy.dto.JenkinsInstanceDTO;
|
||||||
|
import com.qqchen.deploy.backend.deploy.dto.JenkinsJobDTO;
|
||||||
|
import com.qqchen.deploy.backend.deploy.dto.JenkinsViewDTO;
|
||||||
|
import com.qqchen.deploy.backend.deploy.entity.JenkinsJob;
|
||||||
|
import com.qqchen.deploy.backend.deploy.entity.JenkinsView;
|
||||||
import com.qqchen.deploy.backend.deploy.service.IJenkinsManagerService;
|
import com.qqchen.deploy.backend.deploy.service.IJenkinsManagerService;
|
||||||
import com.qqchen.deploy.backend.deploy.service.IJenkinsViewService;
|
import com.qqchen.deploy.backend.deploy.service.IJenkinsViewService;
|
||||||
import com.qqchen.deploy.backend.deploy.service.IJenkinsJobService;
|
import com.qqchen.deploy.backend.deploy.service.IJenkinsJobService;
|
||||||
@ -8,6 +13,7 @@ import jakarta.annotation.Resource;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Jenkins管理服务实现
|
* Jenkins管理服务实现
|
||||||
@ -67,4 +73,26 @@ public class JenkinsManagerServiceImpl implements IJenkinsManagerService {
|
|||||||
Integer buildCount = jenkinsBuildService.syncAllBuilds(externalSystemId);
|
Integer buildCount = jenkinsBuildService.syncAllBuilds(externalSystemId);
|
||||||
log.info("Successfully synchronized {} builds", buildCount);
|
log.info("Successfully synchronized {} builds", buildCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JenkinsInstanceDTO instance(Long externalSystemId) {
|
||||||
|
// 1. 创建返回对象
|
||||||
|
JenkinsInstanceDTO instanceDTO = new JenkinsInstanceDTO();
|
||||||
|
|
||||||
|
// 2. 获取视图列表
|
||||||
|
List<JenkinsViewDTO> views = jenkinsViewService.findByExternalSystemId(externalSystemId);
|
||||||
|
instanceDTO.setJenkinsViewList(views);
|
||||||
|
instanceDTO.setTotalViews(views.size());
|
||||||
|
|
||||||
|
// 3. 获取任务列表
|
||||||
|
List<JenkinsJobDTO> jobs = jenkinsJobService.findByExternalSystemId(externalSystemId);
|
||||||
|
instanceDTO.setJenkinsJobList(jobs);
|
||||||
|
instanceDTO.setTotalJobs(jobs.size());
|
||||||
|
|
||||||
|
// 4. 获取构建总数
|
||||||
|
Long totalBuilds = jenkinsBuildService.countByExternalSystemId(externalSystemId);
|
||||||
|
instanceDTO.setTotalBuilds(totalBuilds.intValue());
|
||||||
|
|
||||||
|
return instanceDTO;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -1,5 +1,6 @@
|
|||||||
package com.qqchen.deploy.backend.deploy.service.impl;
|
package com.qqchen.deploy.backend.deploy.service.impl;
|
||||||
|
|
||||||
|
import com.qqchen.deploy.backend.deploy.converter.JenkinsViewConverter;
|
||||||
import com.qqchen.deploy.backend.deploy.entity.ExternalSystem;
|
import com.qqchen.deploy.backend.deploy.entity.ExternalSystem;
|
||||||
import com.qqchen.deploy.backend.deploy.entity.JenkinsView;
|
import com.qqchen.deploy.backend.deploy.entity.JenkinsView;
|
||||||
import com.qqchen.deploy.backend.deploy.dto.JenkinsViewDTO;
|
import com.qqchen.deploy.backend.deploy.dto.JenkinsViewDTO;
|
||||||
@ -38,6 +39,9 @@ public class JenkinsViewServiceImpl extends BaseServiceImpl<JenkinsView, Jenkins
|
|||||||
@Resource
|
@Resource
|
||||||
private IJenkinsServiceIntegration jenkinsServiceIntegration;
|
private IJenkinsServiceIntegration jenkinsServiceIntegration;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private JenkinsViewConverter jenkinsViewConverter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 同步Jenkins视图
|
* 同步Jenkins视图
|
||||||
*
|
*
|
||||||
@ -98,4 +102,11 @@ public class JenkinsViewServiceImpl extends BaseServiceImpl<JenkinsView, Jenkins
|
|||||||
jenkinsView.setDescription(response.getDescription());
|
jenkinsView.setDescription(response.getDescription());
|
||||||
jenkinsView.setViewUrl(response.getUrl());
|
jenkinsView.setViewUrl(response.getUrl());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<JenkinsViewDTO> findByExternalSystemId(Long externalSystemId) {
|
||||||
|
JenkinsViewQuery query = new JenkinsViewQuery();
|
||||||
|
query.setExternalSystemId(externalSystemId);
|
||||||
|
return super.findAll(query);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user