diff --git a/modules/module-ci-process-biz/pom.xml b/modules/module-ci-process-biz/pom.xml
index eece7187..b8102fab 100644
--- a/modules/module-ci-process-biz/pom.xml
+++ b/modules/module-ci-process-biz/pom.xml
@@ -90,6 +90,10 @@
httpclient5
5.2.1
+
+ cd.casic.boot
+ module-infra-biz
+
diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/resource/ResourceQueryReq.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/resource/ResourceQueryReq.java
index e1ba38c7..ef1db4bf 100644
--- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/resource/ResourceQueryReq.java
+++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/resource/ResourceQueryReq.java
@@ -15,14 +15,24 @@ public class ResourceQueryReq extends PageParam {
private List idList;
/**
- * 资源类型 docker, k8s, machine,cloud
+ * docker镜像服务器信息id
*/
- private String resourceType;
+ private String dockerId;
/**
- * 其他资源表 ID
+ * k8s服务器信息id
*/
- private String resourceId;
+ private String k8sId;
+
+ /**
+ * 机器服务器信息id
+ */
+ private String machineId;
+
+ /**
+ * 弹性云服务器信息id
+ */
+ private String cloudId;
/**
* 资源名称
diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/resource/ResourceReq.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/resource/ResourceReq.java
index 56b738a9..115910e2 100644
--- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/resource/ResourceReq.java
+++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/resource/ResourceReq.java
@@ -10,14 +10,24 @@ import lombok.Data;
public class ResourceReq {
private String id;
/**
- * 资源类型 docker, k8s, machine,cloud
+ * docker镜像服务器信息id
*/
- private String resourceType;
+ private String dockerId;
/**
- * 其他资源表 ID
+ * k8s服务器信息id
*/
- private String resourceId;
+ private String k8sId;
+
+ /**
+ * 机器服务器信息id
+ */
+ private String machineId;
+
+ /**
+ * 弹性云服务器信息id
+ */
+ private String cloudId;
/**
* 资源名称
diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/target/TargetUploadReq.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/target/TargetUploadReq.java
new file mode 100644
index 00000000..d74abaf4
--- /dev/null
+++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/target/TargetUploadReq.java
@@ -0,0 +1,21 @@
+package cd.casic.ci.process.dal.req.target;
+
+import lombok.Data;
+
+import java.io.File;
+
+/**
+ * @ClassName PipelineQueryReq
+ * @Author hopeli
+ * @Date 2025/5/10 9:54
+ * @Version 1.0
+ */
+@Data
+public class TargetUploadReq{
+
+ private File file;
+
+ private String remoteFilePath;
+
+ private String fileType;
+}
diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/resp/resource/ResourceFindResp.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/resp/resource/ResourceFindResp.java
index 063af41d..f1614ef4 100644
--- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/resp/resource/ResourceFindResp.java
+++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/resp/resource/ResourceFindResp.java
@@ -14,14 +14,24 @@ public class ResourceFindResp {
private String id;
/**
- * 资源类型 docker, k8s, machine
+ * docker镜像服务器信息id
*/
- private String resourceType;
+ private String dockerId;
/**
- * 其他资源表 ID
+ * k8s服务器信息id
*/
- private String resourceId;
+ private String k8sId;
+
+ /**
+ * 机器服务器信息id
+ */
+ private String machineId;
+
+ /**
+ * 弹性云服务器信息id
+ */
+ private String cloudId;
/**
* 资源名称
diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/resp/resource/ResourceResp.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/resp/resource/ResourceResp.java
index 82ee04ac..3f0d016b 100644
--- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/resp/resource/ResourceResp.java
+++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/resp/resource/ResourceResp.java
@@ -13,14 +13,24 @@ public class ResourceResp {
private String id;
/**
- * 资源类型 docker, k8s, machine
+ * docker镜像服务器信息id
*/
- private String resourceType;
+ private String dockerId;
/**
- * 其他资源表 ID
+ * k8s服务器信息id
*/
- private String resourceId;
+ private String k8sId;
+
+ /**
+ * 机器服务器信息id
+ */
+ private String machineId;
+
+ /**
+ * 弹性云服务器信息id
+ */
+ private String cloudId;
/**
* 资源名称
diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/converter/ResourceConverter.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/converter/ResourceConverter.java
index 357935d8..b37b4bed 100644
--- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/converter/ResourceConverter.java
+++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/converter/ResourceConverter.java
@@ -1,7 +1,8 @@
package cd.casic.ci.process.process.converter;
+import cd.casic.ci.process.dal.req.resource.ResourceReq;
import cd.casic.ci.process.dal.resp.resource.ResourceFindResp;
-import cd.casic.ci.process.process.dataObject.resource.PipResourceTemp;
+import cd.casic.ci.process.process.dataObject.resource.PipResourceManager;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@@ -18,7 +19,9 @@ import java.util.List;
public interface ResourceConverter {
ResourceConverter INSTANCE = Mappers.getMapper(ResourceConverter.class);
- ResourceFindResp toBean(PipResourceTemp req);
- List toRespList(List pipResourceTemps);
+ ResourceFindResp toResp(PipResourceManager req);
+ List toRespList(List pipResourceManagers);
+
+ PipResourceManager toBean(ResourceReq req);
}
diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceTempDao.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceManagerDao.java
similarity index 76%
rename from modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceTempDao.java
rename to modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceManagerDao.java
index 475c70e5..0793df7f 100644
--- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceTempDao.java
+++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceManagerDao.java
@@ -1,6 +1,6 @@
package cd.casic.ci.process.process.dal.pipeline;
-import cd.casic.ci.process.process.dataObject.resource.PipResourceTemp;
+import cd.casic.ci.process.process.dataObject.resource.PipResourceManager;
import cd.casic.framework.mybatis.core.mapper.BaseMapperX;
/**
@@ -10,5 +10,5 @@ import cd.casic.framework.mybatis.core.mapper.BaseMapperX;
* @Date: 2025/5/13 14:39
* @Description:
*/
-public interface PipResourceTempDao extends BaseMapperX {
+public interface PipResourceManagerDao extends BaseMapperX {
}
diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResourceTemp.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResourceManager.java
similarity index 55%
rename from modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResourceTemp.java
rename to modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResourceManager.java
index 5461f31f..0be43d3f 100644
--- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResourceTemp.java
+++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResourceManager.java
@@ -12,16 +12,26 @@ import lombok.EqualsAndHashCode;
*/
@EqualsAndHashCode(callSuper = true)
@Data
-public class PipResourceTemp extends PipBaseElement {
+public class PipResourceManager extends PipBaseElement {
/**
- * 资源类型 docker, k8s, machine
+ * docker镜像服务器信息id
*/
- private String resourceType;
+ private String dockerId;
/**
- * 其他资源表 ID
+ * k8s服务器信息id
*/
- private String resourceId;
+ private String k8sId;
+
+ /**
+ * 机器服务器信息id
+ */
+ private String machineId;
+
+ /**
+ * 弹性云服务器信息id
+ */
+ private String cloudId;
/**
* 资源名称
diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/ResourceService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/ResourceManagerService.java
similarity index 91%
rename from modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/ResourceService.java
rename to modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/ResourceManagerService.java
index 29265cd9..28f3e6ba 100644
--- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/ResourceService.java
+++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/ResourceManagerService.java
@@ -3,7 +3,7 @@ package cd.casic.ci.process.process.service.resource;
import cd.casic.ci.process.dal.req.resource.ResourceQueryReq;
import cd.casic.ci.process.dal.req.resource.ResourceReq;
import cd.casic.ci.process.dal.resp.resource.ResourceFindResp;
-import cd.casic.ci.process.process.dataObject.resource.PipResourceTemp;
+import cd.casic.ci.process.process.dataObject.resource.PipResourceManager;
import cd.casic.framework.commons.pojo.PageResult;
import com.baomidou.mybatisplus.extension.service.IService;
import jakarta.validation.Valid;
@@ -17,7 +17,7 @@ import java.util.List;
* @Date: 2025/5/13 10:27
* @Description:
*/
-public interface ResourceService extends IService {
+public interface ResourceManagerService extends IService {
String createResource(@Valid ResourceReq resourceReq);
void deleteResource(String id);
diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/impl/ResourceManagerServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/impl/ResourceManagerServiceImpl.java
new file mode 100644
index 00000000..d08887cf
--- /dev/null
+++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/impl/ResourceManagerServiceImpl.java
@@ -0,0 +1,320 @@
+package cd.casic.ci.process.process.service.resource.impl;
+
+import cd.casic.ci.process.dal.req.resource.ResourceQueryReq;
+import cd.casic.ci.process.dal.req.resource.ResourceReq;
+import cd.casic.ci.process.dal.resp.resource.ResourceFindResp;
+import cd.casic.ci.process.process.converter.ResourceConverter;
+import cd.casic.ci.process.process.dal.pipeline.PipResourceCloudDao;
+import cd.casic.ci.process.process.dal.pipeline.PipResourceDockerEndpointDao;
+import cd.casic.ci.process.process.dal.pipeline.PipResourceK8SDao;
+import cd.casic.ci.process.process.dal.pipeline.PipResourceMachineDao;
+import cd.casic.ci.process.process.dal.pipeline.PipResourceManagerDao;
+import cd.casic.ci.process.process.dataObject.resource.PipResourceCloud;
+import cd.casic.ci.process.process.dataObject.resource.PipResourceK8S;
+import cd.casic.ci.process.process.dataObject.resource.PipResourceMachine;
+import cd.casic.ci.process.process.dataObject.resource.PipResourceManager;
+import cd.casic.ci.process.process.dataObject.resource.PipelineDockerEndpoint;
+import cd.casic.ci.process.process.service.resource.ResourceManagerService;
+import cd.casic.framework.commons.exception.ServiceException;
+import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants;
+import cd.casic.framework.commons.pojo.PageResult;
+import cd.casic.framework.security.dal.user.AdminUserDO;
+import cd.casic.framework.tenant.core.service.AdminUserServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author HopeLi
+ * @version v1.0
+ * @ClassName ResourceServiceImpl
+ * @Date: 2025/5/13 10:31
+ * @Description:
+ */
+@Service
+@Slf4j
+public class ResourceManagerServiceImpl extends ServiceImpl implements ResourceManagerService {
+ @Resource
+ private PipResourceManagerDao resourceManagerDao;
+
+ @Resource
+ private PipResourceMachineDao machineDao;
+
+ @Resource
+ private PipResourceDockerEndpointDao dockerEndpointDao;
+
+ @Resource
+ private PipResourceK8SDao k8SDao;
+
+ @Resource
+ private PipResourceCloudDao cloudDao;
+
+ @Resource
+ private AdminUserServiceImpl adminUserService;
+ @Autowired
+ private PipResourceDockerEndpointDao pipResourceDockerEndpointDao;
+
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public String createResource(ResourceReq resourceReq) {
+
+ PipResourceManager pipResourceManager = ResourceConverter.INSTANCE.toBean(resourceReq);
+
+ //如果资源类型不属于弹性云,则新增,如果属于弹性云,则走申请流程
+ if (!ObjectUtils.isEmpty(resourceReq.getResourceMachine())){
+ PipResourceMachine resourceMachine = resourceReq.getResourceMachine();
+ machineDao.insert(resourceMachine);
+
+ pipResourceManager.setMachineId(resourceMachine.getId());
+ }
+ if (!ObjectUtils.isEmpty(resourceReq.getPipResourceK8S())) {
+ PipResourceK8S pipResourceK8S = resourceReq.getPipResourceK8S();
+ k8SDao.insert(pipResourceK8S);
+
+ pipResourceManager.setK8sId(pipResourceK8S.getId());
+ }
+ if (!ObjectUtils.isEmpty(resourceReq.getDockerEndpoint())) {
+ PipelineDockerEndpoint dockerEndpoint = resourceReq.getDockerEndpoint();
+ dockerEndpointDao.insert(dockerEndpoint);
+
+ pipResourceManager.setDockerId(dockerEndpoint.getId());
+ }
+
+ if (!ObjectUtils.isEmpty(resourceReq.getPipResourceCloud())) {
+ PipResourceCloud pipResourceCloud = resourceReq.getPipResourceCloud();
+ cloudDao.insert(pipResourceCloud);
+
+ pipResourceManager.setCloudId(pipResourceCloud.getId());
+ }
+
+ resourceManagerDao.insert(pipResourceManager);
+ return pipResourceManager.getId();
+ }
+
+ @Override
+ public void deleteResource(String id) {
+ PipResourceManager pipResourceManager = resourceManagerDao.selectById(id);
+ if (!StringUtils.isEmpty(pipResourceManager.getMachineId())){
+ machineDao.deleteById(pipResourceManager.getMachineId());
+ }
+ if (!StringUtils.isEmpty(pipResourceManager.getK8sId())){
+ k8SDao.deleteById(pipResourceManager.getK8sId());
+ }
+ if (!StringUtils.isEmpty(pipResourceManager.getDockerId())){
+ dockerEndpointDao.deleteById(pipResourceManager.getDockerId());
+ }
+ if (!StringUtils.isEmpty(pipResourceManager.getCloudId())){
+ cloudDao.deleteById(pipResourceManager.getCloudId());
+ }
+ resourceManagerDao.deleteById(id);
+ }
+
+ @Override
+ public void updateResource(ResourceReq resourceReq) {
+ PipResourceManager temp = resourceManagerDao.selectById(resourceReq.getId());
+ temp.setResourceName(resourceReq.getResourceName());
+
+ //先删除旧的资源信息
+ if (!StringUtils.isEmpty(temp.getMachineId())){
+ machineDao.deleteById(temp.getMachineId());
+ }
+
+
+ if (!StringUtils.isEmpty(temp.getK8sId())){
+ k8SDao.deleteById(temp.getK8sId());
+
+ }
+
+ if (!StringUtils.isEmpty(temp.getDockerId())){
+ dockerEndpointDao.deleteById(temp.getDockerId());
+
+ }
+
+ if (!StringUtils.isEmpty(temp.getCloudId())){
+ cloudDao.deleteById(temp.getCloudId());
+
+ }
+
+
+ //根据新资源信息新增
+ if (!ObjectUtils.isEmpty(resourceReq.getResourceMachine())){
+ PipResourceMachine resourceMachine = resourceReq.getResourceMachine();
+ machineDao.insert(resourceMachine);
+
+ temp.setMachineId(resourceMachine.getId());
+ }
+ if (!ObjectUtils.isEmpty(resourceReq.getPipResourceK8S())) {
+ PipResourceK8S pipResourceK8S = resourceReq.getPipResourceK8S();
+ k8SDao.insert(pipResourceK8S);
+
+ temp.setK8sId(pipResourceK8S.getId());
+ }
+ if (!ObjectUtils.isEmpty(resourceReq.getDockerEndpoint())) {
+ PipelineDockerEndpoint dockerEndpoint = resourceReq.getDockerEndpoint();
+ dockerEndpointDao.insert(dockerEndpoint);
+
+ temp.setDockerId(dockerEndpoint.getId());
+ }
+
+ if (!ObjectUtils.isEmpty(resourceReq.getPipResourceCloud())) {
+ PipResourceCloud pipResourceCloud = resourceReq.getPipResourceCloud();
+ cloudDao.insert(pipResourceCloud);
+
+ temp.setCloudId(pipResourceCloud.getId());
+ }
+ resourceManagerDao.updateById(temp);
+ }
+
+ @Override
+ public ResourceFindResp findResourceById(String id) {
+ PipResourceManager pipResourceManager = resourceManagerDao.selectById(id);
+ if (ObjectUtils.isEmpty(pipResourceManager)){
+ throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"资源不存在");
+ }
+ ResourceFindResp resp = ResourceConverter.INSTANCE.toResp(pipResourceManager);
+
+ setResource(resp);
+ setUserName(resp);
+ return resp;
+ }
+
+
+
+ @Override
+ public List findResourceList(ResourceQueryReq query) {
+ QueryWrapper wrapper = new QueryWrapper<>();
+ if (!ObjectUtils.isEmpty(query.getId())){
+ wrapper.eq("id",query.getId());
+ }
+ if (!ObjectUtils.isEmpty(query.getIdList())){
+ wrapper.in("id",query.getId());
+ }
+ if (!ObjectUtils.isEmpty(query.getResourceName())){
+ wrapper.like("resource_name",query.getResourceName());
+ }
+ if (!ObjectUtils.isEmpty(query.getMachineId())){
+ wrapper.eq("machine_id",query.getMachineId());
+ }
+ if (!ObjectUtils.isEmpty(query.getK8sId())){
+ wrapper.eq("k8s_id",query.getK8sId());
+ }
+ if (!ObjectUtils.isEmpty(query.getDockerId())){
+ wrapper.eq("docker_id",query.getDockerId());
+ }
+ if (!ObjectUtils.isEmpty(query.getCloudId())){
+ wrapper.eq("cloud_id",query.getCloudId());
+ }
+ if (!ObjectUtils.isEmpty(query.getCreator())){
+ wrapper.eq("creator",query.getCreator());
+ }
+ List pipResourceManagerList = resourceManagerDao.selectList(wrapper);
+
+ if (ObjectUtils.isEmpty(pipResourceManagerList)){
+ return new ArrayList<>(0);
+ }
+
+ List respList = ResourceConverter.INSTANCE.toRespList(pipResourceManagerList);
+
+ //对资源进行赋值
+ respList.forEach(this::setResource);
+ respList.forEach(this::setUserName);
+
+ return respList;
+ }
+
+ @Override
+ public PageResult findResourcePage(ResourceQueryReq query) {
+ Page respPage = new Page<>();
+
+ QueryWrapper wrapper = new QueryWrapper<>();
+ if (!ObjectUtils.isEmpty(query.getId())){
+ wrapper.eq("id",query.getId());
+ }
+ if (!ObjectUtils.isEmpty(query.getIdList())){
+ wrapper.in("id",query.getId());
+ }
+ if (!ObjectUtils.isEmpty(query.getResourceName())){
+ wrapper.like("resource_name",query.getResourceName());
+ }
+ if (!ObjectUtils.isEmpty(query.getMachineId())){
+ wrapper.eq("machine_id",query.getMachineId());
+ }
+ if (!ObjectUtils.isEmpty(query.getK8sId())){
+ wrapper.eq("k8s_id",query.getK8sId());
+ }
+ if (!ObjectUtils.isEmpty(query.getDockerId())){
+ wrapper.eq("docker_id",query.getDockerId());
+ }
+ if (!ObjectUtils.isEmpty(query.getCloudId())){
+ wrapper.eq("cloud_id",query.getCloudId());
+ }
+ if (!ObjectUtils.isEmpty(query.getCreator())){
+ wrapper.eq("creator",query.getCreator());
+ }
+ Page pipResourceTempPage = resourceManagerDao.selectPage(new Page<>(query.getPageNo(), query.getPageSize()), wrapper);
+
+ if (ObjectUtils.isEmpty(pipResourceTempPage)){
+ return new PageResult<>();
+ }
+
+ List respList = ResourceConverter.INSTANCE.toRespList(pipResourceTempPage.getRecords());
+
+ //对资源进行赋值
+ respList.forEach(this::setResource);
+ respList.forEach(this::setUserName);
+
+ respPage.setRecords(respList);
+ respPage.setTotal(pipResourceTempPage.getTotal());
+ respPage.setCurrent(pipResourceTempPage.getCurrent());
+ respPage.setSize(pipResourceTempPage.getSize());
+ PageResult pageResult = new PageResult<>(respList,pipResourceTempPage.getTotal());
+ return pageResult;
+ }
+
+ private void setResource(ResourceFindResp resourceFindResp) {
+ if (!StringUtils.isEmpty(resourceFindResp.getMachineId())){
+ PipResourceMachine resourceMachine = machineDao.selectById(resourceFindResp.getMachineId());
+ resourceFindResp.setResourceMachine(resourceMachine);
+ }
+ if (!StringUtils.isEmpty(resourceFindResp.getK8sId())) {
+ PipResourceK8S pipResourceK8S = k8SDao.selectById(resourceFindResp.getK8sId());
+ resourceFindResp.setPipResourceK8S(pipResourceK8S);
+ }
+ if (!StringUtils.isEmpty(resourceFindResp.getDockerId())) {
+ PipelineDockerEndpoint dockerEndpoint = dockerEndpointDao.selectById(resourceFindResp.getDockerId());
+ resourceFindResp.setDockerEndpoint(dockerEndpoint);
+ }
+ if (!StringUtils.isEmpty(resourceFindResp.getCloudId())) {
+ PipResourceCloud resourceCloud = cloudDao.selectById(resourceFindResp.getCloudId());
+ resourceFindResp.setPipResourceCloud(resourceCloud);
+ }
+ }
+
+
+ private void setUserName(ResourceFindResp resp) {
+ if (!StringUtils.isEmpty(resp.getCreator())){
+ AdminUserDO user = adminUserService.getUser(Long.valueOf(resp.getCreator()));
+ if (!ObjectUtils.isEmpty(user)){
+ resp.setCreatorName(user.getUsername());
+ }
+ }
+
+ if (!StringUtils.isEmpty(resp.getUpdater())){
+ AdminUserDO user = adminUserService.getUser(Long.valueOf(resp.getUpdater()));
+ if (!ObjectUtils.isEmpty(user)){
+ resp.setUpdaterName(user.getUsername());
+ }
+ }
+ }
+}
diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/impl/ResourceServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/impl/ResourceServiceImpl.java
deleted file mode 100644
index b5b9677d..00000000
--- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/impl/ResourceServiceImpl.java
+++ /dev/null
@@ -1,342 +0,0 @@
-package cd.casic.ci.process.process.service.resource.impl;
-
-import cd.casic.ci.process.dal.req.resource.ResourceQueryReq;
-import cd.casic.ci.process.dal.req.resource.ResourceReq;
-import cd.casic.ci.process.dal.resp.resource.ResourceFindResp;
-import cd.casic.ci.process.enums.ResourceTypeEnum;
-import cd.casic.ci.process.process.converter.ResourceConverter;
-import cd.casic.ci.process.process.dal.pipeline.PipResourceCloudDao;
-import cd.casic.ci.process.process.dal.pipeline.PipResourceDockerEndpointDao;
-import cd.casic.ci.process.process.dal.pipeline.PipResourceK8SDao;
-import cd.casic.ci.process.process.dal.pipeline.PipResourceMachineDao;
-import cd.casic.ci.process.process.dal.pipeline.PipResourceTempDao;
-import cd.casic.ci.process.process.dataObject.resource.PipResourceCloud;
-import cd.casic.ci.process.process.dataObject.resource.PipResourceK8S;
-import cd.casic.ci.process.process.dataObject.resource.PipResourceMachine;
-import cd.casic.ci.process.process.dataObject.resource.PipResourceTemp;
-import cd.casic.ci.process.process.dataObject.resource.PipelineDockerEndpoint;
-import cd.casic.ci.process.process.service.resource.ResourceService;
-import cd.casic.framework.commons.exception.ServiceException;
-import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants;
-import cd.casic.framework.commons.pojo.PageResult;
-import cd.casic.framework.security.dal.user.AdminUserDO;
-import cd.casic.framework.tenant.core.service.AdminUserServiceImpl;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import jakarta.annotation.Resource;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.ObjectUtils;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author HopeLi
- * @version v1.0
- * @ClassName ResourceServiceImpl
- * @Date: 2025/5/13 10:31
- * @Description:
- */
-@Service
-@Slf4j
-public class ResourceServiceImpl extends ServiceImpl implements ResourceService {
- @Resource
- private PipResourceTempDao tempDao;
-
- @Resource
- private PipResourceMachineDao machineDao;
-
- @Resource
- private PipResourceDockerEndpointDao dockerEndpointDao;
-
- @Resource
- private PipResourceK8SDao k8SDao;
-
- @Resource
- private PipResourceCloudDao cloudDao;
-
- @Resource
- private AdminUserServiceImpl adminUserService;
- @Autowired
- private PipResourceDockerEndpointDao pipResourceDockerEndpointDao;
-
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public String createResource(ResourceReq resourceReq) {
- if (ObjectUtils.isEmpty(resourceReq.getResourceName())){
- throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"资源类型不可为空");
- }
-
- PipResourceTemp pipResourceTemp = new PipResourceTemp();
- pipResourceTemp.setResourceName(resourceReq.getResourceName());
- pipResourceTemp.setResourceType(resourceReq.getResourceType());
-
- //如果资源类型不属于弹性云,则新增,如果属于弹性云,则走申请流程
- if (resourceReq.getResourceType().equals(ResourceTypeEnum.MACHINE.getCode())){
-
- if (!ObjectUtils.isEmpty(resourceReq.getResourceMachine())){
- PipResourceMachine resourceMachine = resourceReq.getResourceMachine();
- machineDao.insert(resourceMachine);
-
- pipResourceTemp.setResourceId(resourceMachine.getId());
- }
- tempDao.insert(pipResourceTemp);
-
- }else if (resourceReq.getResourceType().equals(ResourceTypeEnum.K8S.getCode())) {
-
- if (!ObjectUtils.isEmpty(resourceReq.getPipResourceK8S())) {
- PipResourceK8S pipResourceK8S = resourceReq.getPipResourceK8S();
- k8SDao.insert(pipResourceK8S);
-
- pipResourceTemp.setResourceId(pipResourceK8S.getId());
- }
- tempDao.insert(pipResourceTemp);
-
- }else if (resourceReq.getResourceType().equals(ResourceTypeEnum.DOCKER.getCode())) {
-
- if (!ObjectUtils.isEmpty(resourceReq.getDockerEndpoint())) {
- PipelineDockerEndpoint dockerEndpoint = resourceReq.getDockerEndpoint();
- dockerEndpointDao.insert(dockerEndpoint);
-
- pipResourceTemp.setResourceId(dockerEndpoint.getId());
- }
- tempDao.insert(pipResourceTemp);
-
- }else if (resourceReq.getResourceType().equals(ResourceTypeEnum.CLOUD.getCode())){
- PipResourceCloud pipResourceCloud = resourceReq.getPipResourceCloud();
- cloudDao.insert(pipResourceCloud);
-
- pipResourceTemp.setResourceId(pipResourceCloud.getId());
-
- }
-
- return pipResourceTemp.getId();
- }
-
- @Override
- public void deleteResource(String id) {
- PipResourceTemp pipResourceTemp = tempDao.selectById(id);
- if (pipResourceTemp.getResourceType().equals(ResourceTypeEnum.MACHINE.getCode())){
- machineDao.deleteById(pipResourceTemp.getResourceId());
- }else if (pipResourceTemp.getResourceType().equals(ResourceTypeEnum.K8S.getCode())) {
- k8SDao.deleteById(pipResourceTemp.getResourceId());
- }else if (pipResourceTemp.getResourceType().equals(ResourceTypeEnum.DOCKER.getCode())) {
- dockerEndpointDao.deleteById(pipResourceTemp.getResourceId());
- } else if (pipResourceTemp.getResourceType().equals(ResourceTypeEnum.CLOUD.getCode())) {
- cloudDao.deleteById(pipResourceTemp.getResourceId());
- }
- tempDao.deleteById(id);
- }
-
- @Override
- public void updateResource(ResourceReq resourceReq) {
- if (ObjectUtils.isEmpty(resourceReq.getResourceType())){
- throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"资源类型不可为空");
- }
-
- PipResourceTemp temp = tempDao.selectById(resourceReq.getId());
- temp.setResourceName(resourceReq.getResourceName());
-
- //先删除旧的资源信息
- if (temp.getResourceType().equals(ResourceTypeEnum.MACHINE.getCode())){
- machineDao.deleteById(temp.getResourceId());
-
- }else if (temp.getResourceType().equals(ResourceTypeEnum.K8S.getCode())) {
- k8SDao.deleteById(temp.getResourceId());
- if (!ObjectUtils.isEmpty(resourceReq.getPipResourceK8S())) {
- PipResourceK8S pipResourceK8S = resourceReq.getPipResourceK8S();
- k8SDao.updateById(pipResourceK8S);
- }
-
- }else if (temp.getResourceType().equals(ResourceTypeEnum.DOCKER.getCode())) {
- dockerEndpointDao.deleteById(temp.getResourceId());
- if (!ObjectUtils.isEmpty(resourceReq.getDockerEndpoint())) {
- PipelineDockerEndpoint dockerEndpoint = resourceReq.getDockerEndpoint();
- dockerEndpointDao.updateById(dockerEndpoint);
- }
-
- }else if (temp.getResourceType().equals(ResourceTypeEnum.CLOUD.getCode())){
- cloudDao.deleteById(temp.getResourceId());
- }
-
-
- //根据新资源信息新增
- if (resourceReq.getResourceType().equals(ResourceTypeEnum.MACHINE.getCode())){
-
- //新增
- if (!ObjectUtils.isEmpty(resourceReq.getResourceMachine())){
- PipResourceMachine resourceMachine = resourceReq.getResourceMachine();
- machineDao.insert(resourceMachine);
- temp.setResourceId(resourceMachine.getId());
- }
-
- }else if (resourceReq.getResourceType().equals(ResourceTypeEnum.K8S.getCode())){
-
- //新增
- if (!ObjectUtils.isEmpty(resourceReq.getPipResourceK8S())){
- PipResourceK8S resourceK8S = resourceReq.getPipResourceK8S();
- k8SDao.insert(resourceK8S);
- temp.setResourceId(resourceK8S.getId());
- }
-
- }else if (resourceReq.getResourceType().equals(ResourceTypeEnum.DOCKER.getCode())){
-
- //新增
- if (!ObjectUtils.isEmpty(resourceReq.getDockerEndpoint())){
- PipelineDockerEndpoint dockerEndpoint = resourceReq.getDockerEndpoint();
- dockerEndpointDao.insert(dockerEndpoint);
- temp.setResourceId(dockerEndpoint.getId());
- }
-
- }else if (resourceReq.getResourceType().equals(ResourceTypeEnum.CLOUD.getCode())){
-
- //新增
- if (!ObjectUtils.isEmpty(resourceReq.getPipResourceCloud())){
- PipResourceCloud resourceCloud = resourceReq.getPipResourceCloud();
- cloudDao.insert(resourceCloud);
- temp.setResourceId(resourceCloud.getId());
- }
-
- }
- temp.setResourceType(resourceReq.getResourceType());
- tempDao.updateById(temp);
- }
-
- @Override
- public ResourceFindResp findResourceById(String id) {
- ResourceFindResp resp = new ResourceFindResp();
-
- PipResourceTemp pipResourceTemp = tempDao.selectById(id);
- if (ObjectUtils.isEmpty(pipResourceTemp)){
- throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"资源不存在");
- }
- resp.setId(pipResourceTemp.getId());
- resp.setResourceType(pipResourceTemp.getResourceType());
- resp.setResourceId(pipResourceTemp.getResourceId());
- resp.setResourceName(pipResourceTemp.getResourceName());
-
- setResource(resp);
- setUserName(resp);
- return resp;
- }
-
-
-
- @Override
- public List findResourceList(ResourceQueryReq query) {
- QueryWrapper wrapper = new QueryWrapper<>();
- if (!ObjectUtils.isEmpty(query.getId())){
- wrapper.eq("id",query.getId());
- }
- if (!ObjectUtils.isEmpty(query.getIdList())){
- wrapper.in("id",query.getId());
- }
- if (!ObjectUtils.isEmpty(query.getResourceName())){
- wrapper.like("resource_name",query.getResourceName());
- }
- if (!ObjectUtils.isEmpty(query.getResourceId())){
- wrapper.eq("resource_id",query.getResourceId());
- }
- if (!ObjectUtils.isEmpty(query.getResourceType())){
- wrapper.eq("resource_type",query.getResourceType());
- }
- if (!ObjectUtils.isEmpty(query.getCreator())){
- wrapper.eq("creator",query.getCreator());
- }
- List pipResourceTempList = tempDao.selectList(wrapper);
-
- if (ObjectUtils.isEmpty(pipResourceTempList)){
- return new ArrayList<>(0);
- }
-
- List respList = ResourceConverter.INSTANCE.toRespList(pipResourceTempList);
-
- //对资源进行赋值
- respList.forEach(this::setResource);
- respList.forEach(this::setUserName);
-
- return respList;
- }
-
- @Override
- public PageResult findResourcePage(ResourceQueryReq query) {
- Page respPage = new Page<>();
-
- QueryWrapper wrapper = new QueryWrapper<>();
- if (!ObjectUtils.isEmpty(query.getId())){
- wrapper.eq("id",query.getId());
- }
- if (!ObjectUtils.isEmpty(query.getIdList())){
- wrapper.in("id",query.getId());
- }
- if (!ObjectUtils.isEmpty(query.getResourceName())){
- wrapper.like("resource_name",query.getResourceName());
- }
- if (!ObjectUtils.isEmpty(query.getResourceId())){
- wrapper.eq("resource_id",query.getResourceId());
- }
- if (!ObjectUtils.isEmpty(query.getResourceType())){
- wrapper.eq("resource_type",query.getResourceType());
- }
- if (!ObjectUtils.isEmpty(query.getCreator())){
- wrapper.eq("creator",query.getCreator());
- }
- Page pipResourceTempPage = tempDao.selectPage(new Page<>(query.getPageNo(), query.getPageSize()), wrapper);
-
- if (ObjectUtils.isEmpty(pipResourceTempPage)){
- return new PageResult<>();
- }
-
- List respList = ResourceConverter.INSTANCE.toRespList(pipResourceTempPage.getRecords());
-
- //对资源进行赋值
- respList.forEach(this::setResource);
- respList.forEach(this::setUserName);
-
- respPage.setRecords(respList);
- respPage.setTotal(pipResourceTempPage.getTotal());
- respPage.setCurrent(pipResourceTempPage.getCurrent());
- respPage.setSize(pipResourceTempPage.getSize());
- PageResult pageResult = new PageResult<>(respList,pipResourceTempPage.getTotal());
- return pageResult;
- }
-
- private void setResource(ResourceFindResp resourceFindResp) {
- if (resourceFindResp.getResourceType().equals(ResourceTypeEnum.MACHINE.getCode())){
- PipResourceMachine resourceMachine = machineDao.selectById(resourceFindResp.getResourceId());
- resourceFindResp.setResourceMachine(resourceMachine);
- }else if (resourceFindResp.getResourceType().equals(ResourceTypeEnum.K8S.getCode())) {
- PipResourceK8S pipResourceK8S = k8SDao.selectById(resourceFindResp.getResourceId());
- resourceFindResp.setPipResourceK8S(pipResourceK8S);
- }else if (resourceFindResp.getResourceType().equals(ResourceTypeEnum.DOCKER.getCode())) {
- PipelineDockerEndpoint dockerEndpoint = dockerEndpointDao.selectById(resourceFindResp.getResourceId());
- resourceFindResp.setDockerEndpoint(dockerEndpoint);
- }else if (resourceFindResp.getResourceType().equals(ResourceTypeEnum.CLOUD.getCode())) {
- PipResourceCloud resourceCloud = cloudDao.selectById(resourceFindResp.getResourceId());
- resourceFindResp.setPipResourceCloud(resourceCloud);
- }
- }
-
-
- private void setUserName(ResourceFindResp resp) {
- if (!StringUtils.isEmpty(resp.getCreator())){
- AdminUserDO user = adminUserService.getUser(Long.valueOf(resp.getCreator()));
- if (!ObjectUtils.isEmpty(user)){
- resp.setCreatorName(user.getUsername());
- }
- }
-
- if (!StringUtils.isEmpty(resp.getUpdater())){
- AdminUserDO user = adminUserService.getUser(Long.valueOf(resp.getUpdater()));
- if (!ObjectUtils.isEmpty(user)){
- resp.setUpdaterName(user.getUsername());
- }
- }
- }
-}
diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/target/TargetManagerService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/target/TargetManagerService.java
index d950533b..983403f7 100644
--- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/target/TargetManagerService.java
+++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/target/TargetManagerService.java
@@ -4,6 +4,7 @@ package cd.casic.ci.process.process.service.target;
import cd.casic.ci.process.dal.req.target.TargetManagerCreateReq;
import cd.casic.ci.process.dal.req.target.TargetManagerUpdateReq;
import cd.casic.ci.process.dal.req.target.TargetQueryReq;
+import cd.casic.ci.process.dal.req.target.TargetUploadReq;
import cd.casic.ci.process.dal.resp.target.TargetManagerResp;
import cd.casic.ci.process.process.dataObject.base.BaseIdReq;
import cd.casic.ci.process.process.dataObject.target.TargetManager;
@@ -30,4 +31,6 @@ public interface TargetManagerService extends IService {
PageResult findTargetPage(@Valid TargetQueryReq query);
List findTargetList(@Valid TargetQueryReq query);
+
+ String fileUpload(@Valid TargetUploadReq req);
}
diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/target/impl/TargetManagerServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/target/impl/TargetManagerServiceImpl.java
index f76c4827..b34f653a 100644
--- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/target/impl/TargetManagerServiceImpl.java
+++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/target/impl/TargetManagerServiceImpl.java
@@ -4,6 +4,7 @@ package cd.casic.ci.process.process.service.target.impl;
import cd.casic.ci.process.dal.req.target.TargetManagerCreateReq;
import cd.casic.ci.process.dal.req.target.TargetManagerUpdateReq;
import cd.casic.ci.process.dal.req.target.TargetQueryReq;
+import cd.casic.ci.process.dal.req.target.TargetUploadReq;
import cd.casic.ci.process.dal.resp.target.TargetManagerResp;
import cd.casic.ci.process.process.converter.TargetConverter;
import cd.casic.ci.process.process.dal.pipeline.TargetManagerDao;
@@ -17,6 +18,7 @@ import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants;
import cd.casic.framework.commons.pojo.PageResult;
import cd.casic.framework.commons.util.object.BeanUtils;
import cd.casic.framework.commons.util.util.WebFrameworkUtils;
+import cd.casic.module.infra.framework.file.core.client.ftp.FtpFileClient;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -26,8 +28,11 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.FileCopyUtils;
import org.springframework.util.ObjectUtils;
+import java.io.FileInputStream;
+import java.io.IOException;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@@ -52,6 +57,9 @@ public class TargetManagerServiceImpl extends ServiceImpl createResource(@RequestBody @Valid ResourceReq resourceReq){
- String resourceId = resourceService.createResource(resourceReq);
+ String resourceId = resourceManagerService.createResource(resourceReq);
return CommonResult.success(resourceId);
}
@@ -44,7 +44,7 @@ public class ResourceController {
@PostMapping(path="/deleteResource")
public CommonResult deleteResource(@RequestBody @Valid BaseIdReq req){
- resourceService.deleteResource(req.getId());
+ resourceManagerService.deleteResource(req.getId());
return CommonResult.success();
}
@@ -52,7 +52,7 @@ public class ResourceController {
@PostMapping(path="/findResourceList")
public CommonResult> findResourceList(@RequestBody @Valid ResourceQueryReq req){
- List ResourceFindRespList = resourceService.findResourceList(req);
+ List ResourceFindRespList = resourceManagerService.findResourceList(req);
return CommonResult.success(ResourceFindRespList);
}
@@ -62,7 +62,7 @@ public class ResourceController {
@PostMapping(path="/updateResource")
public CommonResult updateResource(@RequestBody @NotNull @Valid ResourceReq resourceReq){
- resourceService.updateResource(resourceReq);
+ resourceManagerService.updateResource(resourceReq);
return CommonResult.success();
}
@@ -71,7 +71,7 @@ public class ResourceController {
@PostMapping(path="/findResourcePage")
public CommonResult> findResourcePage(@RequestBody @NotNull @Valid ResourceQueryReq req){
- PageResult respPage = resourceService.findResourcePage(req);
+ PageResult respPage = resourceManagerService.findResourcePage(req);
return CommonResult.success(respPage);
}
@@ -79,7 +79,7 @@ public class ResourceController {
@PostMapping(path="/findResourceById")
public CommonResult findResourceById(@RequestBody @Valid BaseIdReq req){
- ResourceFindResp resp = resourceService.findResourceById(req.getId());
+ ResourceFindResp resp = resourceManagerService.findResourceById(req.getId());
return CommonResult.success(resp);
}
diff --git a/ops-server/src/main/java/cd/casic/server/controller/TargetController.java b/ops-server/src/main/java/cd/casic/server/controller/TargetController.java
index 5e69ffe6..8a520159 100644
--- a/ops-server/src/main/java/cd/casic/server/controller/TargetController.java
+++ b/ops-server/src/main/java/cd/casic/server/controller/TargetController.java
@@ -4,6 +4,7 @@ package cd.casic.server.controller;
import cd.casic.ci.process.dal.req.target.TargetManagerCreateReq;
import cd.casic.ci.process.dal.req.target.TargetManagerUpdateReq;
import cd.casic.ci.process.dal.req.target.TargetQueryReq;
+import cd.casic.ci.process.dal.req.target.TargetUploadReq;
import cd.casic.ci.process.dal.resp.target.TargetManagerResp;
import cd.casic.ci.process.process.dataObject.base.BaseIdReq;
import cd.casic.ci.process.process.dataObject.target.TargetVersion;
@@ -88,4 +89,13 @@ public class TargetController {
return CommonResult.success(respList);
}
+
+
+ @PostMapping(path="/fileUpload")
+ public CommonResult fileUpload(@RequestBody @Valid TargetUploadReq req){
+
+ String filePath = targetManagerService.fileUpload(req);
+
+ return CommonResult.success(filePath);
+ }
}