diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/ExternalSystemApiController.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/ExternalSystemApiController.java index a9e318d4..dfdc380c 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/ExternalSystemApiController.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/ExternalSystemApiController.java @@ -44,15 +44,6 @@ public class ExternalSystemApiController extends BaseController syncData( - @Parameter(description = "系统ID", required = true) @PathVariable Long id - ) { - externalSystemService.syncData(id); - return Response.success(); - } - @Operation(summary = "更新状态") @PutMapping("/{id}/status") public Response updateStatus( diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/RepositoryGroupApiController.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/RepositoryGroupApiController.java new file mode 100644 index 00000000..268da625 --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/api/RepositoryGroupApiController.java @@ -0,0 +1,28 @@ +package com.qqchen.deploy.backend.deploy.api; + +import com.qqchen.deploy.backend.framework.controller.BaseController; +import com.qqchen.deploy.backend.deploy.entity.RepositoryGroup; +import com.qqchen.deploy.backend.deploy.dto.RepositoryGroupDTO; +import com.qqchen.deploy.backend.deploy.query.RepositoryGroupQuery; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import jakarta.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * GIT分组 Controller + */ +@Slf4j +@RestController +@RequestMapping("/api/v1/repo-group") +@Tag(name = "GIT分组管理", description = "GIT分组管理相关接口") +public class RepositoryGroupApiController extends BaseController { + + @Override + protected void exportData(HttpServletResponse response, List data) { + // TODO: 实现导出逻辑 + log.info("导出GIT分组数据,数据量:{}", data.size()); + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/converter/RepositoryGroupConverter.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/converter/RepositoryGroupConverter.java new file mode 100644 index 00000000..300005bd --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/converter/RepositoryGroupConverter.java @@ -0,0 +1,13 @@ +package com.qqchen.deploy.backend.deploy.converter; + +import com.qqchen.deploy.backend.framework.converter.BaseConverter; +import com.qqchen.deploy.backend.deploy.entity.RepositoryGroup; +import com.qqchen.deploy.backend.deploy.dto.RepositoryGroupDTO; +import org.mapstruct.Mapper; + +/** + * GIT分组 Converter + */ +@Mapper(config = BaseConverter.class) +public interface RepositoryGroupConverter extends BaseConverter { +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/RepositoryGroupDTO.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/RepositoryGroupDTO.java new file mode 100644 index 00000000..a1e1f98d --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/RepositoryGroupDTO.java @@ -0,0 +1,65 @@ +package com.qqchen.deploy.backend.deploy.dto; + +import com.qqchen.deploy.backend.framework.dto.BaseDTO; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +/** + * GIT分组 DTO + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class RepositoryGroupDTO extends BaseDTO { + + /** + * 仓库组名 + */ + private String name; + + /** + * 仓库组描述 + */ + private String description; + + /** + * 外部系统中的组ID + */ + private Long groupId; + + /** + * 父级仓库组ID + */ + private Long parentId; + + /** + * 仓库组路径 + */ + private String path; + + /** + * 外部系统ID + */ + private Long externalSystemId; + + /** + * 头像URL + */ + private String avatarUrl; + + /** + * 网页URL + */ + private String webUrl; + + private String visibility; + + /** + * 排序号 + */ + private Integer sort; + + private Boolean enabled; + +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/RepositoryBranch.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/RepositoryBranch.java index 6ea16879..5e113e1e 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/RepositoryBranch.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/RepositoryBranch.java @@ -12,46 +12,47 @@ import java.time.LocalDateTime; @Data @EqualsAndHashCode(callSuper = true) @jakarta.persistence.Entity -@Table(name = "deploy_repository_branch") +@Table(name = "deploy_repo_branch") @LogicDelete public class RepositoryBranch extends Entity { - - @Column(name = "external_system_id") - private Long externalSystemId; - - @Column(name = "project_id", nullable = false) - private Long projectId; - + @Column(nullable = false) private String name; - + @Column(name = "commit_id") private String commitId; - + @Column(name = "commit_message", columnDefinition = "TEXT") private String commitMessage; - + @Column(name = "commit_author") private String commitAuthor; - + @Column(name = "commit_date") private LocalDateTime commitDate; - + @Column(name = "is_protected") private Boolean isProtected = false; - + @Column(name = "developers_can_push") private Boolean developersCanPush = true; - + @Column(name = "developers_can_merge") private Boolean developersCanMerge = true; - + @Column(name = "can_push") private Boolean canPush = true; - + @Column(name = "is_default_branch") private Boolean isDefaultBranch = false; - + @Column(name = "web_url") private String webUrl; -} \ No newline at end of file + + @Column(name = "project_id", nullable = false) + private Long projectId; + + @Column(name = "external_system_id") + private Long externalSystemId; + +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/RepositoryGroup.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/RepositoryGroup.java index 1118ef20..9adc4fce 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/RepositoryGroup.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/RepositoryGroup.java @@ -19,34 +19,27 @@ import lombok.EqualsAndHashCode; @Table(name = "deploy_repo_group") @LogicDelete public class RepositoryGroup extends Entity { - - @Column(name = "external_system_id") - private Long externalSystemId; - - @Column(name = "group_id", nullable = false) - private Long groupId; - + @Column(nullable = false) private String name; - + @Column(nullable = false) private String path; - + private String description; - + private String visibility; - + @Column(name = "parent_id") private Long parentId; - + @Column(name = "web_url") private String webUrl; - + @Column(name = "avatar_url") private String avatarUrl; - - @Column(nullable = false) - private Boolean enabled = true; - - private Integer sort = 0; -} \ No newline at end of file + + @Column(name = "external_system_id") + private Long externalSystemId; + +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/RepositoryProject.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/RepositoryProject.java index f29d2d9c..4399c66f 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/RepositoryProject.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/RepositoryProject.java @@ -12,46 +12,42 @@ import java.time.LocalDateTime; @Data @EqualsAndHashCode(callSuper = true) @jakarta.persistence.Entity -@Table(name = "deploy_repository_project") +@Table(name = "deploy_repo_project") @LogicDelete public class RepositoryProject extends Entity { - - @Column(name = "external_system_id") - private Long externalSystemId; - - @Column(name = "project_id", nullable = false) - private Long projectId; - + + @Column(nullable = false) private String name; - + @Column(nullable = false) private String path; - + private String description; - + private String visibility; - + @Column(name = "group_id") private Long groupId; - + @Column(name = "is_default_branch") private String isDefaultBranch; - + @Column(name = "web_url") private String webUrl; - + @Column(name = "ssh_url") private String sshUrl; - + @Column(name = "http_url") private String httpUrl; - + @Column(name = "last_activity_at") private LocalDateTime lastActivityAt; - - @Column(nullable = false) - private Boolean enabled = true; - - private Integer sort = 0; + + @Column(name = "external_system_id") + private Long externalSystemId; + + @Column(name = "project_id", nullable = false) + private Long projectId; } \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/RepositorySyncHistory.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/RepositorySyncHistory.java index b7bc3482..06d2e5ff 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/RepositorySyncHistory.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/RepositorySyncHistory.java @@ -14,7 +14,7 @@ import java.time.LocalDateTime; @Data @EqualsAndHashCode(callSuper = true) @jakarta.persistence.Entity -@Table(name = "deploy_repository_sync_history") +@Table(name = "deploy_repo_sync_history") @LogicDelete public class RepositorySyncHistory extends Entity { diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/query/RepositoryGroupQuery.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/query/RepositoryGroupQuery.java new file mode 100644 index 00000000..a0f6dbf5 --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/query/RepositoryGroupQuery.java @@ -0,0 +1,83 @@ +package com.qqchen.deploy.backend.deploy.query; + +import com.qqchen.deploy.backend.framework.annotation.QueryField; +import com.qqchen.deploy.backend.framework.enums.QueryType; +import com.qqchen.deploy.backend.framework.query.BaseQuery; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.time.LocalDateTime; + +/** + * GIT分组查询对象 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class RepositoryGroupQuery extends BaseQuery { + + /** + * 仓库组名 + */ + @QueryField(field = "name", type = QueryType.LIKE) + private String name; + + /** + * 仓库组描述 + */ + @QueryField(field = "description", type = QueryType.LIKE) + private String description; + + /** + * 外部系统中的组ID + */ + @QueryField(field = "group_id") + private Long groupId; + + /** + * 父级仓库组ID + */ + @QueryField(field = "parent_id") + private Long parentId; + + /** + * 仓库组路径 + */ + @QueryField(field = "path", type = QueryType.LIKE) + private String path; + + /** + * 外部系统ID + */ + @QueryField(field = "external_system_id") + private Long externalSystemId; + + /** + * 头像URL + */ + @QueryField(field = "avatar_url", type = QueryType.LIKE) + private String avatarUrl; + + /** + * 网页URL + */ + @QueryField(field = "web_url", type = QueryType.LIKE) + private String webUrl; + + @QueryField(field = "visibility", type = QueryType.LIKE) + private String visibility; + + /** + * 排序号 + */ + @QueryField(field = "sort") + private Integer sort; + + @QueryField(field = "enabled") + private Boolean enabled; + + /** + * 外部系统下路径唯一 + */ + @QueryField(field = "path)", type = QueryType.LIKE) + private String path); + +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/repository/IRepositoryGroupRepository.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/repository/IRepositoryGroupRepository.java index 926e8c41..ab1713f7 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/repository/IRepositoryGroupRepository.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/repository/IRepositoryGroupRepository.java @@ -2,21 +2,11 @@ package com.qqchen.deploy.backend.deploy.repository; import com.qqchen.deploy.backend.framework.repository.IBaseRepository; import com.qqchen.deploy.backend.deploy.entity.RepositoryGroup; -import org.springframework.data.jpa.repository.Modifying; import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; +/** + * GIT分组 Repository + */ @Repository public interface IRepositoryGroupRepository extends IBaseRepository { - - @Modifying - @Transactional - void deleteByExternalSystemId(Long externalSystemId); - - Optional findByExternalSystemIdAndGroupId(Long externalSystemId, Long groupId); - - List findByExternalSystemIdAndDeletedFalseOrderBySortAsc(Long externalSystemId); } \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IExternalSystemService.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IExternalSystemService.java index 22e0558c..11a419ba 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IExternalSystemService.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/IExternalSystemService.java @@ -15,13 +15,7 @@ public interface IExternalSystemService extends IBaseService { +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/ExternalSystemServiceImpl.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/ExternalSystemServiceImpl.java index 30f2993c..c398e294 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/ExternalSystemServiceImpl.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/ExternalSystemServiceImpl.java @@ -121,36 +121,6 @@ public class ExternalSystemServiceImpl extends BaseServiceImpl syncJenkinsData(system); - case GIT -> syncGitData(system); - case ZENTAO -> syncZentaoData(system); - } - - system.setSyncStatus(ExternalSystemSyncStatusEnum.SUCCESS); - system.setLastSyncTime(LocalDateTime.now()); - } catch (Exception e) { - system.setSyncStatus(ExternalSystemSyncStatusEnum.FAILED); - log.error("Sync data failed for external system: {}", system.getName(), e); - throw new BusinessException(ResponseCode.EXTERNAL_SYSTEM_SYNC_FAILED); - } finally { - externalSystemRepository.save(system); - } - } - @Override @Transactional public void updateStatus(Long id, boolean enabled) { @@ -159,29 +129,4 @@ public class ExternalSystemServiceImpl extends BaseServiceImpl + implements IRepositoryGroupService { +} \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/fromVariables/BaseDeployNodeFormVariables.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/fromVariables/BaseDeployNodeFormVariables.java index 6af54ba7..6ba0393c 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/fromVariables/BaseDeployNodeFormVariables.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/fromVariables/BaseDeployNodeFormVariables.java @@ -4,7 +4,7 @@ import com.qqchen.deploy.backend.workflow.annotation.SchemaProperty; import lombok.Data; /** - * 事件节点基础配置 + * 每次使用基本都是会变的变量 */ @Data public class BaseDeployNodeFormVariables { diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/localVariables/BaseNodeLocalVariables.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/localVariables/BaseNodeLocalVariables.java index 44098776..e817182d 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/localVariables/BaseNodeLocalVariables.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/localVariables/BaseNodeLocalVariables.java @@ -4,7 +4,7 @@ import com.qqchen.deploy.backend.workflow.annotation.SchemaProperty; import lombok.Data; /** - * 事件节点基础配置 + * 系统需要使用的变量 */ @Data public class BaseNodeLocalVariables { diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/panelVariables/BaseNodePanelVariables.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/panelVariables/BaseNodePanelVariables.java index f401e9ee..f193768d 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/panelVariables/BaseNodePanelVariables.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/panelVariables/BaseNodePanelVariables.java @@ -4,7 +4,7 @@ import com.qqchen.deploy.backend.workflow.annotation.SchemaProperty; import lombok.Data; /** - * 事件节点基础配置 + * 节点可配置变量(比如:配置一次就不需要再变) */ @Data public class BaseNodePanelVariables { diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowInstanceServiceImpl.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowInstanceServiceImpl.java index 49cb1dcc..f2bf39b7 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowInstanceServiceImpl.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowInstanceServiceImpl.java @@ -175,8 +175,7 @@ public class WorkflowInstanceServiceImpl extends BaseServiceImpl new RuntimeException("Workflow definition process key not found: " + request.getProcessKey())); + WorkflowDefinition workflowDefinition = workflowDefinitionRepository.findByKey(request.getProcessKey()).orElseThrow(() -> new RuntimeException("Workflow definition process key not found: " + request.getProcessKey())); ProcessInstance processInstance = runtimeService.createProcessInstanceBuilder() .processDefinitionKey(request.getProcessKey()) .businessKey(request.getBusinessKey())