From 2113933cb4b84570b767066c9aa3196b1969fbc5 Mon Sep 17 00:00:00 2001 From: gouzhonglin Date: Tue, 20 Feb 2024 20:37:17 +0800 Subject: [PATCH] application package v2 --- .../easysoftware/EasysoftwareApplication.java | 4 +- .../MyErrorController.java | 7 +- .../query/ApplicationPackageAdapter.java} | 15 +- .../GlobalExceptionHandler.java | 61 +----- .../ApplicationPackageService.java | 8 +- .../ApplicationPackageServiceImpl.java | 85 +++++++++ .../ApplicationPackageSearchCondition.java | 31 +-- .../dto/InputApplicationPackage.java | 17 +- .../ApplicationPackage.java | 35 ++++ .../gateway/ApplicationPackageGateway.java | 16 ++ .../common}/exception/MyJacksonException.java | 2 +- .../exception/ParamErrorException.java | 2 +- .../common/utils}/HttpResult.java | 13 +- .../common/utils}/ObjectMapperUtil.java | 4 +- .../common/utils}/UuidUtil.java | 2 +- .../ApplicationPackageGatewayImpl.java | 80 ++++++++ .../ApplicationPackageConvertor.java | 56 ++++++ .../dataobject/ApplicationPackageDO.java} | 17 +- .../mapper/ApplicationPackageDOMapper.java | 8 + .../easysoftware/mapper/AppPackageMapper.java | 8 - .../service/impl/AppPackageServiceImpl.java | 176 ------------------ .../java/com/easysoftware/util/ValidList.java | 131 ------------- src/main/resources/application.properties | 1 - ...per.xml => ApplicationPackageDOMapper.xml} | 2 +- src/main/resources/mapper/PreAppMapper.xml | 5 - .../resources/mapper/SrcPackageMapper.xml | 5 - 26 files changed, 328 insertions(+), 463 deletions(-) rename src/main/java/com/easysoftware/{controller => adapter}/MyErrorController.java (83%) rename src/main/java/com/easysoftware/{controller/ApplicationPackageController.java => adapter/query/ApplicationPackageAdapter.java} (75%) rename src/main/java/com/easysoftware/{service => application}/GlobalExceptionHandler.java (40%) rename src/main/java/com/easysoftware/{service => application/applicationpackage}/ApplicationPackageService.java (57%) create mode 100644 src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageServiceImpl.java rename src/main/java/com/easysoftware/{entity => application/applicationpackage}/dto/ApplicationPackageSearchCondition.java (50%) rename src/main/java/com/easysoftware/{entity => application/applicationpackage}/dto/InputApplicationPackage.java (78%) create mode 100644 src/main/java/com/easysoftware/domain/applicationpackage/ApplicationPackage.java create mode 100644 src/main/java/com/easysoftware/domain/applicationpackage/gateway/ApplicationPackageGateway.java rename src/main/java/com/easysoftware/{ => domain/common}/exception/MyJacksonException.java (84%) rename src/main/java/com/easysoftware/{ => domain/common}/exception/ParamErrorException.java (82%) rename src/main/java/com/easysoftware/{entity/vo => domain/common/utils}/HttpResult.java (62%) rename src/main/java/com/easysoftware/{util => domain/common/utils}/ObjectMapperUtil.java (98%) rename src/main/java/com/easysoftware/{util => domain/common/utils}/UuidUtil.java (79%) create mode 100644 src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/ApplicationPackageGatewayImpl.java create mode 100644 src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/converter/ApplicationPackageConvertor.java rename src/main/java/com/easysoftware/{entity/po/pkg/ApplicationPackage.java => infrastructure/applicationpackage/gatewayimpl/dataobject/ApplicationPackageDO.java} (63%) create mode 100644 src/main/java/com/easysoftware/infrastructure/mapper/ApplicationPackageDOMapper.java delete mode 100644 src/main/java/com/easysoftware/mapper/AppPackageMapper.java delete mode 100644 src/main/java/com/easysoftware/service/impl/AppPackageServiceImpl.java delete mode 100644 src/main/java/com/easysoftware/util/ValidList.java delete mode 100644 src/main/resources/application.properties rename src/main/resources/mapper/{UpStreamMapper.xml => ApplicationPackageDOMapper.xml} (64%) delete mode 100644 src/main/resources/mapper/PreAppMapper.xml delete mode 100644 src/main/resources/mapper/SrcPackageMapper.xml diff --git a/src/main/java/com/easysoftware/EasysoftwareApplication.java b/src/main/java/com/easysoftware/EasysoftwareApplication.java index 78efb8b..22cdce0 100644 --- a/src/main/java/com/easysoftware/EasysoftwareApplication.java +++ b/src/main/java/com/easysoftware/EasysoftwareApplication.java @@ -13,7 +13,7 @@ import com.baomidou.mybatisplus.autoconfigure.DdlApplicationRunner; @SpringBootApplication @ComponentScan(basePackages = {"com.easysoftware.*"}) -@MapperScan("com.easysoftware.mapper") +@MapperScan("com.easysoftware.infrastructure.mapper") public class EasysoftwareApplication { public static void main(String[] args) { @@ -23,5 +23,5 @@ public class EasysoftwareApplication { @Bean public DdlApplicationRunner ddlApplicationRunner(@Autowired(required = false) List ddlList) { return new DdlApplicationRunner(ddlList); - } + } } diff --git a/src/main/java/com/easysoftware/controller/MyErrorController.java b/src/main/java/com/easysoftware/adapter/MyErrorController.java similarity index 83% rename from src/main/java/com/easysoftware/controller/MyErrorController.java rename to src/main/java/com/easysoftware/adapter/MyErrorController.java index ce09cca..39dd7fa 100644 --- a/src/main/java/com/easysoftware/controller/MyErrorController.java +++ b/src/main/java/com/easysoftware/adapter/MyErrorController.java @@ -1,11 +1,10 @@ -package com.easysoftware.controller; +package com.easysoftware.adapter; import org.springframework.boot.web.servlet.error.ErrorController; -import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.easysoftware.entity.vo.HttpResult; +import com.easysoftware.domain.common.utils.HttpResult; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @@ -18,6 +17,6 @@ public class MyErrorController implements ErrorController{ public String errorHtml(HttpServletRequest request, HttpServletResponse response) { int status = response.getStatus(); return HttpResult.fail(status, "error uri", ""); - } } + diff --git a/src/main/java/com/easysoftware/controller/ApplicationPackageController.java b/src/main/java/com/easysoftware/adapter/query/ApplicationPackageAdapter.java similarity index 75% rename from src/main/java/com/easysoftware/controller/ApplicationPackageController.java rename to src/main/java/com/easysoftware/adapter/query/ApplicationPackageAdapter.java index 265116c..35a1c0f 100644 --- a/src/main/java/com/easysoftware/controller/ApplicationPackageController.java +++ b/src/main/java/com/easysoftware/adapter/query/ApplicationPackageAdapter.java @@ -1,9 +1,8 @@ -package com.easysoftware.controller; +package com.easysoftware.adapter.query; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -13,17 +12,15 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.easysoftware.entity.dto.ApplicationPackageSearchCondition; -import com.easysoftware.entity.dto.InputApplicationPackage; -import com.easysoftware.service.ApplicationPackageService; +import com.easysoftware.application.applicationpackage.ApplicationPackageService; +import com.easysoftware.application.applicationpackage.dto.ApplicationPackageSearchCondition; +import com.easysoftware.application.applicationpackage.dto.InputApplicationPackage; import jakarta.validation.Valid; -import lombok.extern.slf4j.Slf4j; @RestController -@Slf4j @RequestMapping("/apppkg") -public class ApplicationPackageController { +public class ApplicationPackageAdapter { @Autowired private ApplicationPackageService appPkgService; @@ -34,7 +31,7 @@ public class ApplicationPackageController { } @PutMapping() - public String updateAppPkg(@RequestBody InputApplicationPackage inputAppPackage) { + public String updateAppPkg(@Valid @RequestBody InputApplicationPackage inputAppPackage) { String res = appPkgService.updateAppPkg(inputAppPackage); return res; } diff --git a/src/main/java/com/easysoftware/service/GlobalExceptionHandler.java b/src/main/java/com/easysoftware/application/GlobalExceptionHandler.java similarity index 40% rename from src/main/java/com/easysoftware/service/GlobalExceptionHandler.java rename to src/main/java/com/easysoftware/application/GlobalExceptionHandler.java index 6544199..5e8f891 100644 --- a/src/main/java/com/easysoftware/service/GlobalExceptionHandler.java +++ b/src/main/java/com/easysoftware/application/GlobalExceptionHandler.java @@ -1,4 +1,4 @@ -package com.easysoftware.service; +package com.easysoftware.application; import org.springframework.http.converter.HttpMessageNotReadableException; import org.springframework.util.StringUtils; @@ -14,10 +14,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestControllerAdvice; -import com.easysoftware.entity.vo.HttpResult; -import com.easysoftware.exception.ParamErrorException; -// import com.easysoftware.util.ResponseResult; -// import com.easysoftware.util.ResultEnum; +import com.easysoftware.domain.common.exception.ParamErrorException; +import com.easysoftware.domain.common.utils.HttpResult; import jakarta.validation.ConstraintViolationException; import lombok.extern.slf4j.Slf4j; @@ -44,56 +42,5 @@ public class GlobalExceptionHandler { return HttpResult.fail(HttpStatus.BAD_REQUEST.value(), "请求错误", null); } - // /** - // * 自定义参数错误异常处理器 - // * - // * @param e 自定义参数 - // * @return ResponseInfo - // */ - // @ResponseStatus(HttpStatus.BAD_REQUEST) - // @ExceptionHandler({ParamErrorException.class}) - // public ResponseResult paramExceptionHandler(ParamErrorException e) { - // log.error("", e); - // log.error("wglwglwgwgwg"); - // // 判断异常中是否有错误信息,如果存在就使用异常中的消息,否则使用默认消息 - // if (StringUtils.hasText(e.getMessage())) { - // return new ResponseResult(ResultEnum.PARAMETER_ERROR.getCode(), e.getMessage()); - // } - // return new ResponseResult(ResultEnum.PARAMETER_ERROR); - // } - - // @ResponseStatus(HttpStatus.BAD_REQUEST) - // @ExceptionHandler({ConstraintViolationException.class}) - // public ResponseResult handleConstraintViolationException(ConstraintViolationException e) { - // log.error("", e); - // log.error("是异常"); - // // 判断异常中是否有错误信息,如果存在就使用异常中的消息,否则使用默认消息 - // if (StringUtils.hasText(e.getMessage())) { - // return new ResponseResult(ResultEnum.PARAMETER_ERROR.getCode(), e.getMessage()); - // } - // return new ResponseResult(ResultEnum.PARAMETER_ERROR); - // } - - // @ExceptionHandler(value = BindException.class) - // public Object bindException(BindException ex) { - - // BindingResult bindingResult = ex.getBindingResult(); - - // // 获取所有的错误信息 - // List allErrors = bindingResult.getAllErrors(); - - // // 输出 - // allErrors.forEach(e -> System.out.println(e.getDefaultMessage())); - - // return "请求参数错误"; - // } - - // @ExceptionHandler(value = Exception.class) - // // @ResponseBody - // public void handle(Exception e) { - // System.out.println("gggg"); - // // BaseResponse response = new BaseResponse(); - // // response.setRsbCode(RsbCode.Rsb_SYS_ERR, e.getMessage()); - // // return response; - // } + } diff --git a/src/main/java/com/easysoftware/service/ApplicationPackageService.java b/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageService.java similarity index 57% rename from src/main/java/com/easysoftware/service/ApplicationPackageService.java rename to src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageService.java index bb941d5..3c6a9a0 100644 --- a/src/main/java/com/easysoftware/service/ApplicationPackageService.java +++ b/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageService.java @@ -1,11 +1,9 @@ -package com.easysoftware.service; +package com.easysoftware.application.applicationpackage; import java.util.List; -import org.springframework.validation.annotation.Validated; - -import com.easysoftware.entity.dto.ApplicationPackageSearchCondition; -import com.easysoftware.entity.dto.InputApplicationPackage; +import com.easysoftware.application.applicationpackage.dto.ApplicationPackageSearchCondition; +import com.easysoftware.application.applicationpackage.dto.InputApplicationPackage; public interface ApplicationPackageService { String insertAppPkg(InputApplicationPackage listApp); diff --git a/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageServiceImpl.java b/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageServiceImpl.java new file mode 100644 index 0000000..510a20b --- /dev/null +++ b/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageServiceImpl.java @@ -0,0 +1,85 @@ +package com.easysoftware.application.applicationpackage; +import java.util.ArrayList; +import java.util.List; + +import org.springframework.beans.BeanUtils; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +import com.easysoftware.application.applicationpackage.dto.ApplicationPackageSearchCondition; +import com.easysoftware.application.applicationpackage.dto.InputApplicationPackage; +import com.easysoftware.domain.applicationpackage.ApplicationPackage; +import com.easysoftware.domain.applicationpackage.gateway.ApplicationPackageGateway; +import com.easysoftware.domain.common.utils.HttpResult; + +import jakarta.annotation.Resource; + +@Service +public class ApplicationPackageServiceImpl implements ApplicationPackageService { + @Resource + ApplicationPackageGateway appPkgGateway; + + @Override + public String insertAppPkg(InputApplicationPackage inputAppPkg) { + // 数据库中是否已存在该包 + boolean found = appPkgGateway.existApp(inputAppPkg.getName()); + if (found) { + return HttpResult.fail(HttpStatus.BAD_REQUEST.value(), "请求的包已存在", null); + } + ApplicationPackage appPkg = new ApplicationPackage(); + BeanUtils.copyProperties(inputAppPkg, appPkg); + + boolean succeed = appPkgGateway.save(appPkg); + if (!succeed) { + return HttpResult.fail(HttpStatus.BAD_REQUEST.value(), "新增数据失败", null); + } + return HttpResult.ok("新增1条数据", null); + } + + @Override + public String searchAppPkg(ApplicationPackageSearchCondition condition) { + List res = appPkgGateway.queryByName(condition); + return HttpResult.ok("完成查询数据", res); + } + + @Override + public String updateAppPkg(InputApplicationPackage inputAppPkg) { + // 数据库中是否已存在该包 + boolean found = appPkgGateway.existApp(inputAppPkg.getName()); + if (!found) { + return HttpResult.fail(HttpStatus.BAD_REQUEST.value(), "请求的包不存在", null); + } + ApplicationPackage appPkg = new ApplicationPackage(); + BeanUtils.copyProperties(inputAppPkg, appPkg); + + boolean succeed = appPkgGateway.update(appPkg); + if (!succeed) { + return HttpResult.fail(HttpStatus.BAD_REQUEST.value(), "更新数据失败", null); + } + return HttpResult.ok("更新1条数据", null); + } + + @Override + public String deleteAppPkg(List names) { + List existedNames = new ArrayList<>(); + for (String name : names) { + boolean found = appPkgGateway.existApp(name); + if (found) { + existedNames.add(name); + } + } + + List deletedNames = new ArrayList<>(); + for (String name : existedNames) { + boolean deleted = appPkgGateway.delete(names); + if (deleted) { + deletedNames.add(name); + } + } + + String msg = String.format("请求删除的数据: %s, 在数据库中的数据: %s, 成功删除的数据: %s" + , names.toString(), existedNames.toString(), deletedNames.toString()); + return HttpResult.ok(msg, null); + } + +} diff --git a/src/main/java/com/easysoftware/entity/dto/ApplicationPackageSearchCondition.java b/src/main/java/com/easysoftware/application/applicationpackage/dto/ApplicationPackageSearchCondition.java similarity index 50% rename from src/main/java/com/easysoftware/entity/dto/ApplicationPackageSearchCondition.java rename to src/main/java/com/easysoftware/application/applicationpackage/dto/ApplicationPackageSearchCondition.java index ff316cc..6dd95b6 100644 --- a/src/main/java/com/easysoftware/entity/dto/ApplicationPackageSearchCondition.java +++ b/src/main/java/com/easysoftware/application/applicationpackage/dto/ApplicationPackageSearchCondition.java @@ -1,8 +1,8 @@ -package com.easysoftware.entity.dto; +package com.easysoftware.application.applicationpackage.dto; import org.hibernate.validator.constraints.Range; -import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Size; import lombok.AllArgsConstructor; import lombok.Data; @@ -12,37 +12,14 @@ import lombok.NoArgsConstructor; @AllArgsConstructor @NoArgsConstructor public class ApplicationPackageSearchCondition { - - @Size(max = 50) - private String description; - @Size(max = 50) + @NotBlank private String name; - @Size(max = 50) - private String license; - - @Size(max = 50) - private String download; - - @Size(max = 50) - private String environment; - - @Size(max = 50) - private String installation; - - @Size(max = 50) - private String similarPkgs; - - @Size(max = 50) - private String dependencyPkgs; - @Range(min = 1, max = 1000, message = "page must be greater than 0 and less than 1000 ") private Integer pageNum = 1; @Range(min = 5, max = 50, message = "page must be greater than 5 and less than 50 ") private Integer pageSize = 10; - - @Pattern(regexp = "\\b(?:exact|fuzzy)\\b", message = "exactSearch: exact / fuzzy") - private String exactSearch = "fuzzy"; } + diff --git a/src/main/java/com/easysoftware/entity/dto/InputApplicationPackage.java b/src/main/java/com/easysoftware/application/applicationpackage/dto/InputApplicationPackage.java similarity index 78% rename from src/main/java/com/easysoftware/entity/dto/InputApplicationPackage.java rename to src/main/java/com/easysoftware/application/applicationpackage/dto/InputApplicationPackage.java index 4e4351f..bccdbff 100644 --- a/src/main/java/com/easysoftware/entity/dto/InputApplicationPackage.java +++ b/src/main/java/com/easysoftware/application/applicationpackage/dto/InputApplicationPackage.java @@ -1,14 +1,5 @@ -package com.easysoftware.entity.dto; - -import java.util.List; - -import org.hibernate.validator.constraints.URL; - -import com.easysoftware.util.ValidList; - -import jakarta.validation.Valid; +package com.easysoftware.application.applicationpackage.dto; import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Size; import lombok.AllArgsConstructor; import lombok.Data; @@ -30,11 +21,11 @@ public class InputApplicationPackage { // app @Size(max = 10000, message = "the length of download can not exceed 10000") - private String download; + private String download; @Size(max = 10000, message = "the length of environment can not exceed 10000") - private String environment; + private String environment; @Size(max = 10000, message = "the length of installation can not exceed 10000") - private String installation; + private String installation; @Size(max = 10000, message = "the length of similarPkgs can not exceed 10000") private String similarPkgs; diff --git a/src/main/java/com/easysoftware/domain/applicationpackage/ApplicationPackage.java b/src/main/java/com/easysoftware/domain/applicationpackage/ApplicationPackage.java new file mode 100644 index 0000000..047eb34 --- /dev/null +++ b/src/main/java/com/easysoftware/domain/applicationpackage/ApplicationPackage.java @@ -0,0 +1,35 @@ +package com.easysoftware.domain.applicationpackage; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ApplicationPackage { + @Serial + private static final long serialVersionUID = 1L; + + public String description; + + public String name; + + public String license; + + + private String download; + + private String environment; + + + private String installation; + + + private String similarPkgs; + + + private String dependencyPkgs; +} diff --git a/src/main/java/com/easysoftware/domain/applicationpackage/gateway/ApplicationPackageGateway.java b/src/main/java/com/easysoftware/domain/applicationpackage/gateway/ApplicationPackageGateway.java new file mode 100644 index 0000000..b32c2f4 --- /dev/null +++ b/src/main/java/com/easysoftware/domain/applicationpackage/gateway/ApplicationPackageGateway.java @@ -0,0 +1,16 @@ +package com.easysoftware.domain.applicationpackage.gateway; + +import java.util.List; + +import com.easysoftware.application.applicationpackage.dto.ApplicationPackageSearchCondition; +import com.easysoftware.application.applicationpackage.dto.InputApplicationPackage; +import com.easysoftware.domain.applicationpackage.ApplicationPackage; + +public interface ApplicationPackageGateway { + boolean existApp(String name); + boolean save(ApplicationPackage appPkg); + boolean update(ApplicationPackage appPkg); + boolean delete(List names); + List queryByName(ApplicationPackageSearchCondition condition); +} + diff --git a/src/main/java/com/easysoftware/exception/MyJacksonException.java b/src/main/java/com/easysoftware/domain/common/exception/MyJacksonException.java similarity index 84% rename from src/main/java/com/easysoftware/exception/MyJacksonException.java rename to src/main/java/com/easysoftware/domain/common/exception/MyJacksonException.java index ff23531..2326fa8 100644 --- a/src/main/java/com/easysoftware/exception/MyJacksonException.java +++ b/src/main/java/com/easysoftware/domain/common/exception/MyJacksonException.java @@ -1,4 +1,4 @@ -package com.easysoftware.exception; +package com.easysoftware.domain.common.exception; public class MyJacksonException extends RuntimeException { private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/easysoftware/exception/ParamErrorException.java b/src/main/java/com/easysoftware/domain/common/exception/ParamErrorException.java similarity index 82% rename from src/main/java/com/easysoftware/exception/ParamErrorException.java rename to src/main/java/com/easysoftware/domain/common/exception/ParamErrorException.java index 321091f..6700d44 100644 --- a/src/main/java/com/easysoftware/exception/ParamErrorException.java +++ b/src/main/java/com/easysoftware/domain/common/exception/ParamErrorException.java @@ -1,4 +1,4 @@ -package com.easysoftware.exception; +package com.easysoftware.domain.common.exception; public class ParamErrorException extends RuntimeException { private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/easysoftware/entity/vo/HttpResult.java b/src/main/java/com/easysoftware/domain/common/utils/HttpResult.java similarity index 62% rename from src/main/java/com/easysoftware/entity/vo/HttpResult.java rename to src/main/java/com/easysoftware/domain/common/utils/HttpResult.java index 076c483..88a3960 100644 --- a/src/main/java/com/easysoftware/entity/vo/HttpResult.java +++ b/src/main/java/com/easysoftware/domain/common/utils/HttpResult.java @@ -1,11 +1,10 @@ -package com.easysoftware.entity.vo; +package com.easysoftware.domain.common.utils; import java.text.SimpleDateFormat; import java.util.Date; -import com.easysoftware.util.ObjectMapperUtil; +import org.springframework.http.HttpStatus; -import lombok.AllArgsConstructor; import lombok.Data; @Data @@ -16,7 +15,7 @@ public class HttpResult { private String updataAt; public HttpResult(Throwable e) { - this.status = 201; + this.status = HttpStatus.BAD_REQUEST.value(); this.msg = e.getMessage(); } @@ -31,12 +30,14 @@ public class HttpResult { } public static String ok(String msg, Object object) { - HttpResult res = new HttpResult(200, msg, object, new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX").format(new Date())); + String updataAt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX").format(new Date()); + HttpResult res = new HttpResult(HttpStatus.OK.value(), msg, object, updataAt); return ObjectMapperUtil.writeValueAsString(res); } public static String fail(Integer status, String msg, Object object) { - HttpResult res = new HttpResult(status, msg, object, new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX").format(new Date())); + String updataAt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX").format(new Date()); + HttpResult res = new HttpResult(status, msg, object, updataAt); return ObjectMapperUtil.writeValueAsString(res); } diff --git a/src/main/java/com/easysoftware/util/ObjectMapperUtil.java b/src/main/java/com/easysoftware/domain/common/utils/ObjectMapperUtil.java similarity index 98% rename from src/main/java/com/easysoftware/util/ObjectMapperUtil.java rename to src/main/java/com/easysoftware/domain/common/utils/ObjectMapperUtil.java index 8f84c4c..605df65 100644 --- a/src/main/java/com/easysoftware/util/ObjectMapperUtil.java +++ b/src/main/java/com/easysoftware/domain/common/utils/ObjectMapperUtil.java @@ -1,6 +1,6 @@ -package com.easysoftware.util; +package com.easysoftware.domain.common.utils; -import com.easysoftware.exception.MyJacksonException; +import com.easysoftware.domain.common.exception.MyJacksonException; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; diff --git a/src/main/java/com/easysoftware/util/UuidUtil.java b/src/main/java/com/easysoftware/domain/common/utils/UuidUtil.java similarity index 79% rename from src/main/java/com/easysoftware/util/UuidUtil.java rename to src/main/java/com/easysoftware/domain/common/utils/UuidUtil.java index 663d992..d3380ed 100644 --- a/src/main/java/com/easysoftware/util/UuidUtil.java +++ b/src/main/java/com/easysoftware/domain/common/utils/UuidUtil.java @@ -1,4 +1,4 @@ -package com.easysoftware.util; +package com.easysoftware.domain.common.utils; import java.util.UUID; diff --git a/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/ApplicationPackageGatewayImpl.java b/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/ApplicationPackageGatewayImpl.java new file mode 100644 index 0000000..c3953f0 --- /dev/null +++ b/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/ApplicationPackageGatewayImpl.java @@ -0,0 +1,80 @@ +package com.easysoftware.infrastructure.applicationpackage.gatewayimpl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.easysoftware.application.applicationpackage.dto.ApplicationPackageSearchCondition; +import com.easysoftware.domain.applicationpackage.ApplicationPackage; +import com.easysoftware.domain.applicationpackage.gateway.ApplicationPackageGateway; +import com.easysoftware.infrastructure.applicationpackage.gatewayimpl.converter.ApplicationPackageConvertor; +import com.easysoftware.infrastructure.applicationpackage.gatewayimpl.dataobject.ApplicationPackageDO; +import com.easysoftware.infrastructure.mapper.ApplicationPackageDOMapper; + +@Component +public class ApplicationPackageGatewayImpl implements ApplicationPackageGateway { + @Autowired + private ApplicationPackageDOMapper appPkgMapper; + + @Override + public boolean delete(List names) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.in("name", names); + int mark = appPkgMapper.delete(wrapper); + return mark == 1; + } + + + @Override + public boolean existApp(String name) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("name", name); + return appPkgMapper.exists(wrapper); + } + + + @Override + public boolean save(ApplicationPackage appPkg) { + ApplicationPackageDO appPkgDO = ApplicationPackageConvertor.toDataObjectForCreate(appPkg); + int mark = appPkgMapper.insert(appPkgDO); + return mark == 1; + } + + + @Override + public boolean update(ApplicationPackage appPkg) { + ApplicationPackageDO appPkgDO = ApplicationPackageConvertor.toDataObjectForUpdate(appPkg); + + UpdateWrapper wrapper = new UpdateWrapper<>(); + wrapper.eq("name", appPkg.getName()); + + int mark = appPkgMapper.update(appPkgDO, wrapper); + return mark == 1; + } + + @Override + public List queryByName(ApplicationPackageSearchCondition condition) { + int pageNum = condition.getPageNum(); + int pageSize = condition.getPageSize(); + String name = condition.getName(); + + Page page = new Page<>(pageNum, pageSize); + + QueryWrapper wrapper = new QueryWrapper<>(); + if ("all".equals(name)) { + } else { + wrapper.eq("name", name); + } + + Page resPage = appPkgMapper.selectPage(page, wrapper); + List appDOs = resPage.getRecords(); + List res = ApplicationPackageConvertor.toEntity(appDOs); + + return res; + } +} + + diff --git a/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/converter/ApplicationPackageConvertor.java b/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/converter/ApplicationPackageConvertor.java new file mode 100644 index 0000000..7b9edad --- /dev/null +++ b/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/converter/ApplicationPackageConvertor.java @@ -0,0 +1,56 @@ +package com.easysoftware.infrastructure.applicationpackage.gatewayimpl.converter; + +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.List; + +import org.springframework.beans.BeanUtils; + +import com.easysoftware.domain.applicationpackage.ApplicationPackage; +import com.easysoftware.domain.common.utils.UuidUtil; +import com.easysoftware.infrastructure.applicationpackage.gatewayimpl.dataobject.ApplicationPackageDO; + +public class ApplicationPackageConvertor { + public static ApplicationPackage toEntity(ApplicationPackageDO appPkgDO) { + ApplicationPackage appPkg = new ApplicationPackage(); + BeanUtils.copyProperties(appPkgDO, appPkg); + return appPkg; + } + + public static List toEntity(List appDOs) { + List res = new ArrayList<>(); + for (ApplicationPackageDO appDO : appDOs) { + ApplicationPackage app = toEntity(appDO); + res.add(app); + } + return res; + } + + public static ApplicationPackageDO toDataObject(ApplicationPackage appPkg) { + ApplicationPackageDO appPkgDO = new ApplicationPackageDO(); + BeanUtils.copyProperties(appPkg, appPkgDO); + return appPkgDO; + } + + public static ApplicationPackageDO toDataObjectForCreate(ApplicationPackage appPkg) { + ApplicationPackageDO appPkgDO = toDataObject(appPkg); + + Timestamp currentTime = new Timestamp(System.currentTimeMillis()); + String id = UuidUtil.getUUID32(); + appPkgDO.setCreateAt(currentTime); + appPkgDO.setUpdateAt(currentTime); + appPkgDO.setId(id); + + return appPkgDO; + } + + public static ApplicationPackageDO toDataObjectForUpdate(ApplicationPackage appPkg) { + ApplicationPackageDO appPkgDO = toDataObject(appPkg); + + Timestamp currentTime = new Timestamp(System.currentTimeMillis()); + appPkgDO.setUpdateAt(currentTime); + + return appPkgDO; + } +} + diff --git a/src/main/java/com/easysoftware/entity/po/pkg/ApplicationPackage.java b/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/dataobject/ApplicationPackageDO.java similarity index 63% rename from src/main/java/com/easysoftware/entity/po/pkg/ApplicationPackage.java rename to src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/dataobject/ApplicationPackageDO.java index 0163966..4bf40b0 100644 --- a/src/main/java/com/easysoftware/entity/po/pkg/ApplicationPackage.java +++ b/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/dataobject/ApplicationPackageDO.java @@ -1,16 +1,19 @@ -package com.easysoftware.entity.po.pkg; +package com.easysoftware.infrastructure.applicationpackage.gatewayimpl.dataobject; import java.io.Serial; import java.sql.Timestamp; +import com.baomidou.mybatisplus.annotation.TableName; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data -@NoArgsConstructor @AllArgsConstructor -public class ApplicationPackage { +@NoArgsConstructor +@TableName("application_package") +public class ApplicationPackageDO { @Serial private static final long serialVersionUID = 1L; @@ -24,19 +27,18 @@ public class ApplicationPackage { public String license; - private String download; + private String download; - private String environment; + private String environment; - private String installation; + private String installation; private String similarPkgs; - private String dependencyPkgs; @@ -45,5 +47,4 @@ public class ApplicationPackage { private Timestamp createAt; private Timestamp updateAt; - } diff --git a/src/main/java/com/easysoftware/infrastructure/mapper/ApplicationPackageDOMapper.java b/src/main/java/com/easysoftware/infrastructure/mapper/ApplicationPackageDOMapper.java new file mode 100644 index 0000000..c14d798 --- /dev/null +++ b/src/main/java/com/easysoftware/infrastructure/mapper/ApplicationPackageDOMapper.java @@ -0,0 +1,8 @@ +package com.easysoftware.infrastructure.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.easysoftware.infrastructure.applicationpackage.gatewayimpl.dataobject.ApplicationPackageDO; + +public interface ApplicationPackageDOMapper extends BaseMapper { + +} diff --git a/src/main/java/com/easysoftware/mapper/AppPackageMapper.java b/src/main/java/com/easysoftware/mapper/AppPackageMapper.java deleted file mode 100644 index 5ed08cc..0000000 --- a/src/main/java/com/easysoftware/mapper/AppPackageMapper.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.easysoftware.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.easysoftware.entity.po.pkg.ApplicationPackage; - -public interface AppPackageMapper extends BaseMapper { - -} diff --git a/src/main/java/com/easysoftware/service/impl/AppPackageServiceImpl.java b/src/main/java/com/easysoftware/service/impl/AppPackageServiceImpl.java deleted file mode 100644 index dbef730..0000000 --- a/src/main/java/com/easysoftware/service/impl/AppPackageServiceImpl.java +++ /dev/null @@ -1,176 +0,0 @@ -package com.easysoftware.service.impl; - -import java.lang.reflect.Field; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.easysoftware.entity.dto.ApplicationPackageSearchCondition; -import com.easysoftware.entity.dto.InputApplicationPackage; -import com.easysoftware.entity.po.pkg.ApplicationPackage; -import com.easysoftware.entity.vo.HttpResult; -import com.easysoftware.mapper.AppPackageMapper; -import com.easysoftware.service.ApplicationPackageService; -import com.easysoftware.util.UuidUtil; - -@Service -public class AppPackageServiceImpl implements ApplicationPackageService { - @Autowired - private AppPackageMapper appPackageMapper; - - - @Override - public String deleteAppPkg(List names) { - QueryWrapper wrapper = new QueryWrapper<>(); - - wrapper.in("name", names); - - int mark = appPackageMapper.delete(wrapper); - if (mark != 0) { - return HttpResult.ok(String.format("需要删除 %d 条数据,完成删除 %d 条数据" - , names.size(), mark), null); - } - return HttpResult.fail(400, "删除失败", null); - } - - - @Override - public String insertAppPkg(InputApplicationPackage inputApp) { - // 数据库中是否已存在该包 - boolean found = findAppFromTable(inputApp.getName()); - if (found) { - return HttpResult.fail(400, "请求的包已存在", null); - } - ApplicationPackage appPackage = new ApplicationPackage(); - BeanUtils.copyProperties(inputApp, appPackage); - - Timestamp currentTime = new Timestamp(System.currentTimeMillis()); - String id = UuidUtil.getUUID32(); - appPackage.setCreateAt(currentTime); - appPackage.setUpdateAt(currentTime); - appPackage.setId(id); - - int mark = appPackageMapper.insert(appPackage); - if (mark != 1) { - return HttpResult.fail(400, "新增数据失败", null); - } - return HttpResult.ok("新增1条数据", null); - } - - - @Override - public String updateAppPkg(InputApplicationPackage inputApp) { - // 数据库中是否已存在该包 - boolean found = findAppFromTable(inputApp.getName()); - if (!found) { - return HttpResult.fail(400, "请求的包不存在", null); - } - - UpdateWrapper wrapper = new UpdateWrapper<>(); - wrapper.eq("name", inputApp.getName()); - ApplicationPackage appPackage = new ApplicationPackage(); - BeanUtils.copyProperties(inputApp, appPackage); - - int mark = appPackageMapper.update(appPackage, wrapper); - if (mark != 1) { - return HttpResult.fail(400, "新增数据失败", null); - } - return HttpResult.ok("新增1条数据", null); - } - - - private boolean findAppFromTable(String name) { - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq("name", name); - return appPackageMapper.exists(wrapper); - } - - - @Override - public String searchAppPkg(ApplicationPackageSearchCondition condition) { - int pageNum = condition.getPageNum(); - int pageSize = condition.getPageSize(); - String exactSearch = condition.getExactSearch(); - - Page page = new Page<>(pageNum, pageSize); - QueryWrapper wrapper = new QueryWrapper<>(); - - Map> conMap = parseCondition(condition); - - // 组装 wrapper - if ("exact".equals(exactSearch)) { - for (Map.Entry> con : conMap.entrySet()) { - wrapper.in(con.getKey(), con.getValue()); - } - } else if ("fuzzy".equals(exactSearch)) { - for (Map.Entry> con : conMap.entrySet()) { - List values = con.getValue(); - for (String value : values) { - wrapper.like(con.getKey(), value).or(); - } - } - } else { - - } - - Page resPage = appPackageMapper.selectPage(page, wrapper); - List res = resPage.getRecords(); - return HttpResult.ok("查询完成", res); - } - - private Map> parseCondition(ApplicationPackageSearchCondition condition) { - Field[] fields = condition.getClass().getDeclaredFields(); - Map> res = new HashMap<>(); - for (Field field : fields) { - field.setAccessible(true); - - String name = field.getName(); - if ("pageNum".equals(name) || "pageSize".equals(name) || "exactSearch".equals(name)) { - continue; - } - - String typeName = field.getType().getName(); - if (! "java.lang.String".equals(typeName)) { - continue; - } - - String value = ""; - try { - value = (String) field.get(condition); - } catch (IllegalAccessException e) { - continue; - } - - if (! StringUtils.hasText(value)) { - continue; - } - - String[] splits = value.split(","); - - List values = new ArrayList<>(); - for (String v : splits) { - v = v.strip(); - if (StringUtils.hasText(v)) { - values.add(v); - } - } - - res.put(name, values); - - } - return res; - } -} - - diff --git a/src/main/java/com/easysoftware/util/ValidList.java b/src/main/java/com/easysoftware/util/ValidList.java deleted file mode 100644 index dd86b54..0000000 --- a/src/main/java/com/easysoftware/util/ValidList.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.easysoftware.util; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; - -import jakarta.validation.Valid; -import lombok.Data; - -@Data -public class ValidList implements List { - @Valid - private List list = new ArrayList<>(); - - @Override - public int size() { - return list.size(); - } - - @Override - public boolean isEmpty() { - return list.isEmpty(); - } - - @Override - public boolean contains(Object o) { - return list.contains(o); - } - - @Override - public Iterator iterator() { - return list.iterator(); - } - - @Override - public Object[] toArray() { - return list.toArray(); - } - - @Override - public T[] toArray(T[] a) { - return list.toArray(a); - } - - @Override - public boolean add(E e) { - return list.add(e); - } - - @Override - public boolean remove(Object o) { - return list.remove(o); - } - - @Override - public boolean containsAll(Collection c) { - return list.containsAll(c); - } - - @Override - public boolean addAll(Collection c) { - return list.addAll(c); - } - - @Override - public boolean addAll(int index, Collection c) { - return list.addAll(index,c); - } - - @Override - public boolean removeAll(Collection c) { - return list.removeAll(c); - } - - @Override - public boolean retainAll(Collection c) { - return list.retainAll(c); - } - - @Override - public void clear() { - list.clear(); - } - - @Override - public E get(int index) { - return list.get(index); - } - - @Override - public E set(int index, E element) { - return list.set(index,element); - } - - @Override - public void add(int index, E element) { - list.add(index,element); - } - - @Override - public E remove(int index) { - return list.remove(index); - } - - @Override - public int indexOf(Object o) { - return list.indexOf(o); - } - - @Override - public int lastIndexOf(Object o) { - return list.lastIndexOf(o); - } - - @Override - public ListIterator listIterator() { - return list.listIterator(); - } - - @Override - public ListIterator listIterator(int index) { - return list.listIterator(index); - } - - @Override - public List subList(int fromIndex, int toIndex) { - return list.subList(fromIndex,toIndex); - } -} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties deleted file mode 100644 index 8b13789..0000000 --- a/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/main/resources/mapper/UpStreamMapper.xml b/src/main/resources/mapper/ApplicationPackageDOMapper.xml similarity index 64% rename from src/main/resources/mapper/UpStreamMapper.xml rename to src/main/resources/mapper/ApplicationPackageDOMapper.xml index 656f902..38751cd 100644 --- a/src/main/resources/mapper/UpStreamMapper.xml +++ b/src/main/resources/mapper/ApplicationPackageDOMapper.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/src/main/resources/mapper/PreAppMapper.xml b/src/main/resources/mapper/PreAppMapper.xml deleted file mode 100644 index bb7a7aa..0000000 --- a/src/main/resources/mapper/PreAppMapper.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/main/resources/mapper/SrcPackageMapper.xml b/src/main/resources/mapper/SrcPackageMapper.xml deleted file mode 100644 index a9e22b6..0000000 --- a/src/main/resources/mapper/SrcPackageMapper.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file -- Gitee