From 80a065f2a38fd0ec8ad62179533a68da7ff283f2 Mon Sep 17 00:00:00 2001 From: OTTO <731554297@qq.com> Date: Tue, 2 Jul 2024 14:59:58 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=88=B6=E5=93=81=E5=BA=93=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=BC=80=E5=8F=91):=20=E9=92=88=E5=AF=B9=E5=90=84?= =?UTF-8?q?=E7=A7=8D=E6=A0=BC=E5=BC=8F=E7=9A=84=E5=88=B6=E5=93=81=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E5=BC=80=E5=8F=91=E6=8E=A5=E5=8F=A3(=E5=BC=80?= =?UTF-8?q?=E5=8F=91Maven=E5=88=B6=E5=93=81=E4=B8=8A=E4=BC=A0=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增Maven制品上传接口: 1. 上传Body由原本的form-data转换为json,保障微服务统一性 2. 文件由原本的实体上传调整为前端先调用上传文件接口再用返回的文件标识作为载体一起上传 3. 支持多制品文件上传 --- .../PmsProductLibraryComponentController.java | 45 ++++++++--------- .../domain/vo/AssetMavenInputVo.java | 26 ++++++++++ .../domain/vo/ComponentMavenInputVo.java | 50 +++++++++++++++++++ 3 files changed, 97 insertions(+), 24 deletions(-) create mode 100644 microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/AssetMavenInputVo.java create mode 100644 microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/ComponentMavenInputVo.java diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/controller/PmsProductLibraryComponentController.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/controller/PmsProductLibraryComponentController.java index 6c5d9c778..8e815a9b0 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/controller/PmsProductLibraryComponentController.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/controller/PmsProductLibraryComponentController.java @@ -1,18 +1,18 @@ package com.microservices.pms.productLibrary.controller; -import com.microservices.common.core.utils.poi.ExcelUtil; import com.microservices.common.core.web.controller.BaseController; import com.microservices.common.core.web.domain.AjaxResult; import com.microservices.common.core.web.page.TableDataInfo; import com.microservices.common.log.annotation.Log; import com.microservices.common.log.enums.BusinessType; -import com.microservices.common.security.annotation.RequiresPermissions; import com.microservices.pms.productLibrary.domain.PmsProductLibraryComponent; +import com.microservices.pms.productLibrary.domain.vo.ComponentMavenInputVo; import com.microservices.pms.productLibrary.service.IPmsProductLibraryComponentService; +import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.util.List; /** @@ -22,7 +22,11 @@ import java.util.List; * @date 2024-06-27 */ @RestController -@RequestMapping("/pmsProductLibraryComponent") +@Api(tags = "制品库-制品相关接口") +@RequestMapping("/{enterpriseIdentifier}/pmsProductLibraryComponent") +@ApiImplicitParams({ + @ApiImplicitParam(name = "enterpriseIdentifier", value = "企业标识", paramType = "path", dataType = "String") +}) public class PmsProductLibraryComponentController extends BaseController { @Autowired private IPmsProductLibraryComponentService pmsProductLibraryComponentService; @@ -30,7 +34,7 @@ public class PmsProductLibraryComponentController extends BaseController { /** * 查询制品库-制品列表 */ - @RequiresPermissions("pms:pmsProductLibraryComponent:list") +// @RequiresPermissions("pms:pmsProductLibraryComponent:list") @GetMapping("/list") public TableDataInfo list(PmsProductLibraryComponent pmsProductLibraryComponent) { startPage(); @@ -38,22 +42,10 @@ public class PmsProductLibraryComponentController extends BaseController { return getDataTable(list); } - /** - * 导出制品库-制品列表 - */ - @RequiresPermissions("pms:pmsProductLibraryComponent:export") - @Log(title = "制品库-制品", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, PmsProductLibraryComponent pmsProductLibraryComponent) { - List list = pmsProductLibraryComponentService.selectPmsProductLibraryComponentList(pmsProductLibraryComponent); - ExcelUtil util = new ExcelUtil(PmsProductLibraryComponent.class); - util.exportExcel(response, list, "制品库-制品数据"); - } - /** * 获取制品库-制品详细信息 */ - @RequiresPermissions("pms:pmsProductLibraryComponent:query") +// @RequiresPermissions("pms:pmsProductLibraryComponent:query") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return success(pmsProductLibraryComponentService.selectPmsProductLibraryComponentById(id)); @@ -62,17 +54,22 @@ public class PmsProductLibraryComponentController extends BaseController { /** * 新增制品库-制品 */ - @RequiresPermissions("pms:pmsProductLibraryComponent:add") +// @RequiresPermissions("pms:pmsProductLibraryComponent:add") @Log(title = "制品库-制品", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody PmsProductLibraryComponent pmsProductLibraryComponent) { - return toAjax(pmsProductLibraryComponentService.insertPmsProductLibraryComponent(pmsProductLibraryComponent)); + @PostMapping("/{repoName}/maven") + @ApiOperation(value = "Maven类型制品库上传制品") + public AjaxResult add(@PathVariable String enterpriseIdentifier, + @ApiParam(value = "制品库名称", required = true) @PathVariable String repoName, + @Valid @RequestBody ComponentMavenInputVo componentMavenInputVo) { + componentMavenInputVo.setRepoName(repoName); + componentMavenInputVo.setEnterpriseIdentifier(enterpriseIdentifier); + return toAjax(pmsProductLibraryComponentService.insertMavenComponent(componentMavenInputVo)); } /** * 修改制品库-制品 */ - @RequiresPermissions("pms:pmsProductLibraryComponent:edit") +// @RequiresPermissions("pms:pmsProductLibraryComponent:edit") @Log(title = "制品库-制品", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody PmsProductLibraryComponent pmsProductLibraryComponent) { @@ -82,7 +79,7 @@ public class PmsProductLibraryComponentController extends BaseController { /** * 删除制品库-制品 */ - @RequiresPermissions("pms:pmsProductLibraryComponent:remove") +// @RequiresPermissions("pms:pmsProductLibraryComponent:remove") @Log(title = "制品库-制品", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/AssetMavenInputVo.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/AssetMavenInputVo.java new file mode 100644 index 000000000..be19574d5 --- /dev/null +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/AssetMavenInputVo.java @@ -0,0 +1,26 @@ +package com.microservices.pms.productLibrary.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 制品组件Maven输入对象 + * + * @author otto + * @date 2024-06-28 + */ +@Data +@ApiModel("制品文件Maven输入对象") +public class AssetMavenInputVo { + @ApiModelProperty(value = "后缀") + @NotBlank(message = "制品文件后缀不能为空") + private String extension; + @ApiModelProperty(value = "分类") + private String classifier; + @ApiModelProperty(value = "文件标识") + @NotBlank(message = "制品文件标识不能为空") + private String fileIdentifier; +} diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/ComponentMavenInputVo.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/ComponentMavenInputVo.java new file mode 100644 index 000000000..649f177b9 --- /dev/null +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/ComponentMavenInputVo.java @@ -0,0 +1,50 @@ +package com.microservices.pms.productLibrary.domain.vo; + +import com.microservices.pms.productLibrary.domain.PmsProductLibraryRepositories; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.Valid; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.util.List; + +/** + * 制品Maven输入对象 + * + * @author otto + * @date 2024-06-28 + */ +@Data +@ApiModel("制品Maven输入对象") +public class ComponentMavenInputVo { + @ApiModelProperty(value = "制品库名称", hidden = true) + private String repoName; + @ApiModelProperty(value = "组织标识", hidden = true) + private String enterpriseIdentifier; + @ApiModelProperty(value = "文件列表") + @Size(min = 1, message = "最少上传一个文件") + @Valid + private List assetList; + @ApiModelProperty(value = "组Id") + @NotNull(message = "组Id不能为空") + private String groupId; + @ApiModelProperty(value = "制品Id") + @NotNull(message = "制品Id不能为空") + private String artifactId; + @ApiModelProperty(value = "版本") + @NotNull(message = "版本不能为空") + private String version; + @ApiModelProperty(value = "是否生成pom文件") + private Boolean generatePom; + @ApiModelProperty(value = "包装") + private String packaging; + + public String getNexusRepoName() { + return PmsProductLibraryRepositories.getNexusRepositoriesName( + enterpriseIdentifier, + repoName + ); + } +}