From a77910b86051b3e1d1192abc9aa5313f62cea95a Mon Sep 17 00:00:00 2001 From: gouzhonglin Date: Mon, 26 Feb 2024 18:32:33 +0800 Subject: [PATCH] update rpm package --- pom.xml | 6 ++ .../execute/RPMPackageExecuteAdapter.java | 6 +- .../rpmpackage/RPMPackageServiceImpl.java | 31 ++++++--- .../rpmpackage/dto/InputRPMPackage.java | 68 ++++++++++++------- .../domain/rpmpackage/RPMPackage.java | 4 ++ .../domain/rpmpackage/RPMPackageUnique.java | 20 ++++++ .../rpmpackage/gateway/RPMPackageGateway.java | 6 +- .../gatewayimpl/RPMPackageGatewayImpl.java | 38 +++++++++-- .../gatewayimpl/dataobject/RPMPackageDO.java | 4 ++ 9 files changed, 137 insertions(+), 46 deletions(-) create mode 100644 src/main/java/com/easysoftware/domain/rpmpackage/RPMPackageUnique.java diff --git a/pom.xml b/pom.xml index 6e2715f..5e27f07 100644 --- a/pom.xml +++ b/pom.xml @@ -97,6 +97,12 @@ test + + com.github.shalousun + common-util + 1.9.2 + + diff --git a/src/main/java/com/easysoftware/adapter/execute/RPMPackageExecuteAdapter.java b/src/main/java/com/easysoftware/adapter/execute/RPMPackageExecuteAdapter.java index 870a857..ebb1e14 100644 --- a/src/main/java/com/easysoftware/adapter/execute/RPMPackageExecuteAdapter.java +++ b/src/main/java/com/easysoftware/adapter/execute/RPMPackageExecuteAdapter.java @@ -35,9 +35,9 @@ public class RPMPackageExecuteAdapter { return res; } - @DeleteMapping(value = "/{names}") - public ResponseEntity deleteRPMPkg(@PathVariable List names) { - ResponseEntity res = rPMPkgService.deleteRPMPkg(names); + @DeleteMapping(value = "/{ids}") + public ResponseEntity deleteRPMPkg(@PathVariable List ids) { + ResponseEntity res = rPMPkgService.deleteRPMPkg(ids); return res; } } diff --git a/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageServiceImpl.java b/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageServiceImpl.java index dc9f7eb..8da38ae 100644 --- a/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageServiceImpl.java +++ b/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageServiceImpl.java @@ -3,10 +3,12 @@ package com.easysoftware.application.rpmpackage; import java.util.ArrayList; import java.util.List; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import org.springframework.web.bind.MethodArgumentNotValidException; import com.easysoftware.application.rpmpackage.dto.InputRPMPackage; import com.easysoftware.application.rpmpackage.dto.RPMPackageSearchCondition; @@ -15,6 +17,7 @@ import com.easysoftware.common.utils.ResultUtil; import com.easysoftware.domain.applicationpackage.ApplicationPackage; import com.easysoftware.domain.applicationpackage.gateway.ApplicationPackageGateway; import com.easysoftware.domain.rpmpackage.RPMPackage; +import com.easysoftware.domain.rpmpackage.RPMPackageUnique; import com.easysoftware.domain.rpmpackage.gateway.RPMPackageGateway; import jakarta.annotation.Resource; @@ -25,32 +28,37 @@ public class RPMPackageServiceImpl implements RPMPackageService { RPMPackageGateway rPMPkgGateway; @Override - public ResponseEntity deleteRPMPkg(List names) { + public ResponseEntity deleteRPMPkg(List ids) { List existedNames = new ArrayList<>(); - for (String name : names) { - boolean found = rPMPkgGateway.existRPM(name); + for (String id : ids) { + boolean found = rPMPkgGateway.existRPM(id); if (found) { - existedNames.add(name); + existedNames.add(id); } } List deletedNames = new ArrayList<>(); - for (String name : existedNames) { - boolean deleted = rPMPkgGateway.delete(name); + for (String id : existedNames) { + boolean deleted = rPMPkgGateway.delete(id); if (deleted) { - deletedNames.add(name); + deletedNames.add(id); } } String msg = String.format("请求删除的数据: %s, 在数据库中的数据: %s, 成功删除的数据: %s" - , names.toString(), existedNames.toString(), deletedNames.toString()); + , ids.toString(), existedNames.toString(), deletedNames.toString()); return ResultUtil.success(HttpStatus.OK); } @Override public ResponseEntity insertRPMPkg(InputRPMPackage inputrPMPackage) { + if (StringUtils.isNotBlank(inputrPMPackage.getId())) { + return ResultUtil.fail(HttpStatus.BAD_REQUEST, MessageCode.EC0002); + } // 数据库中是否已存在该包 - boolean found = rPMPkgGateway.existRPM(inputrPMPackage.getName()); + RPMPackageUnique unique = new RPMPackageUnique(); + BeanUtils.copyProperties(inputrPMPackage, unique); + boolean found = rPMPkgGateway.existRPM(unique); if (found) { return ResultUtil.fail(HttpStatus.BAD_REQUEST, MessageCode.EC0008); } @@ -72,8 +80,11 @@ public class RPMPackageServiceImpl implements RPMPackageService { @Override public ResponseEntity updateRPMPkg(InputRPMPackage inputrPMPackage) { + if (StringUtils.isBlank(inputrPMPackage.getId())) { + return ResultUtil.fail(HttpStatus.BAD_REQUEST, MessageCode.EC0002); + } // 数据库中是否已存在该包 - boolean found = rPMPkgGateway.existRPM(inputrPMPackage.getName()); + boolean found = rPMPkgGateway.existRPM(inputrPMPackage.getId()); if (!found) { return ResultUtil.fail(HttpStatus.BAD_REQUEST, MessageCode.EC0009); } diff --git a/src/main/java/com/easysoftware/application/rpmpackage/dto/InputRPMPackage.java b/src/main/java/com/easysoftware/application/rpmpackage/dto/InputRPMPackage.java index 719e9b0..1d60729 100644 --- a/src/main/java/com/easysoftware/application/rpmpackage/dto/InputRPMPackage.java +++ b/src/main/java/com/easysoftware/application/rpmpackage/dto/InputRPMPackage.java @@ -1,5 +1,7 @@ package com.easysoftware.application.rpmpackage.dto; +import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant; + import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Size; import lombok.AllArgsConstructor; @@ -15,86 +17,100 @@ public class InputRPMPackage { @Size(max = 255, message = "the length of sizeInstalled can not exceed 255") private String sizeInstalled; - + @Size(max = 255, message = "the length of timeFile can not exceed 255") private String timeFile; - + @Size(max = 255, message = "the length of sizePackage can not exceed 255") private String sizePackage; - @Size(max = 5000, message = "the length of description can not exceed 5000") + @Size(max = 6000, message = "the length of description can not exceed 6000") private String description; - + @Size(max = 255, message = "the length of checksumPkgid can not exceed 255") private String checksumPkgid; - + @Size(max = 255, message = "the length of locationHref can not exceed 255") private String locationHref; - + @Size(max = 255, message = "the length of rpmBuildhost can not exceed 255") private String rpmBuildhost; - + @Size(max = 255, message = "the length of checksumType can not exceed 255") private String checksumType; - + @Size(max = 255, message = "the length of sizeArchive can not exceed 255") private String sizeArchive; - + @Size(max = 255, message = "the length of rpmVendor can not exceed 255") private String rpmVendor; - + @Size(max = 255, message = "the length of checksum can not exceed 255") private String checksum; - + @Size(max = 255, message = "the length of rpmGroup can not exceed 255") private String rpmGroup; @Size(max = 255, message = "the length of headerStart can not exceed 255") private String headerStart; - + @Size(max = 255, message = "the length of summary can not exceed 255") private String summary; - + @Size(max = 255, message = "the length of versionRel can not exceed 255") private String versionRel; - + @Size(max = 255, message = "the length of versionVer can not exceed 255") private String versionVer; - + @Size(max = 255, message = "the length of packager can not exceed 255") private String packager; - + @Size(max = 255, message = "the length of url can not exceed 255") private String url; - + @Size(max = 255, message = "the length of versionEpoch can not exceed 255") private String versionEpoch; - + @Size(max = 255, message = "the length of rpmSourcerpm can not exceed 255") private String rpmSourcerpm; - @Size(max = 500, message = "the length of rpmLicense can not exceed 500") + @Size(max = 1000, message = "the length of rpmLicense can not exceed 255") private String rpmLicense; @Size(max = 255, message = "the length of name can not exceed 255") - @NotBlank(message = "name can not be null") private String name; - + @Size(max = 255, message = "the length of timeBuild can not exceed 255") private String timeBuild; - + @Size(max = 255, message = "the length of arch can not exceed 255") private String arch; - @Size(max = 255, message = "the length of pkgType can not exceed 255") - private String pkgType; - @Size(max = 255, message = "the length of osName can not exceed 255") private String osName; - + @Size(max = 255, message = "the length of osVer can not exceed 255") private String osVer; @Size(max = 255, message = "the length of osType can not exceed 255") private String osType; + + @Size(max = 100_0000, message = "the length of requires can not exceed 100_0000") + private String requires; + + @Size(max = 100_0000, message = "the length of provides can not exceed 100_0000") + private String provides; + + @Size(max = 100_0000, message = "the length of files can not exceed 100_0000") + private String files; + + @Size(max = 255, message = "the length of baseUrl can not exceed 255") + private String baseUrl; + + @Size(max = 255, message = "the length of rpmCategory can not exceed 255") + private String rpmCategory; + + @Size(max = 255, message = "the length of id can not exceed 255") + private String id; } diff --git a/src/main/java/com/easysoftware/domain/rpmpackage/RPMPackage.java b/src/main/java/com/easysoftware/domain/rpmpackage/RPMPackage.java index 9355ffd..feecce0 100644 --- a/src/main/java/com/easysoftware/domain/rpmpackage/RPMPackage.java +++ b/src/main/java/com/easysoftware/domain/rpmpackage/RPMPackage.java @@ -73,4 +73,8 @@ public class RPMPackage { private String provides; private String requires; + + private String baseUrl; + + private String rpmCategory; } diff --git a/src/main/java/com/easysoftware/domain/rpmpackage/RPMPackageUnique.java b/src/main/java/com/easysoftware/domain/rpmpackage/RPMPackageUnique.java new file mode 100644 index 0000000..4ced706 --- /dev/null +++ b/src/main/java/com/easysoftware/domain/rpmpackage/RPMPackageUnique.java @@ -0,0 +1,20 @@ +package com.easysoftware.domain.rpmpackage; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class RPMPackageUnique { + private String name; + private String versionVer; + private String versionRel; + private String osName; + private String osVer; + private String arch; + private String rpmCategory; + private String timeFile; + +} diff --git a/src/main/java/com/easysoftware/domain/rpmpackage/gateway/RPMPackageGateway.java b/src/main/java/com/easysoftware/domain/rpmpackage/gateway/RPMPackageGateway.java index 1b15940..842edbc 100644 --- a/src/main/java/com/easysoftware/domain/rpmpackage/gateway/RPMPackageGateway.java +++ b/src/main/java/com/easysoftware/domain/rpmpackage/gateway/RPMPackageGateway.java @@ -4,11 +4,13 @@ import java.util.List; import com.easysoftware.application.rpmpackage.dto.RPMPackageSearchCondition; import com.easysoftware.domain.rpmpackage.RPMPackage; +import com.easysoftware.domain.rpmpackage.RPMPackageUnique; public interface RPMPackageGateway { - boolean existRPM(String name); + boolean existRPM(RPMPackageUnique unique); + boolean existRPM(String id); boolean save(RPMPackage appPkg); boolean update(RPMPackage appPkg); - boolean delete(String name); + boolean delete(String id); List queryByName(RPMPackageSearchCondition condition); } diff --git a/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/RPMPackageGatewayImpl.java b/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/RPMPackageGatewayImpl.java index bb48c33..cc8564d 100644 --- a/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/RPMPackageGatewayImpl.java +++ b/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/RPMPackageGatewayImpl.java @@ -1,41 +1,62 @@ package com.easysoftware.infrastructure.rpmpackage.gatewayimpl; +import java.util.HashMap; import java.util.List; +import java.util.Map; + +import javax.management.Query; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.easysoftware.application.rpmpackage.dto.RPMPackageSearchCondition; import com.easysoftware.domain.applicationpackage.ApplicationPackage; import com.easysoftware.domain.rpmpackage.RPMPackage; +import com.easysoftware.domain.rpmpackage.RPMPackageUnique; import com.easysoftware.domain.rpmpackage.gateway.RPMPackageGateway; import com.easysoftware.infrastructure.applicationpackage.gatewayimpl.converter.ApplicationPackageConvertor; import com.easysoftware.infrastructure.applicationpackage.gatewayimpl.dataobject.ApplicationPackageDO; import com.easysoftware.infrastructure.mapper.RPMPackageDOMapper; import com.easysoftware.infrastructure.rpmpackage.gatewayimpl.converter.RPMPackageConverter; import com.easysoftware.infrastructure.rpmpackage.gatewayimpl.dataobject.RPMPackageDO; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.power.common.util.StringUtil; @Component public class RPMPackageGatewayImpl implements RPMPackageGateway { @Autowired private RPMPackageDOMapper rPMPkgMapper; + @Autowired + private ObjectMapper objectMapper; + @Override - public boolean delete(String name) { + public boolean delete(String id) { QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq("name", name); + wrapper.eq("id", id); int mark = rPMPkgMapper.delete(wrapper); return mark == 1; } @Override - public boolean existRPM(String name) { - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq("name", name); + public boolean existRPM(RPMPackageUnique unique) { + Map map = objectMapper.convertValue(unique, HashMap.class); + + Map underlineMap = new HashMap<>(); + for (String key : map.keySet()) { + String underlineKey = StringUtil.camelToUnderline(key); + underlineMap.put(underlineKey, map.get(key)); + } + + QueryWrapper wrapper = Wrappers.query(); + wrapper.setEntityClass(RPMPackageDO.class); + wrapper.allEq(underlineMap, false); return rPMPkgMapper.exists(wrapper); } @@ -77,5 +98,12 @@ public class RPMPackageGatewayImpl implements RPMPackageGateway { int mark = rPMPkgMapper.update(rPMPkgDO, wrapper); return mark == 1; } + + @Override + public boolean existRPM(String id) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("id", id); + return rPMPkgMapper.exists(wrapper); + } } diff --git a/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/dataobject/RPMPackageDO.java b/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/dataobject/RPMPackageDO.java index 3dbe50c..4bf32c4 100644 --- a/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/dataobject/RPMPackageDO.java +++ b/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/dataobject/RPMPackageDO.java @@ -87,4 +87,8 @@ public class RPMPackageDO { private String provides; private String requires; + + private String baseUrl; + + private String rpmCategory; } -- Gitee