From c12ae99f83324ffa7732c5dffed55ca93180f79e Mon Sep 17 00:00:00 2001 From: gi1tee Date: Thu, 18 Jul 2024 19:17:31 +0800 Subject: [PATCH] rpmver --- .../rpmpackage/RPMPackageServiceImpl.java | 22 +++++++++++------- .../vo/RPMPackageNewestVersionVo.java | 23 +++++++++++++++++++ .../oepackage/gateway/OEPackageGateway.java | 5 ++-- .../rpmpackage/gateway/RPMPackageGateway.java | 6 +++-- .../gatewalmpl/OEPackageGatewayImpl.java | 21 ++++++++--------- .../gatewayimpl/RPMPackageGatewayImpl.java | 8 ++----- 6 files changed, 55 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageServiceImpl.java b/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageServiceImpl.java index e7ba792..c7b0449 100644 --- a/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageServiceImpl.java +++ b/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageServiceImpl.java @@ -16,6 +16,7 @@ import com.easysoftware.application.rpmpackage.dto.RPMPackageNameSearchCondition import com.easysoftware.application.rpmpackage.dto.RPMPackageSearchCondition; import com.easysoftware.application.rpmpackage.vo.RPMPackageDetailVo; import com.easysoftware.application.rpmpackage.vo.RPMPackageDomainVo; +import com.easysoftware.application.rpmpackage.vo.RPMPackageNewestVersionVo; import com.easysoftware.common.exception.NoneResException; import com.easysoftware.common.exception.ParamErrorException; import com.easysoftware.common.utils.ResultUtil; @@ -106,14 +107,19 @@ public class RPMPackageServiceImpl extends ServiceImpl queryNewstRpmVersion(RPMPackageNameSearchCondition condition) { - Map res = rPMPkgGateway.queryNewstRpmVersion(condition); - - if (res.get("total") != null && !res.get("total").equals(Integer.valueOf(0))) { - return ResultUtil.success(HttpStatus.OK, res); - } - - res = oepkgGateway.queryNewstRpmVersion(condition); - return ResultUtil.success(HttpStatus.OK, res); + List rpmRes = rPMPkgGateway.queryNewstRpmVersion(condition); + List oepkgRes = oepkgGateway.queryNewstRpmVersion(condition); + + List list = new ArrayList<>(); + list.addAll(rpmRes); + list.addAll(oepkgRes); + RPMPackageNewestVersionVo res = RPMPackageNewestVersionVo.pickNewestOne(list); + + long total = res == null ? 0 : 1; + return ResultUtil.success(HttpStatus.OK, Map.of( + "total", total, + "list", List.of(res) + )); } /** diff --git a/src/main/java/com/easysoftware/application/rpmpackage/vo/RPMPackageNewestVersionVo.java b/src/main/java/com/easysoftware/application/rpmpackage/vo/RPMPackageNewestVersionVo.java index a750c8e..f981445 100644 --- a/src/main/java/com/easysoftware/application/rpmpackage/vo/RPMPackageNewestVersionVo.java +++ b/src/main/java/com/easysoftware/application/rpmpackage/vo/RPMPackageNewestVersionVo.java @@ -10,6 +10,10 @@ */ package com.easysoftware.application.rpmpackage.vo; +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -27,4 +31,23 @@ public class RPMPackageNewestVersionVo { * The coresspond euler versions of the rpm package. */ private String os; + + /** + * pick one from list. + * @param list list. + * @return RPMPackageNewestVersionVo containg latest newestVersion. + */ + public static RPMPackageNewestVersionVo pickNewestOne(List list) { + if (list == null || list.isEmpty()) { + return null; + } + List sortedList = list.stream() + .sorted( + Comparator.comparing(RPMPackageNewestVersionVo::getOs) + .thenComparing(RPMPackageNewestVersionVo::getNewestVersion) + ) + .collect(Collectors.toList()); + + return sortedList.get(sortedList.size() - 1); + } } diff --git a/src/main/java/com/easysoftware/domain/oepackage/gateway/OEPackageGateway.java b/src/main/java/com/easysoftware/domain/oepackage/gateway/OEPackageGateway.java index b956569..e5c937c 100644 --- a/src/main/java/com/easysoftware/domain/oepackage/gateway/OEPackageGateway.java +++ b/src/main/java/com/easysoftware/domain/oepackage/gateway/OEPackageGateway.java @@ -18,6 +18,7 @@ import com.easysoftware.application.oepackage.dto.OEPackageSearchCondition; import com.easysoftware.application.oepackage.dto.OepkgNameSearchCondition; import com.easysoftware.application.oepackage.vo.OEPackageDetailVo; import com.easysoftware.application.rpmpackage.dto.RPMPackageNameSearchCondition; +import com.easysoftware.application.rpmpackage.vo.RPMPackageNewestVersionVo; public interface OEPackageGateway { /** @@ -79,7 +80,7 @@ public interface OEPackageGateway { * Query the RPM newest version based on the provided search condition. * * @param condition The search condition for querying RPM newest version - * @return A map containing RPM newest version + * @return List of RPM newest version */ - Map queryNewstRpmVersion(RPMPackageNameSearchCondition condition); + List queryNewstRpmVersion(RPMPackageNameSearchCondition condition); } diff --git a/src/main/java/com/easysoftware/domain/rpmpackage/gateway/RPMPackageGateway.java b/src/main/java/com/easysoftware/domain/rpmpackage/gateway/RPMPackageGateway.java index 1ac7ad5..b9c3ebb 100644 --- a/src/main/java/com/easysoftware/domain/rpmpackage/gateway/RPMPackageGateway.java +++ b/src/main/java/com/easysoftware/domain/rpmpackage/gateway/RPMPackageGateway.java @@ -15,6 +15,8 @@ import com.easysoftware.application.rpmpackage.dto.RPMPackageNameSearchCondition import com.easysoftware.application.rpmpackage.dto.RPMPackageSearchCondition; import com.easysoftware.application.rpmpackage.vo.RPMPackageDetailVo; import com.easysoftware.application.rpmpackage.vo.RPMPackageMenuVo; +import com.easysoftware.application.rpmpackage.vo.RPMPackageNewestVersionVo; + import java.util.List; import java.util.Map; @@ -89,9 +91,9 @@ public interface RPMPackageGateway { * Query the RPM newest version based on the provided search condition. * * @param condition The search condition for querying RPM newest version - * @return A map containing RPM newest version + * @return List of RPM newest version */ - Map queryNewstRpmVersion(RPMPackageNameSearchCondition condition); + List queryNewstRpmVersion(RPMPackageNameSearchCondition condition); /** * query pkg num of arch by os. diff --git a/src/main/java/com/easysoftware/infrastructure/oepkg/gatewalmpl/OEPackageGatewayImpl.java b/src/main/java/com/easysoftware/infrastructure/oepkg/gatewalmpl/OEPackageGatewayImpl.java index b4d16c1..ef3729c 100644 --- a/src/main/java/com/easysoftware/infrastructure/oepkg/gatewalmpl/OEPackageGatewayImpl.java +++ b/src/main/java/com/easysoftware/infrastructure/oepkg/gatewalmpl/OEPackageGatewayImpl.java @@ -33,6 +33,8 @@ import com.easysoftware.infrastructure.oepkg.gatewalmpl.coverter.OEPackageConver import com.easysoftware.infrastructure.oepkg.gatewalmpl.dataobject.OepkgDO; import com.easysoftware.infrastructure.rpmpackage.gatewayimpl.converter.RPMPackageConverter; import com.power.common.util.StringUtil; + +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.BadSqlGrammarException; import org.springframework.stereotype.Component; @@ -244,20 +246,15 @@ public class OEPackageGatewayImpl implements OEPackageGateway { * @return A map containing relevant information */ @Override - public Map queryNewstRpmVersion(RPMPackageNameSearchCondition condition) { - QueryWrapper wrapper = QueryWrapperUtil.createQueryWrapper(new OepkgDO(), - condition, ""); - RPMPackgeVersionVo pkgVo = new RPMPackgeVersionVo(); - List columns = ClassField.getFieldNames(pkgVo); - if (condition.getName() != null) { - wrapper.eq("name", condition.getName().toLowerCase()); + public List queryNewstRpmVersion(RPMPackageNameSearchCondition condition) { + QueryWrapper wrapper = new QueryWrapper<>(); + String name = condition.getName(); + List columns = ClassField.getFieldNames(new RPMPackgeVersionVo()); + if (!StringUtils.isBlank(name)) { + wrapper.eq("lower(name)", name.toLowerCase()); } wrapper.select(columns); List rpmList = oEPkgMapper.selectList(wrapper); - List versions = RPMPackageConverter.toRPMVersionFromOepkg(rpmList); - Map res = Map.ofEntries( - Map.entry("total", versions.size()), - Map.entry("list", versions)); - return res; + return RPMPackageConverter.toRPMVersionFromOepkg(rpmList); } } diff --git a/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/RPMPackageGatewayImpl.java b/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/RPMPackageGatewayImpl.java index 43613f2..bad8166 100644 --- a/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/RPMPackageGatewayImpl.java +++ b/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/RPMPackageGatewayImpl.java @@ -233,7 +233,7 @@ public class RPMPackageGatewayImpl implements RPMPackageGateway { * @return A map containing relevant information */ @Override - public Map queryNewstRpmVersion(final RPMPackageNameSearchCondition condition) { + public List queryNewstRpmVersion(final RPMPackageNameSearchCondition condition) { QueryWrapper wrapper = QueryWrapperUtil.createQueryWrapper(new RPMPackageDO(), condition, ""); RPMPackgeVersionVo pkgVo = new RPMPackgeVersionVo(); @@ -243,11 +243,7 @@ public class RPMPackageGatewayImpl implements RPMPackageGateway { } wrapper.select(columns); List rpmList = rPMPkgMapper.selectList(wrapper); - List versions = RPMPackageConverter.toRPMVersion(rpmList); - Map res = Map.ofEntries( - Map.entry("total", versions.size()), - Map.entry("list", versions)); - return res; + return RPMPackageConverter.toRPMVersion(rpmList); } /** -- Gitee