From 0d63456fb9470ff238dfce6ecd780eba90fd2284 Mon Sep 17 00:00:00 2001 From: OTTO <731554297@qq.com> Date: Thu, 23 Jan 2025 11:19:17 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E4=BA=A7=E5=93=81=E5=BA=93=E4=BC=98?= =?UTF-8?q?=E5=8C=96):=20=E4=BA=A7=E5=93=81=E5=BA=93=E5=BA=94=E5=BD=93?= =?UTF-8?q?=E5=8C=BA=E5=88=86=E6=96=87=E6=A1=A3=E4=B8=8E=E5=88=B6=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 普通制品和Docker制品移入产品库时默认添加前缀Software 2. 文档制品移入产品库时默认添加前缀Document 关联Issue:https://pm.gitlink.org.cn/Gitlink/projects/228/demand/124517 Signed-off-by: OTTO <731554297@qq.com> --- .../ProductLibraryComponentPathEnum.java | 42 +++++++++++++++++++ ...va => ProductLibraryRepoFromTypeEnum.java} | 8 ++-- .../domain/vo/ProductDocComponentInputVo.java | 4 +- .../impl/PmsProductLibraryServiceImpl.java | 20 ++++++++- 4 files changed, 66 insertions(+), 8 deletions(-) create mode 100644 microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/enums/ProductLibraryComponentPathEnum.java rename microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/enums/{FromTypeEnum.java => ProductLibraryRepoFromTypeEnum.java} (70%) diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/enums/ProductLibraryComponentPathEnum.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/enums/ProductLibraryComponentPathEnum.java new file mode 100644 index 000000000..08f4e0a6c --- /dev/null +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/enums/ProductLibraryComponentPathEnum.java @@ -0,0 +1,42 @@ +package com.microservices.pms.enums; + +import com.microservices.common.core.exception.ServiceException; +import com.microservices.common.core.utils.html.EscapeUtil; +import io.swagger.annotations.ApiModel; +import lombok.Getter; + +/** + * @author OTTO + */ +@Getter +@ApiModel("产品库制品路径前缀") +public enum ProductLibraryComponentPathEnum { + SOFTWARE("Software", "软件包"), + DOC("Document", "文档"); + + private final String key; + private final String name; + + ProductLibraryComponentPathEnum(String key, String name) { + this.key = key; + this.name = name; + } + + + public static ProductLibraryComponentPathEnum getByKey(String key) { + for (ProductLibraryComponentPathEnum typeEnum : ProductLibraryComponentPathEnum.values()) { + if (typeEnum.key.equals(key)) { + return typeEnum; + } + } + throw new ServiceException("该产品库制品路径前缀不存在(产品库制品路径前缀[%s])", key); + } + + public static String getSoftwareFixedPath(String directory) { + return EscapeUtil.removeExtraSlashOfUrl(SOFTWARE.key + "/" + directory); + } + + public static String getDocFixedPath(String directory) { + return EscapeUtil.removeExtraSlashOfUrl(DOC.key + "/" + directory); + } +} diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/enums/FromTypeEnum.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/enums/ProductLibraryRepoFromTypeEnum.java similarity index 70% rename from microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/enums/FromTypeEnum.java rename to microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/enums/ProductLibraryRepoFromTypeEnum.java index 654756b37..733760456 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/enums/FromTypeEnum.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/enums/ProductLibraryRepoFromTypeEnum.java @@ -9,7 +9,7 @@ import lombok.Getter; */ @Getter @ApiModel("来源类型") -public enum FromTypeEnum { +public enum ProductLibraryRepoFromTypeEnum { COMMON("common", "普通类型"), PIPELINE("pipeline", "流水线类型"), DOC("doc", "文档类型"); @@ -17,14 +17,14 @@ public enum FromTypeEnum { private final String key; private final String name; - FromTypeEnum(String key, String name) { + ProductLibraryRepoFromTypeEnum(String key, String name) { this.key = key; this.name = name; } - public static FromTypeEnum getByKey(String key) { - for (FromTypeEnum typeEnum : FromTypeEnum.values()) { + public static ProductLibraryRepoFromTypeEnum getByKey(String key) { + for (ProductLibraryRepoFromTypeEnum typeEnum : ProductLibraryRepoFromTypeEnum.values()) { if (typeEnum.key.equals(key)) { return typeEnum; } diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/ProductDocComponentInputVo.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/ProductDocComponentInputVo.java index e1ebfecc7..ef7888e9a 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/ProductDocComponentInputVo.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/ProductDocComponentInputVo.java @@ -1,7 +1,7 @@ package com.microservices.pms.productLibrary.domain.vo; import com.microservices.common.core.utils.bean.BeanUtils; -import com.microservices.pms.enums.FromTypeEnum; +import com.microservices.pms.enums.ProductLibraryRepoFromTypeEnum; import com.microservices.pms.productLibrary.domain.ProductLibraryRepositoriesFormatEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -44,7 +44,7 @@ public class ProductDocComponentInputVo { BeanUtils.copyProperties(this, target); target.setRepoName(productRepoName); target.setAssetList(assetList); - target.setFromType(FromTypeEnum.DOC.getKey()); + target.setFromType(ProductLibraryRepoFromTypeEnum.DOC.getKey()); return target; } diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/service/impl/PmsProductLibraryServiceImpl.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/service/impl/PmsProductLibraryServiceImpl.java index 1261deb82..661424267 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/service/impl/PmsProductLibraryServiceImpl.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/service/impl/PmsProductLibraryServiceImpl.java @@ -15,7 +15,8 @@ import com.microservices.pms.document.domain.vo.PmsDocumentVo; import com.microservices.pms.document.service.IPmsDocumentService; import com.microservices.pms.enterprise.domain.PmsEnterprise; import com.microservices.pms.enterprise.service.IPmsEnterpriseService; -import com.microservices.pms.enums.FromTypeEnum; +import com.microservices.pms.enums.ProductLibraryComponentPathEnum; +import com.microservices.pms.enums.ProductLibraryRepoFromTypeEnum; import com.microservices.pms.product.domain.PmsProduct; import com.microservices.pms.product.service.IPmsProductService; import com.microservices.pms.productLibrary.domain.PmsProductLibraryComponent; @@ -83,6 +84,9 @@ public class PmsProductLibraryServiceImpl implements IPmsProductLibraryService { @Autowired private IPmsProductService pmsProductService; + public final static String DOC_TYPE_PATH = "Document"; + public final static String SOFTWARE_TYPE_PATH = "Software"; + @Override public GenericsTableDataInfo selectComponentList(PmsProductLibraryComponentSearchVo search) { List pmsProductLibraryComponentList = @@ -108,7 +112,7 @@ public class PmsProductLibraryServiceImpl implements IPmsProductLibraryService { String.format("%s/%s", repo.getUrl(), component.getPath())))); pmsCommonService.setBaseEntityVo(pmsProductLibraryComponentDataVo, component); pmsProductLibraryComponentDataVo.setFromType( - FromTypeEnum.getByKey(component.getFromType()).getName() + ProductLibraryRepoFromTypeEnum.getByKey(component.getFromType()).getName() ); return pmsProductLibraryComponentDataVo; } @@ -210,6 +214,10 @@ public class PmsProductLibraryServiceImpl implements IPmsProductLibraryService { PmsProductLibraryRepositories repo = selectPmsProductLibraryByName(productDocComponentInputVo.getEnterpriseIdentifier(), productDocComponentInputVo.getProductRepoName()); + // 产品库制品添加默认前缀 + productDocComponentInputVo.setDirectory(ProductLibraryComponentPathEnum.getDocFixedPath( + productDocComponentInputVo.getDirectory() + )); List assetList = new ArrayList<>(); PmsEnterprise pmsEnterprise = pmsEnterpriseService.selectPmsEnterpriseByIdentifier(productDocComponentInputVo.getEnterpriseIdentifier()); for (Long docId : productDocComponentInputVo.getDocList()) { @@ -342,6 +350,10 @@ public class PmsProductLibraryServiceImpl implements IPmsProductLibraryService { if (ProductLibraryRepositoriesFormatEnum.DOCKER.getKey().equals(repo.getFormat())) { throw new ServiceException("Docker制品移入不能使用该接口"); } + // 产品库制品添加默认前缀 + commonAssetAddToProductRepoVo.setDirectory(ProductLibraryComponentPathEnum.getSoftwareFixedPath( + commonAssetAddToProductRepoVo.getDirectory() + )); List nexusAssetResultDataVoList = new ArrayList<>(); for (String assetId : commonAssetAddToProductRepoVo.getAssetIdList()) { NexusComponentResultVo nexusAssetResultVo = pmsProductLibraryComponentService.getAssetDetailByAssetId(commonAssetAddToProductRepoVo.getEnterpriseIdentifier(), commonAssetAddToProductRepoVo.getRepoName(), null, assetId, false); @@ -438,6 +450,10 @@ public class PmsProductLibraryServiceImpl implements IPmsProductLibraryService { if (!ProductLibraryRepositoriesFormatEnum.DOCKER.getKey().equals(repo.getFormat())) { throw new ServiceException("当前接口仅允许进行Docker移入产品库操作"); } + // 产品库制品添加默认前缀 + dockerComponentAddToProductRepoVo.setDirectory(ProductLibraryComponentPathEnum.getSoftwareFixedPath( + dockerComponentAddToProductRepoVo.getDirectory() + )); List nexusComponentResultDataVoList = new ArrayList<>(); for (String componentId : dockerComponentAddToProductRepoVo.getComponentIdList()) { NexusComponentResultVo nexusAssetResultVo = pmsProductLibraryComponentService.getComponentDetailByComponentId(dockerComponentAddToProductRepoVo.getEnterpriseIdentifier(), dockerComponentAddToProductRepoVo.getRepoName(), null, componentId, false);