diff --git a/src/main/java/com/easysoftware/adapter/query/ApplicationPackageQueryAdapter.java b/src/main/java/com/easysoftware/adapter/query/ApplicationPackageQueryAdapter.java index 0c6207345d0526b2f0fc676507300c7738da7fe2..f43aedea1d5c0c95566d1ee254a8ee3940e03eb3 100644 --- a/src/main/java/com/easysoftware/adapter/query/ApplicationPackageQueryAdapter.java +++ b/src/main/java/com/easysoftware/adapter/query/ApplicationPackageQueryAdapter.java @@ -1,31 +1,13 @@ package com.easysoftware.adapter.query; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.OutputStream; - -import javax.imageio.ImageIO; - import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; 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.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; -import jakarta.validation.constraints.NotBlank; @RestController @RequestMapping("/apppkg") @@ -33,15 +15,9 @@ public class ApplicationPackageQueryAdapter { @Autowired private ApplicationPackageService appPkgService; - @GetMapping() - public ResponseEntity searchAppPkg(@Valid ApplicationPackageSearchCondition condition) { + @GetMapping("") + public ResponseEntity queryByName(@Valid ApplicationPackageSearchCondition condition) { ResponseEntity res = appPkgService.searchAppPkg(condition); return res; } - - @GetMapping(value = "/icon/{name}") - public ResponseEntity searchAppPkgIcon(@NotBlank @PathVariable("name") String name) throws Exception { - ResponseEntity res = appPkgService.searchAppPkgIcon(name); - return res; - } } diff --git a/src/main/java/com/easysoftware/adapter/query/DomainPackageQueryAdapter.java b/src/main/java/com/easysoftware/adapter/query/DomainPackageQueryAdapter.java new file mode 100644 index 0000000000000000000000000000000000000000..1fe59fcf8ec11d6573c31d53b95e2e8370e0684a --- /dev/null +++ b/src/main/java/com/easysoftware/adapter/query/DomainPackageQueryAdapter.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.domainpackage.DomainPackageService; +import com.easysoftware.application.domainpackage.dto.DomainSearchCondition; + +import jakarta.validation.Valid; + +@RestController +@RequestMapping("/domain") +public class DomainPackageQueryAdapter { + @Autowired + private DomainPackageService domainService; + + @GetMapping() + public ResponseEntity queryByName(@Valid DomainSearchCondition condition) { + ResponseEntity res = domainService.searchDomain(condition); + return res; + } +} diff --git a/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageService.java b/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageService.java index 04d54966f21f77dcac08c9709243845fbd8307a4..c299a3384765781d177d4b17a181ac9f22a63c7c 100644 --- a/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageService.java +++ b/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageService.java @@ -1,19 +1,17 @@ package com.easysoftware.application.applicationpackage; import java.util.List; - +import java.util.Map; import org.springframework.http.ResponseEntity; import com.easysoftware.application.applicationpackage.dto.ApplicationPackageSearchCondition; import com.easysoftware.application.applicationpackage.dto.InputApplicationPackage; - -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; +import com.easysoftware.application.applicationpackage.vo.ApplicationPackageMenuVo; public interface ApplicationPackageService { ResponseEntity insertAppPkg(InputApplicationPackage listApp); ResponseEntity updateAppPkg(InputApplicationPackage inputAppPackage); ResponseEntity deleteAppPkg(List names); ResponseEntity searchAppPkg(ApplicationPackageSearchCondition condition); - ResponseEntity searchAppPkgIcon(String name); + List queryAllAppPkgMenu(ApplicationPackageSearchCondition condition); } diff --git a/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageServiceImpl.java b/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageServiceImpl.java index e11e58e21ed4c572027249643375d85c6a64ac97..3e9c12b9285a28f7c7dfec470f056f547d10a828 100644 --- a/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageServiceImpl.java +++ b/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageServiceImpl.java @@ -1,29 +1,25 @@ package com.easysoftware.application.applicationpackage; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.OutputStream; + 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.Value; -import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import com.easysoftware.application.applicationpackage.dto.ApplicationPackageSearchCondition; import com.easysoftware.application.applicationpackage.dto.InputApplicationPackage; +import com.easysoftware.application.applicationpackage.vo.ApplicationPackageDetailVo; +import com.easysoftware.application.applicationpackage.vo.ApplicationPackageMenuVo; import com.easysoftware.common.entity.MessageCode; +import com.easysoftware.common.exception.enumvalid.AppCategoryEnum; import com.easysoftware.common.utils.ResultUtil; import com.easysoftware.domain.applicationpackage.ApplicationPackage; import com.easysoftware.domain.applicationpackage.gateway.ApplicationPackageGateway; - import jakarta.annotation.Resource; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; @Service public class ApplicationPackageServiceImpl implements ApplicationPackageService { @@ -47,12 +43,6 @@ public class ApplicationPackageServiceImpl implements ApplicationPackageService return ResultUtil.success(HttpStatus.OK); } - @Override - public ResponseEntity searchAppPkg(ApplicationPackageSearchCondition condition) { - List res = appPkgGateway.queryByName(condition); - return ResultUtil.success(HttpStatus.OK, res); - } - @Override public ResponseEntity updateAppPkg(InputApplicationPackage inputAppPkg) { // 数据库中是否已存在该包 @@ -94,10 +84,17 @@ public class ApplicationPackageServiceImpl implements ApplicationPackageService } @Override - public ResponseEntity searchAppPkgIcon(String name) { - byte[] data = appPkgGateway.getAppPkgIcon(name); - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.IMAGE_PNG); - return ResultUtil.success(HttpStatus.OK, headers, data); + public ResponseEntity searchAppPkg(ApplicationPackageSearchCondition condition) { + + // 查找详情页 + List res = appPkgGateway.queryDetailByName(condition); + return ResultUtil.success(HttpStatus.OK, res); + } + + @Override + public List queryAllAppPkgMenu(ApplicationPackageSearchCondition condition) { + List menuList = appPkgGateway.queryMenuByName(condition); + + return menuList; } } 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 62a77837d2483156abf6a2a3bcf72ffd11e90867..bc0e2e4f08a14a509b8230a767193dca153edfc5 100644 --- a/src/main/java/com/easysoftware/application/applicationpackage/dto/InputApplicationPackage.java +++ b/src/main/java/com/easysoftware/application/applicationpackage/dto/InputApplicationPackage.java @@ -1,7 +1,10 @@ package com.easysoftware.application.applicationpackage.dto; +import org.hibernate.validator.constraints.URL; + import com.easysoftware.common.exception.enumvalid.AppCategoryEnum; import com.easysoftware.common.exception.enumvalid.EnumValue; +import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Size; import lombok.AllArgsConstructor; @@ -14,6 +17,7 @@ import lombok.NoArgsConstructor; public class InputApplicationPackage { @Size(max = 10000, message = "the length of description can not exceed 10000") public String description; + @NotBlank(message = "name can not be null") @Size(max = 255, message = "the length of name can not exceed 255") public String name; @@ -21,8 +25,6 @@ public class InputApplicationPackage { @Size(max = 1000, message = "the length of arch can not exceed 5000") public String license; - - // app @Size(max = 10000, message = "the length of download can not exceed 10000") private String download; @Size(max = 10000, message = "the length of environment can not exceed 10000") @@ -38,4 +40,58 @@ public class InputApplicationPackage { @EnumValue(enumClass = AppCategoryEnum.class, enumMethod = "isValidCategory") private String appCategory; + + @Size(max = 100, message = "the length of type can not exceed 100") + private String type; + + @Size(max = 100, message = "the length of iconUrl can not exceed 100") + private String iconUrl; + + @Size(max = 100, message = "the length of appVer can not exceed 100") + private String appVer; + + @Size(max = 100, message = "the length of osSupport can not exceed 100") + private String osSupport; + + @Size(max = 100, message = "the length of os can not exceed 100") + private String os; + + @Size(max = 100, message = "the length of arch can not exceed 100") + private String arch; + + @Size(max = 100, message = "the length of maintainerId can not exceed 100") + private String maintainerId; + + @Email + @Size(max = 100, message = "the length of maintainerEmail can not exceed 100") + private String maintainerEmail; + + @Size(max = 100, message = "the length of maintainerGiteeId can not exceed 100") + private String maintainerGiteeId; + + @Size(max = 100, message = "the length of maintainerUpdateAt can not exceed 100") + private String maintainerUpdateAt; + + @Size(max = 100, message = "the length of securityLevel can not exceed 100") + private String securityLevel; + + @Size(max = 100, message = "the length of safeLabel can not exceed 100") + private String safeLabel; + + @Size(max = 100, message = "the length of downloadCount can not exceed 100") + private String downloadCount; + + @Size(max = 100, message = "the length of appSize can not exceed 100") + private String appSize; + + @Size(max = 100, message = "the length of srcRepo can not exceed 100") + private String srcRepo; + + @URL + @Size(max = 200, message = "the length of srcDownloadUrl can not exceed 200") + private String srcDownloadUrl; + + @URL + @Size(max = 200, message = "the length of binDownloadUrl can not exceed 200") + private String binDownloadUrl; } diff --git a/src/main/java/com/easysoftware/application/applicationpackage/vo/ApplicationPackageDetailVo.java b/src/main/java/com/easysoftware/application/applicationpackage/vo/ApplicationPackageDetailVo.java new file mode 100644 index 0000000000000000000000000000000000000000..2467cd4f6d90ee5be211a27a33e56397ee670089 --- /dev/null +++ b/src/main/java/com/easysoftware/application/applicationpackage/vo/ApplicationPackageDetailVo.java @@ -0,0 +1,59 @@ +package com.easysoftware.application.applicationpackage.vo; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ApplicationPackageDetailVo { + public String description; + + public String name; + + public String license; + + private String download; + + private String environment; + + private String installation; + + private String similarPkgs; + + private String appCategory; + + private String dependencyPkgs; + + private String appVer; + + private String osSupport; + + private String os; + + private String arch; + + private String maintainerId; + + private String maintainerEmail; + + private String maintainerGiteeId; + + private String maintainerUpdateAt; + + private String securityLevel; + + private String safeLabel; + + private String downloadCount; + + private String appSize; + + private String srcRepo; + + private String srcDownloadUrl; + + private String binDownloadUrl; + + private String type; +} diff --git a/src/main/java/com/easysoftware/application/applicationpackage/vo/ApplicationPackageMenuVo.java b/src/main/java/com/easysoftware/application/applicationpackage/vo/ApplicationPackageMenuVo.java new file mode 100644 index 0000000000000000000000000000000000000000..4bc54efc80f8243944441dae211d6de1c72b0984 --- /dev/null +++ b/src/main/java/com/easysoftware/application/applicationpackage/vo/ApplicationPackageMenuVo.java @@ -0,0 +1,15 @@ +package com.easysoftware.application.applicationpackage.vo; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ApplicationPackageMenuVo { + private String appCategory; + private String name; + private String description; + private String iconUrl; + private String type; +} diff --git a/src/main/java/com/easysoftware/application/domainpackage/DomainPackageService.java b/src/main/java/com/easysoftware/application/domainpackage/DomainPackageService.java new file mode 100644 index 0000000000000000000000000000000000000000..ab93c3e5368c33a65a79d12641841793c2aea264 --- /dev/null +++ b/src/main/java/com/easysoftware/application/domainpackage/DomainPackageService.java @@ -0,0 +1,9 @@ +package com.easysoftware.application.domainpackage; + +import org.springframework.http.ResponseEntity; + +import com.easysoftware.application.domainpackage.dto.DomainSearchCondition; + +public interface DomainPackageService { + ResponseEntity searchDomain(DomainSearchCondition condition); +} diff --git a/src/main/java/com/easysoftware/application/domainpackage/DomainPackageServiceImpl.java b/src/main/java/com/easysoftware/application/domainpackage/DomainPackageServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..df064dc9e71c93a8726f35dab4d50c8a6939bfd9 --- /dev/null +++ b/src/main/java/com/easysoftware/application/domainpackage/DomainPackageServiceImpl.java @@ -0,0 +1,76 @@ +package com.easysoftware.application.domainpackage; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.BeanUtils; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +import com.easysoftware.application.applicationpackage.ApplicationPackageService; +import com.easysoftware.application.applicationpackage.dto.ApplicationPackageSearchCondition; +import com.easysoftware.application.applicationpackage.dto.InputApplicationPackage; +import com.easysoftware.application.applicationpackage.vo.ApplicationPackageDetailVo; +import com.easysoftware.application.applicationpackage.vo.ApplicationPackageMenuVo; +import com.easysoftware.application.domainpackage.dto.DomainSearchCondition; +import com.easysoftware.application.domainpackage.vo.DomainPackageMenuVo; +import com.easysoftware.common.entity.MessageCode; +import com.easysoftware.common.exception.enumvalid.AppCategoryEnum; +import com.easysoftware.common.utils.ResultUtil; +import com.easysoftware.domain.applicationpackage.ApplicationPackage; +import com.easysoftware.domain.applicationpackage.gateway.ApplicationPackageGateway; +import jakarta.annotation.Resource; + +@Service +public class DomainPackageServiceImpl implements DomainPackageService { + @Resource + ApplicationPackageService appPkgService; + + @Override + public ResponseEntity searchDomain(DomainSearchCondition condition) { + if ("apppkg".equals(condition.getName())) { + ApplicationPackageSearchCondition appCon = new ApplicationPackageSearchCondition(); + BeanUtils.copyProperties(condition, appCon); + List appMenuList = appPkgService.queryAllAppPkgMenu(appCon); + List domainMenuList = new ArrayList<>(); + + for (ApplicationPackageMenuVo appMenu : appMenuList) { + DomainPackageMenuVo domainMenu = new DomainPackageMenuVo(); + BeanUtils.copyProperties(appMenu, domainMenu); + domainMenu.setCategory(appMenu.getAppCategory()); + domainMenu.setTags(new ArrayList(Arrays.asList(appMenu.getType()))); + domainMenuList.add(domainMenu); + } + + List> res = groupByCategory(domainMenuList); + return ResultUtil.success(HttpStatus.OK, res); + } + return null; + } + + private List> groupByCategory(List menuList) { + Map> map = new HashMap<>(); + for (AppCategoryEnum categoryEnum : AppCategoryEnum.values()) { + String category = categoryEnum.getAlias(); + map.put(category, new ArrayList<>()); + } + + for (DomainPackageMenuVo menu: menuList) { + map.get(menu.getCategory()).add(menu); + } + + List> res = new ArrayList<>(); + for (String category: map.keySet()) { + Map cMap = new HashMap<>(); + cMap.put("name", category); + cMap.put("children", map.get(category)); + res.add(cMap); + } + + return res; + } +} diff --git a/src/main/java/com/easysoftware/application/domainpackage/dto/DomainSearchCondition.java b/src/main/java/com/easysoftware/application/domainpackage/dto/DomainSearchCondition.java new file mode 100644 index 0000000000000000000000000000000000000000..6c9c8c2f02b8323dc36741219d2d7c1a5bf8a3c5 --- /dev/null +++ b/src/main/java/com/easysoftware/application/domainpackage/dto/DomainSearchCondition.java @@ -0,0 +1,25 @@ +package com.easysoftware.application.domainpackage.dto; + +import org.hibernate.validator.constraints.Range; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DomainSearchCondition { + @Size(max = 50) + @NotBlank + private String name; + + @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; +} + diff --git a/src/main/java/com/easysoftware/application/domainpackage/dto/InputDomainPackage.java b/src/main/java/com/easysoftware/application/domainpackage/dto/InputDomainPackage.java new file mode 100644 index 0000000000000000000000000000000000000000..9ef632be64b2490add4070c80185f6dd65e5004a --- /dev/null +++ b/src/main/java/com/easysoftware/application/domainpackage/dto/InputDomainPackage.java @@ -0,0 +1,97 @@ +package com.easysoftware.application.domainpackage.dto; +import org.hibernate.validator.constraints.URL; + +import com.easysoftware.common.exception.enumvalid.AppCategoryEnum; +import com.easysoftware.common.exception.enumvalid.EnumValue; + +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class InputDomainPackage { + @Size(max = 10000, message = "the length of description can not exceed 10000") + public String description; + + @NotBlank(message = "name can not be null") + @Size(max = 255, message = "the length of name can not exceed 255") + public String name; + + @Size(max = 1000, message = "the length of arch can not exceed 5000") + public String license; + + @Size(max = 10000, message = "the length of download can not exceed 10000") + private String download; + @Size(max = 10000, message = "the length of environment can not exceed 10000") + private String environment; + @Size(max = 10000, message = "the length of installation can not exceed 10000") + private String installation; + + @Size(max = 10000, message = "the length of similarPkgs can not exceed 10000") + private String similarPkgs; + + @Size(max = 10000, message = "the length of dependencyPkgs can not exceed 10000") + private String dependencyPkgs; + + @EnumValue(enumClass = AppCategoryEnum.class, enumMethod = "isValidCategory") + private String appCategory; + + @Size(max = 100, message = "the length of type can not exceed 100") + private String type; + + @Size(max = 100, message = "the length of iconUrl can not exceed 100") + private String iconUrl; + + @Size(max = 100, message = "the length of appVer can not exceed 100") + private String appVer; + + @Size(max = 100, message = "the length of osSupport can not exceed 100") + private String osSupport; + + @Size(max = 100, message = "the length of os can not exceed 100") + private String os; + + @Size(max = 100, message = "the length of arch can not exceed 100") + private String arch; + + @Size(max = 100, message = "the length of maintainerId can not exceed 100") + private String maintainerId; + + @Email + @Size(max = 100, message = "the length of maintainerEmail can not exceed 100") + private String maintainerEmail; + + @Size(max = 100, message = "the length of maintainerGiteeId can not exceed 100") + private String maintainerGiteeId; + + @Size(max = 100, message = "the length of maintainerUpdateAt can not exceed 100") + private String maintainerUpdateAt; + + @Size(max = 100, message = "the length of securityLevel can not exceed 100") + private String securityLevel; + + @Size(max = 100, message = "the length of safeLabel can not exceed 100") + private String safeLabel; + + @Size(max = 100, message = "the length of downloadCount can not exceed 100") + private String downloadCount; + + @Size(max = 100, message = "the length of appSize can not exceed 100") + private String appSize; + + @Size(max = 100, message = "the length of srcRepo can not exceed 100") + private String srcRepo; + + @URL + @Size(max = 200, message = "the length of srcDownloadUrl can not exceed 200") + private String srcDownloadUrl; + + @URL + @Size(max = 200, message = "the length of binDownloadUrl can not exceed 200") + private String binDownloadUrl; +} diff --git a/src/main/java/com/easysoftware/application/domainpackage/vo/DomainPackageMenuVo.java b/src/main/java/com/easysoftware/application/domainpackage/vo/DomainPackageMenuVo.java new file mode 100644 index 0000000000000000000000000000000000000000..42da05bd7d7cc7e0c42d29307f470bb91933c517 --- /dev/null +++ b/src/main/java/com/easysoftware/application/domainpackage/vo/DomainPackageMenuVo.java @@ -0,0 +1,17 @@ +package com.easysoftware.application.domainpackage.vo; +import java.util.List; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DomainPackageMenuVo { + private String category; + private String name; + private String description; + private String iconUrl; + private List tags; +} diff --git a/src/main/java/com/easysoftware/common/exception/GlobalExceptionHandler.java b/src/main/java/com/easysoftware/common/exception/GlobalExceptionHandler.java index b145e2b79ff89a4a60688fad8247a8419171609f..0c562630a6a23927a4a859930cb086419c4ceeac 100644 --- a/src/main/java/com/easysoftware/common/exception/GlobalExceptionHandler.java +++ b/src/main/java/com/easysoftware/common/exception/GlobalExceptionHandler.java @@ -21,6 +21,7 @@ public class GlobalExceptionHandler { @ExceptionHandler(MethodArgumentNotValidException.class) @ResponseStatus(HttpStatus.BAD_REQUEST) public ResponseEntity exception(MethodArgumentNotValidException e) { + System.out.println(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 index bb7282bc67253247085b54f2e5389909554886cb..9e4af2511d08e8610400bae6535e6b3f5c0ec90b 100644 --- a/src/main/java/com/easysoftware/common/exception/enumvalid/AppCategoryEnum.java +++ b/src/main/java/com/easysoftware/common/exception/enumvalid/AppCategoryEnum.java @@ -1,12 +1,12 @@ package com.easysoftware.common.exception.enumvalid; public enum AppCategoryEnum { - BigData("bigdata"), - AI("ai"), - Storage("storage"), - Database("database"), - Cloud("cloud"), - Hpc("hpc"); + BigData("大数据"), + AI("AI"), + Storage("分布式存储"), + Database("数据库"), + Cloud("云服务"), + Hpc("HPC"); private String alias; diff --git a/src/main/java/com/easysoftware/domain/applicationpackage/ApplicationPackage.java b/src/main/java/com/easysoftware/domain/applicationpackage/ApplicationPackage.java index 4b0df86b56c3e89406684634940e76bbc10150d4..d7b7eb8a9970719e85c07b91b0f489186930af07 100644 --- a/src/main/java/com/easysoftware/domain/applicationpackage/ApplicationPackage.java +++ b/src/main/java/com/easysoftware/domain/applicationpackage/ApplicationPackage.java @@ -19,18 +19,49 @@ public class ApplicationPackage { public String license; - private String download; private String environment; - private String installation; - private String similarPkgs; private String appCategory; private String dependencyPkgs; + + private String iconUrl; + + private String appVer; + + private String osSupport; + + private String os; + + private String arch; + + private String maintainerId; + + private String maintainerEmail; + + private String maintainerGiteeId; + + private String maintainerUpdateAt; + + private String securityLevel; + + private String safeLabel; + + private String downloadCount; + + private String appSize; + + private String srcRepo; + + private String srcDownloadUrl; + + private String binDownloadUrl; + + private String type; } diff --git a/src/main/java/com/easysoftware/domain/applicationpackage/gateway/ApplicationPackageGateway.java b/src/main/java/com/easysoftware/domain/applicationpackage/gateway/ApplicationPackageGateway.java index 68b885cf89361711dee285ab1388dbad9454c29f..3c6998af8c5795b8ba231d22f7a3dd9aa7871e98 100644 --- a/src/main/java/com/easysoftware/domain/applicationpackage/gateway/ApplicationPackageGateway.java +++ b/src/main/java/com/easysoftware/domain/applicationpackage/gateway/ApplicationPackageGateway.java @@ -3,6 +3,8 @@ package com.easysoftware.domain.applicationpackage.gateway; import java.util.List; import com.easysoftware.application.applicationpackage.dto.ApplicationPackageSearchCondition; +import com.easysoftware.application.applicationpackage.vo.ApplicationPackageDetailVo; +import com.easysoftware.application.applicationpackage.vo.ApplicationPackageMenuVo; import com.easysoftware.domain.applicationpackage.ApplicationPackage; public interface ApplicationPackageGateway { @@ -10,7 +12,6 @@ public interface ApplicationPackageGateway { boolean save(ApplicationPackage appPkg); boolean update(ApplicationPackage appPkg); boolean delete(String name); - List queryByName(ApplicationPackageSearchCondition condition); - byte[] getAppPkgIcon(String name); + List queryMenuByName(ApplicationPackageSearchCondition condition); + List queryDetailByName(ApplicationPackageSearchCondition condition); } - diff --git a/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/ApplicationPackageGatewayImpl.java b/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/ApplicationPackageGatewayImpl.java index 085c335af73c5ae24cde7bcb4fc38d7394437355..80d0f6f794a39c9001345c93409980d2a0838981 100644 --- a/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/ApplicationPackageGatewayImpl.java +++ b/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/ApplicationPackageGatewayImpl.java @@ -1,19 +1,15 @@ package com.easysoftware.infrastructure.applicationpackage.gatewayimpl; -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.util.Base64; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; 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.common.exception.AppPkgIconException; +import com.easysoftware.application.applicationpackage.vo.ApplicationPackageDetailVo; +import com.easysoftware.application.applicationpackage.vo.ApplicationPackageMenuVo; import com.easysoftware.domain.applicationpackage.ApplicationPackage; import com.easysoftware.domain.applicationpackage.gateway.ApplicationPackageGateway; import com.easysoftware.infrastructure.applicationpackage.gatewayimpl.converter.ApplicationPackageConvertor; @@ -65,37 +61,36 @@ public class ApplicationPackageGatewayImpl implements ApplicationPackageGateway } @Override - public List queryByName(ApplicationPackageSearchCondition condition) { + public List queryMenuByName(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); - + List res = ApplicationPackageConvertor.toMenu(appDOs); + return res; } @Override - public byte[] getAppPkgIcon(String name) { - byte[] fileContent = null; - try { - File file = new File(apppkgIconPath + File.separator + name + ".png"); - fileContent = Files.readAllBytes(file.toPath()); - } catch (Exception e) { - throw new AppPkgIconException(); - } - return fileContent; - } -} + public List queryDetailByName(ApplicationPackageSearchCondition condition) { + int pageNum = condition.getPageNum(); + int pageSize = condition.getPageSize(); + String name = condition.getName(); + + Page page = new Page<>(pageNum, pageSize); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("name", name); + Page resPage = appPkgMapper.selectPage(page, wrapper); + List appDOs = resPage.getRecords(); + List res = ApplicationPackageConvertor.toDetail(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 index 15b2f7acbcb1bbbea14b29e1574cf1752faf2993..2a84604caaf826c8b17bc19bd893e79a6d21c158 100644 --- a/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/converter/ApplicationPackageConvertor.java +++ b/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/converter/ApplicationPackageConvertor.java @@ -6,6 +6,8 @@ import java.util.List; import org.springframework.beans.BeanUtils; +import com.easysoftware.application.applicationpackage.vo.ApplicationPackageDetailVo; +import com.easysoftware.application.applicationpackage.vo.ApplicationPackageMenuVo; import com.easysoftware.common.utils.UuidUtil; import com.easysoftware.domain.applicationpackage.ApplicationPackage; import com.easysoftware.infrastructure.applicationpackage.gatewayimpl.dataobject.ApplicationPackageDO; @@ -17,6 +19,26 @@ public class ApplicationPackageConvertor { return appPkg; } + public static List toDetail(List appPkgDOs) { + List res = new ArrayList<>(); + for (ApplicationPackageDO app: appPkgDOs) { + ApplicationPackageDetailVo menu = new ApplicationPackageDetailVo(); + BeanUtils.copyProperties(app, menu); + res.add(menu); + } + return res; + } + + public static List toMenu(List appPkgDOs) { + List res = new ArrayList<>(); + for (ApplicationPackageDO app: appPkgDOs) { + ApplicationPackageMenuVo menu = new ApplicationPackageMenuVo(); + BeanUtils.copyProperties(app, menu); + res.add(menu); + } + return res; + } + public static List toEntity(List appDOs) { List res = new ArrayList<>(); for (ApplicationPackageDO appDO : appDOs) { 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 d7df8a1faabf9bd092bd6ff983a83c0bdbee7219..0648e2d7b441bfa6c635be38530b69961cda5c35 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 @@ -17,29 +17,22 @@ public class ApplicationPackageDO { @Serial private static final long serialVersionUID = 1L; - public String description; - public String name; - public String license; - private String download; private String appCategory; private String environment; - private String installation; - private String similarPkgs; - private String dependencyPkgs; private String id; @@ -47,4 +40,38 @@ public class ApplicationPackageDO { private Timestamp createAt; private Timestamp updateAt; + + private String type; + + private String iconUrl; + + private String appVer; + + private String osSupport; + + private String os; + + private String arch; + + private String maintainerId; + + private String maintainerEmail; + + private String maintainerGiteeId; + + private String maintainerUpdateAt; + + private String securityLevel; + + private String safeLabel; + + private String downloadCount; + + private String appSize; + + private String srcRepo; + + private String srcDownloadUrl; + + private String binDownloadUrl; }