From 551742873ccacb95faefe39ff4146d80d206a7f8 Mon Sep 17 00:00:00 2001 From: gouzhonglin Date: Thu, 22 Feb 2024 19:42:10 +0800 Subject: [PATCH] update rpm package and application package --- .../adapter/MyErrorController.java | 1 - .../ApplicationPackageExecuteAdapter.java} | 13 +--- .../ApplicationVersionExecuteAdapter.java} | 14 +--- .../RPMPackageExecuteAdapter.java} | 15 +--- .../query/ApplicationPackageQueryAdapter.java | 25 +++++++ .../query/ApplicationVersionQueryAdapter.java | 28 ++++++++ .../adapter/query/RPMPackageQueryAdapter.java | 23 ++++++ .../dto/InputApplicationPackage.java | 6 ++ .../ApplicationVersionServiceImpl.java | 6 +- .../common/exception/EnumValidException.java | 11 +++ .../exception}/GlobalExceptionHandler.java | 14 ++-- .../exception/enumvalid/AppCategoryEnum.java | 29 ++++++++ .../common/exception/enumvalid/EnumValue.java | 72 +++++++++++++++++++ .../ApplicationPackage.java | 1 + .../domain/rpmpackage/RPMPackage.java | 10 +-- .../dataobject/ApplicationPackageDO.java | 2 +- .../gatewayimpl/dataobject/RPMPackageDO.java | 12 ++-- 17 files changed, 228 insertions(+), 54 deletions(-) rename src/main/java/com/easysoftware/adapter/{query/ApplicationPackageAdapter.java => execute/ApplicationPackageExecuteAdapter.java} (77%) rename src/main/java/com/easysoftware/adapter/{query/ApplicationVersionAdapter.java => execute/ApplicationVersionExecuteAdapter.java} (78%) rename src/main/java/com/easysoftware/adapter/{query/RPMPackageAdapter.java => execute/RPMPackageExecuteAdapter.java} (68%) create mode 100644 src/main/java/com/easysoftware/adapter/query/ApplicationPackageQueryAdapter.java create mode 100644 src/main/java/com/easysoftware/adapter/query/ApplicationVersionQueryAdapter.java create mode 100644 src/main/java/com/easysoftware/adapter/query/RPMPackageQueryAdapter.java create mode 100644 src/main/java/com/easysoftware/common/exception/EnumValidException.java rename src/main/java/com/easysoftware/{application => common/exception}/GlobalExceptionHandler.java (65%) create mode 100644 src/main/java/com/easysoftware/common/exception/enumvalid/AppCategoryEnum.java create mode 100644 src/main/java/com/easysoftware/common/exception/enumvalid/EnumValue.java diff --git a/src/main/java/com/easysoftware/adapter/MyErrorController.java b/src/main/java/com/easysoftware/adapter/MyErrorController.java index a543041..26ae043 100644 --- a/src/main/java/com/easysoftware/adapter/MyErrorController.java +++ b/src/main/java/com/easysoftware/adapter/MyErrorController.java @@ -18,7 +18,6 @@ public class MyErrorController implements ErrorController{ @RequestMapping(value = ERROR_PATH) public ResponseEntity errorHtml(HttpServletRequest request, HttpServletResponse response) { - int status = response.getStatus(); return ResultUtil.fail(HttpStatus.NOT_FOUND, MessageCode.EC0001); } } diff --git a/src/main/java/com/easysoftware/adapter/query/ApplicationPackageAdapter.java b/src/main/java/com/easysoftware/adapter/execute/ApplicationPackageExecuteAdapter.java similarity index 77% rename from src/main/java/com/easysoftware/adapter/query/ApplicationPackageAdapter.java rename to src/main/java/com/easysoftware/adapter/execute/ApplicationPackageExecuteAdapter.java index fa7861e..3a3bce0 100644 --- a/src/main/java/com/easysoftware/adapter/query/ApplicationPackageAdapter.java +++ b/src/main/java/com/easysoftware/adapter/execute/ApplicationPackageExecuteAdapter.java @@ -1,11 +1,10 @@ -package com.easysoftware.adapter.query; +package com.easysoftware.adapter.execute; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; @@ -14,14 +13,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.easysoftware.application.applicationpackage.ApplicationPackageService; -import com.easysoftware.application.applicationpackage.dto.ApplicationPackageSearchCondition; import com.easysoftware.application.applicationpackage.dto.InputApplicationPackage; import jakarta.validation.Valid; @RestController @RequestMapping("/apppkg") -public class ApplicationPackageAdapter { +public class ApplicationPackageExecuteAdapter { @Autowired private ApplicationPackageService appPkgService; @@ -42,11 +40,4 @@ public class ApplicationPackageAdapter { ResponseEntity res = appPkgService.deleteAppPkg(names); return res; } - - @GetMapping() - public ResponseEntity searchAppPkg(@Valid ApplicationPackageSearchCondition condition) { - ResponseEntity res = appPkgService.searchAppPkg(condition); - return res; - } - } diff --git a/src/main/java/com/easysoftware/adapter/query/ApplicationVersionAdapter.java b/src/main/java/com/easysoftware/adapter/execute/ApplicationVersionExecuteAdapter.java similarity index 78% rename from src/main/java/com/easysoftware/adapter/query/ApplicationVersionAdapter.java rename to src/main/java/com/easysoftware/adapter/execute/ApplicationVersionExecuteAdapter.java index ca92c5c..7b74d02 100644 --- a/src/main/java/com/easysoftware/adapter/query/ApplicationVersionAdapter.java +++ b/src/main/java/com/easysoftware/adapter/execute/ApplicationVersionExecuteAdapter.java @@ -1,11 +1,10 @@ -package com.easysoftware.adapter.query; +package com.easysoftware.adapter.execute; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; @@ -15,14 +14,13 @@ import org.springframework.web.bind.annotation.RestController; import com.easysoftware.aop.LimitRequest; import com.easysoftware.application.applicationversion.ApplicationVersionService; -import com.easysoftware.application.applicationversion.dto.ApplicationVersionSearchCondition; import com.easysoftware.application.applicationversion.dto.InputApplicationVersion; import jakarta.validation.Valid; @RestController @RequestMapping("/appVersion") -public class ApplicationVersionAdapter { +public class ApplicationVersionExecuteAdapter { @Autowired private ApplicationVersionService appVersionService; @@ -46,12 +44,4 @@ public class ApplicationVersionAdapter { ResponseEntity res = appVersionService.deleteAppVersion(names); return res; } - - @GetMapping() - @LimitRequest() - public ResponseEntity searchAppVersion(@Valid ApplicationVersionSearchCondition condition) { - ResponseEntity res = appVersionService.searchAppVersion(condition); - return res; - } - } diff --git a/src/main/java/com/easysoftware/adapter/query/RPMPackageAdapter.java b/src/main/java/com/easysoftware/adapter/execute/RPMPackageExecuteAdapter.java similarity index 68% rename from src/main/java/com/easysoftware/adapter/query/RPMPackageAdapter.java rename to src/main/java/com/easysoftware/adapter/execute/RPMPackageExecuteAdapter.java index 619d857..870a857 100644 --- a/src/main/java/com/easysoftware/adapter/query/RPMPackageAdapter.java +++ b/src/main/java/com/easysoftware/adapter/execute/RPMPackageExecuteAdapter.java @@ -1,11 +1,10 @@ -package com.easysoftware.adapter.query; +package com.easysoftware.adapter.execute; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; @@ -13,18 +12,14 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.easysoftware.application.applicationpackage.ApplicationPackageService; -import com.easysoftware.application.applicationpackage.dto.ApplicationPackageSearchCondition; -import com.easysoftware.application.applicationpackage.dto.InputApplicationPackage; import com.easysoftware.application.rpmpackage.RPMPackageService; import com.easysoftware.application.rpmpackage.dto.InputRPMPackage; -import com.easysoftware.application.rpmpackage.dto.RPMPackageSearchCondition; import jakarta.validation.Valid; @RestController @RequestMapping("/rpmpkg") -public class RPMPackageAdapter { +public class RPMPackageExecuteAdapter { @Autowired private RPMPackageService rPMPkgService; @@ -45,10 +40,4 @@ public class RPMPackageAdapter { ResponseEntity res = rPMPkgService.deleteRPMPkg(names); return res; } - - @GetMapping() - public ResponseEntity searchRPMPkg(@Valid RPMPackageSearchCondition condition) { - ResponseEntity res = rPMPkgService.searchRPMPkg(condition); - return res; - } } diff --git a/src/main/java/com/easysoftware/adapter/query/ApplicationPackageQueryAdapter.java b/src/main/java/com/easysoftware/adapter/query/ApplicationPackageQueryAdapter.java new file mode 100644 index 0000000..3df2cd3 --- /dev/null +++ b/src/main/java/com/easysoftware/adapter/query/ApplicationPackageQueryAdapter.java @@ -0,0 +1,25 @@ +package com.easysoftware.adapter.query; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.easysoftware.application.applicationpackage.ApplicationPackageService; +import com.easysoftware.application.applicationpackage.dto.ApplicationPackageSearchCondition; + +import jakarta.validation.Valid; + +@RestController +@RequestMapping("/apppkg") +public class ApplicationPackageQueryAdapter { + @Autowired + private ApplicationPackageService appPkgService; + + @GetMapping() + public ResponseEntity searchAppPkg(@Valid ApplicationPackageSearchCondition condition) { + ResponseEntity res = appPkgService.searchAppPkg(condition); + return res; + } +} diff --git a/src/main/java/com/easysoftware/adapter/query/ApplicationVersionQueryAdapter.java b/src/main/java/com/easysoftware/adapter/query/ApplicationVersionQueryAdapter.java new file mode 100644 index 0000000..7529b04 --- /dev/null +++ b/src/main/java/com/easysoftware/adapter/query/ApplicationVersionQueryAdapter.java @@ -0,0 +1,28 @@ +package com.easysoftware.adapter.query; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.easysoftware.aop.LimitRequest; +import com.easysoftware.application.applicationversion.ApplicationVersionService; +import com.easysoftware.application.applicationversion.dto.ApplicationVersionSearchCondition; + +import jakarta.validation.Valid; + +@RestController +@RequestMapping("/appVersion") +public class ApplicationVersionQueryAdapter { + @Autowired + private ApplicationVersionService appVersionService; + + @GetMapping() + @LimitRequest() + public ResponseEntity searchAppVersion(@Valid ApplicationVersionSearchCondition condition) { + ResponseEntity res = appVersionService.searchAppVersion(condition); + return res; + } + +} diff --git a/src/main/java/com/easysoftware/adapter/query/RPMPackageQueryAdapter.java b/src/main/java/com/easysoftware/adapter/query/RPMPackageQueryAdapter.java new file mode 100644 index 0000000..b7f2eaa --- /dev/null +++ b/src/main/java/com/easysoftware/adapter/query/RPMPackageQueryAdapter.java @@ -0,0 +1,23 @@ +package com.easysoftware.adapter.query; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.easysoftware.application.rpmpackage.RPMPackageService; +import com.easysoftware.application.rpmpackage.dto.RPMPackageSearchCondition; +import jakarta.validation.Valid; + +@RestController +@RequestMapping("/rpmpkg") +public class RPMPackageQueryAdapter { + @Autowired + private RPMPackageService rPMPkgService; + + @GetMapping() + public ResponseEntity searchRPMPkg(@Valid RPMPackageSearchCondition condition) { + ResponseEntity res = rPMPkgService.searchRPMPkg(condition); + return res; + } +} diff --git a/src/main/java/com/easysoftware/application/applicationpackage/dto/InputApplicationPackage.java b/src/main/java/com/easysoftware/application/applicationpackage/dto/InputApplicationPackage.java index bccdbff..62a7783 100644 --- a/src/main/java/com/easysoftware/application/applicationpackage/dto/InputApplicationPackage.java +++ b/src/main/java/com/easysoftware/application/applicationpackage/dto/InputApplicationPackage.java @@ -1,4 +1,7 @@ package com.easysoftware.application.applicationpackage.dto; +import com.easysoftware.common.exception.enumvalid.AppCategoryEnum; +import com.easysoftware.common.exception.enumvalid.EnumValue; + import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Size; import lombok.AllArgsConstructor; @@ -32,4 +35,7 @@ public class InputApplicationPackage { @Size(max = 10000, message = "the length of dependencyPkgs can not exceed 10000") private String dependencyPkgs; + + @EnumValue(enumClass = AppCategoryEnum.class, enumMethod = "isValidCategory") + private String appCategory; } diff --git a/src/main/java/com/easysoftware/application/applicationversion/ApplicationVersionServiceImpl.java b/src/main/java/com/easysoftware/application/applicationversion/ApplicationVersionServiceImpl.java index cfe9b17..5d7cfa7 100644 --- a/src/main/java/com/easysoftware/application/applicationversion/ApplicationVersionServiceImpl.java +++ b/src/main/java/com/easysoftware/application/applicationversion/ApplicationVersionServiceImpl.java @@ -13,7 +13,7 @@ import com.easysoftware.common.entity.MessageCode; import com.easysoftware.common.utils.ResultUtil; import com.easysoftware.domain.applicationversion.ApplicationVersion; import com.easysoftware.domain.applicationversion.gateway.ApplicationVersionGateway; -import com.easysoftware.domain.compatible.gateway.CompatibleGateway; +// import com.easysoftware.domain.compatible.gateway.CompatibleGateway; import jakarta.annotation.Resource; @@ -22,8 +22,8 @@ public class ApplicationVersionServiceImpl implements ApplicationVersionService @Resource ApplicationVersionGateway AppVersionGateway; - @Resource - CompatibleGateway compatibleGateway; + // @Resource + // CompatibleGateway compatibleGateway; public String getCompatible(String name) { return null; diff --git a/src/main/java/com/easysoftware/common/exception/EnumValidException.java b/src/main/java/com/easysoftware/common/exception/EnumValidException.java new file mode 100644 index 0000000..5843993 --- /dev/null +++ b/src/main/java/com/easysoftware/common/exception/EnumValidException.java @@ -0,0 +1,11 @@ +package com.easysoftware.common.exception; + +public class EnumValidException extends RuntimeException { + private static final long serialVersionUID = 1L; + + public EnumValidException(String message) { + super(message); + } + public EnumValidException() { + } +} diff --git a/src/main/java/com/easysoftware/application/GlobalExceptionHandler.java b/src/main/java/com/easysoftware/common/exception/GlobalExceptionHandler.java similarity index 65% rename from src/main/java/com/easysoftware/application/GlobalExceptionHandler.java rename to src/main/java/com/easysoftware/common/exception/GlobalExceptionHandler.java index 78e7eba..e8798b4 100644 --- a/src/main/java/com/easysoftware/application/GlobalExceptionHandler.java +++ b/src/main/java/com/easysoftware/common/exception/GlobalExceptionHandler.java @@ -1,4 +1,4 @@ -package com.easysoftware.application; +package com.easysoftware.common.exception; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; @@ -21,8 +21,14 @@ public class GlobalExceptionHandler { @ExceptionHandler(MethodArgumentNotValidException.class) @ResponseStatus(HttpStatus.BAD_REQUEST) public ResponseEntity exception(MethodArgumentNotValidException e) { - logger.error(MessageCode.EC0001.getMsgEn(), e); - MessageCode messageCode = MessageCode.msgCodeMap.get(e.getMessage()); - return ResultUtil.fail(HttpStatus.BAD_REQUEST, messageCode); + logger.error(MessageCode.EC0002.getMsgEn()); + return ResultUtil.fail(HttpStatus.BAD_REQUEST, MessageCode.EC0002); + } + + @ExceptionHandler(EnumValidException.class) + @ResponseStatus(HttpStatus.BAD_REQUEST) + public ResponseEntity exception(EnumValidException e) { + logger.error(MessageCode.EC0002.getMsgEn()); + return ResultUtil.fail(HttpStatus.BAD_REQUEST, MessageCode.EC0002); } } diff --git a/src/main/java/com/easysoftware/common/exception/enumvalid/AppCategoryEnum.java b/src/main/java/com/easysoftware/common/exception/enumvalid/AppCategoryEnum.java new file mode 100644 index 0000000..bb7282b --- /dev/null +++ b/src/main/java/com/easysoftware/common/exception/enumvalid/AppCategoryEnum.java @@ -0,0 +1,29 @@ +package com.easysoftware.common.exception.enumvalid; + +public enum AppCategoryEnum { + BigData("bigdata"), + AI("ai"), + Storage("storage"), + Database("database"), + Cloud("cloud"), + Hpc("hpc"); + + private String alias; + + AppCategoryEnum(String alias) { + this.alias = alias; + } + + public String getAlias() { + return this.alias; + } + + public static boolean isValidCategory(String alias) { + for (AppCategoryEnum categoryEnum : AppCategoryEnum.values()) { + if (categoryEnum.getAlias().equals(alias)) { + return true; + } + } + return false; + } +} diff --git a/src/main/java/com/easysoftware/common/exception/enumvalid/EnumValue.java b/src/main/java/com/easysoftware/common/exception/enumvalid/EnumValue.java new file mode 100644 index 0000000..b7a7261 --- /dev/null +++ b/src/main/java/com/easysoftware/common/exception/enumvalid/EnumValue.java @@ -0,0 +1,72 @@ +package com.easysoftware.common.exception.enumvalid; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; + +import com.easysoftware.common.exception.EnumValidException; + +import java.lang.annotation.ElementType; +import jakarta.validation.Constraint; +import jakarta.validation.ConstraintValidator; +import jakarta.validation.ConstraintValidatorContext; +import jakarta.validation.Payload; + +import java.lang.annotation.RetentionPolicy; + +@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE }) +@Retention(RetentionPolicy.RUNTIME) +@Constraint(validatedBy = EnumValue.Validator.class) +public @interface EnumValue { + String message() default "{custom.value.invalid}"; + + Class[] groups() default {}; + + Class[] payload() default {}; + + Class> enumClass(); + + String enumMethod(); + + class Validator implements ConstraintValidator { + + private Class> enumClass; + private String enumMethod; + + @Override + public void initialize(EnumValue enumValue) { + enumMethod = enumValue.enumMethod(); + enumClass = enumValue.enumClass(); + } + + @Override + public boolean isValid(Object value, ConstraintValidatorContext constraintValidatorContext) { + if (value == null) { + return Boolean.TRUE; + } + + if (enumClass == null || enumMethod == null) { + return Boolean.TRUE; + } + + Class valueClass = value.getClass(); + + try { + Method method = enumClass.getMethod(enumMethod, valueClass); + if (!Boolean.TYPE.equals(method.getReturnType()) && !Boolean.class.equals(method.getReturnType())) { + throw new com.easysoftware.common.exception.EnumValidException(); + } + + if(!Modifier.isStatic(method.getModifiers())) { + throw new EnumValidException(); + } + + Boolean result = (Boolean)method.invoke(null, value); + return result == null ? false : result; + } catch (Exception e) { + throw new EnumValidException(); + } + } + } +} diff --git a/src/main/java/com/easysoftware/domain/applicationpackage/ApplicationPackage.java b/src/main/java/com/easysoftware/domain/applicationpackage/ApplicationPackage.java index 047eb34..4b0df86 100644 --- a/src/main/java/com/easysoftware/domain/applicationpackage/ApplicationPackage.java +++ b/src/main/java/com/easysoftware/domain/applicationpackage/ApplicationPackage.java @@ -30,6 +30,7 @@ public class ApplicationPackage { private String similarPkgs; + private String appCategory; private String dependencyPkgs; } diff --git a/src/main/java/com/easysoftware/domain/rpmpackage/RPMPackage.java b/src/main/java/com/easysoftware/domain/rpmpackage/RPMPackage.java index 03b0110..9355ffd 100644 --- a/src/main/java/com/easysoftware/domain/rpmpackage/RPMPackage.java +++ b/src/main/java/com/easysoftware/domain/rpmpackage/RPMPackage.java @@ -58,17 +58,19 @@ public class RPMPackage { private String name; - private String pkgOrApp; - private String timeBuild; private String arch; - private String pkgType; - private String osName; private String osVer; private String osType; + + private String files; + + private String provides; + + private String requires; } diff --git a/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/dataobject/ApplicationPackageDO.java b/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/dataobject/ApplicationPackageDO.java index 4bf40b0..d7df8a1 100644 --- a/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/dataobject/ApplicationPackageDO.java +++ b/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/dataobject/ApplicationPackageDO.java @@ -29,7 +29,7 @@ public class ApplicationPackageDO { private String download; - + private String appCategory; private String environment; 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 3808973..3dbe50c 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 @@ -15,7 +15,7 @@ import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor -@TableName("rpm_package") +@TableName("rpm_pkg_base") public class RPMPackageDO { @Serial private static final long serialVersionUID = 1L; @@ -72,17 +72,19 @@ public class RPMPackageDO { private String name; - private String pkgOrApp; - private String timeBuild; private String arch; - private String pkgType; - private String osName; private String osVer; private String osType; + + private String files; + + private String provides; + + private String requires; } -- Gitee