From 434cd42c9a5967c49720dac0751c060ad00117ec Mon Sep 17 00:00:00 2001 From: kaede10 Date: Fri, 1 Mar 2024 16:08:14 +0800 Subject: [PATCH] add upstream info --- .../ApplicationPackageServiceImpl.java | 33 ++++++++++++++----- .../easysoftware/common/utils/ApiUtil.java | 23 +++++++++++++ .../common/utils/ObjectMapperUtil.java | 6 ++++ 3 files changed, 53 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/easysoftware/common/utils/ApiUtil.java diff --git a/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageServiceImpl.java b/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageServiceImpl.java index 2791242..9cf5602 100644 --- a/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageServiceImpl.java +++ b/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageServiceImpl.java @@ -17,6 +17,7 @@ import com.easysoftware.application.applicationpackage.vo.ApplicationPackageDeta 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.ApiUtil; import com.easysoftware.common.utils.HttpClientUtil; import com.easysoftware.common.utils.ObjectMapperUtil; import com.easysoftware.common.utils.ResultUtil; @@ -34,6 +35,9 @@ public class ApplicationPackageServiceImpl implements ApplicationPackageService @Value("${api.repoMaintainer}") String repoMaintainerApi; + @Value("${api.repoInfo}") + String repoInfoApi; + @Override public ResponseEntity insertAppPkg(InputApplicationPackage inputAppPkg) { // 数据库中是否已存在该包 @@ -43,15 +47,8 @@ public class ApplicationPackageServiceImpl implements ApplicationPackageService } ApplicationPackage appPkg = new ApplicationPackage(); BeanUtils.copyProperties(inputAppPkg, appPkg); - String response = HttpClientUtil.getHttpClient(String.format(repoMaintainerApi, appPkg.getName())); - if (response != null) { - JsonNode info = ObjectMapperUtil.toJsonNode(response); - if (info.get("code").asInt() == 200 && !info.get("data").isNull()) { - JsonNode infoData = info.get("data"); - appPkg.setMaintainerGiteeId(infoData.get("gitee_id").asText()); - appPkg.setMaintainerEmail(infoData.get("email").asText()); - } - } + appPkg = addAppPkgInfo(appPkg); + boolean succeed = appPkgGateway.save(appPkg); if (!succeed) { return ResultUtil.fail(HttpStatus.BAD_REQUEST, MessageCode.EC0006); @@ -69,6 +66,8 @@ public class ApplicationPackageServiceImpl implements ApplicationPackageService ApplicationPackage appPkg = new ApplicationPackage(); BeanUtils.copyProperties(inputAppPkg, appPkg); + appPkg = addAppPkgInfo(appPkg); + boolean succeed = appPkgGateway.update(appPkg); if (!succeed) { return ResultUtil.fail(HttpStatus.BAD_REQUEST, MessageCode.EC0004); @@ -113,4 +112,20 @@ public class ApplicationPackageServiceImpl implements ApplicationPackageService return menuList; } + + public ApplicationPackage addAppPkgInfo(ApplicationPackage appPkg) { + Map maintainer = ApiUtil.getApiResponse(String.format(repoMaintainerApi, appPkg.getName())); + appPkg.setMaintainerGiteeId(maintainer.get("gitee_id")); + appPkg.setMaintainerEmail(maintainer.get("email")); + + Map info = ApiUtil.getApiResponse(String.format(repoInfoApi, appPkg.getName(), "docker_openeuler")); + appPkg.setOs(info.get("os")); + appPkg.setAppVer(info.get("latest_version") + "-" + info.get("os_version")); + appPkg.setArch(info.get("arch")); + appPkg.setAppSize(info.get("appSize")); + appPkg.setBinDownloadUrl(info.get("binDownloadUrl")); + appPkg.setSrcDownloadUrl(info.get("srcDownloadUrl")); + appPkg.setSrcRepo(info.get("srcRepo")); + return appPkg; + } } diff --git a/src/main/java/com/easysoftware/common/utils/ApiUtil.java b/src/main/java/com/easysoftware/common/utils/ApiUtil.java new file mode 100644 index 0000000..8f8fbfb --- /dev/null +++ b/src/main/java/com/easysoftware/common/utils/ApiUtil.java @@ -0,0 +1,23 @@ +package com.easysoftware.common.utils; + +import java.util.HashMap; +import java.util.Map; + +import com.fasterxml.jackson.databind.JsonNode; + +public class ApiUtil { + + public static Map getApiResponse(String url) { + Map res = new HashMap<>(); + String response = HttpClientUtil.getHttpClient(url); + if (response != null) { + JsonNode info = ObjectMapperUtil.toJsonNode(response); + if (info.get("code").asInt() == 200 && !info.get("data").isNull()) { + JsonNode infoData = info.get("data"); + res = ObjectMapperUtil.jsonToMap(infoData); + } + } + return res; + } + +} diff --git a/src/main/java/com/easysoftware/common/utils/ObjectMapperUtil.java b/src/main/java/com/easysoftware/common/utils/ObjectMapperUtil.java index 0f6f77b..56e100a 100644 --- a/src/main/java/com/easysoftware/common/utils/ObjectMapperUtil.java +++ b/src/main/java/com/easysoftware/common/utils/ObjectMapperUtil.java @@ -4,6 +4,7 @@ import com.easysoftware.common.exception.MyJacksonException; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; @@ -185,4 +186,9 @@ public class ObjectMapperUtil { throw new MyJacksonException("JSON 转化异常!"); } } + + public static Map jsonToMap(JsonNode obj) { + Map res = objectMapper.convertValue(obj, new TypeReference>() {}); + return res; + } } -- Gitee