From 6c150d5d1d1f5a71910637642565ce2fd250c907 Mon Sep 17 00:00:00 2001 From: gi1tee Date: Sat, 29 Jun 2024 09:29:49 +0800 Subject: [PATCH] update ver --- .../vo/ApplicationPackageEulerVersionVo.java | 2 +- .../applicationpackage/vo/EulerVer.java | 20 +++++++++++++++ .../vo/EPKGPackageEulerVersionVo.java | 4 ++- .../vo/RPMPackageEulerVersionVo.java | 4 ++- .../easysoftware/common/utils/SortUtil.java | 25 +++++++++++++++++++ .../ApplicationPackageConverter.java | 4 ++- .../converter/EPKGPackageConverter.java | 3 ++- .../converter/RPMPackageConverter.java | 4 ++- 8 files changed, 60 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/easysoftware/application/applicationpackage/vo/EulerVer.java diff --git a/src/main/java/com/easysoftware/application/applicationpackage/vo/ApplicationPackageEulerVersionVo.java b/src/main/java/com/easysoftware/application/applicationpackage/vo/ApplicationPackageEulerVersionVo.java index fe12285..e4f18a5 100644 --- a/src/main/java/com/easysoftware/application/applicationpackage/vo/ApplicationPackageEulerVersionVo.java +++ b/src/main/java/com/easysoftware/application/applicationpackage/vo/ApplicationPackageEulerVersionVo.java @@ -18,7 +18,7 @@ import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor -public class ApplicationPackageEulerVersionVo { +public class ApplicationPackageEulerVersionVo implements EulerVer { /** * OpenEuler version of the package. */ diff --git a/src/main/java/com/easysoftware/application/applicationpackage/vo/EulerVer.java b/src/main/java/com/easysoftware/application/applicationpackage/vo/EulerVer.java new file mode 100644 index 0000000..95540db --- /dev/null +++ b/src/main/java/com/easysoftware/application/applicationpackage/vo/EulerVer.java @@ -0,0 +1,20 @@ +/* Copyright (c) 2024 openEuler Community + EasySoftware is licensed under the Mulan PSL v2. + You can use this software according to the terms and conditions of the Mulan PSL v2. + You may obtain a copy of Mulan PSL v2 at: + http://license.coscl.org.cn/MulanPSL2 + THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + See the Mulan PSL v2 for more details. +*/ + +package com.easysoftware.application.applicationpackage.vo; + +public interface EulerVer { + /** + * get os. + * @return os. + */ + String getOs(); +} diff --git a/src/main/java/com/easysoftware/application/epkgpackage/vo/EPKGPackageEulerVersionVo.java b/src/main/java/com/easysoftware/application/epkgpackage/vo/EPKGPackageEulerVersionVo.java index 3cf3dce..879d65a 100644 --- a/src/main/java/com/easysoftware/application/epkgpackage/vo/EPKGPackageEulerVersionVo.java +++ b/src/main/java/com/easysoftware/application/epkgpackage/vo/EPKGPackageEulerVersionVo.java @@ -11,6 +11,8 @@ package com.easysoftware.application.epkgpackage.vo; +import com.easysoftware.application.applicationpackage.vo.EulerVer; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -18,7 +20,7 @@ import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor -public class EPKGPackageEulerVersionVo { +public class EPKGPackageEulerVersionVo implements EulerVer { /** * OpenEuler version of the package. */ diff --git a/src/main/java/com/easysoftware/application/rpmpackage/vo/RPMPackageEulerVersionVo.java b/src/main/java/com/easysoftware/application/rpmpackage/vo/RPMPackageEulerVersionVo.java index 9fc6caa..55d8bc5 100644 --- a/src/main/java/com/easysoftware/application/rpmpackage/vo/RPMPackageEulerVersionVo.java +++ b/src/main/java/com/easysoftware/application/rpmpackage/vo/RPMPackageEulerVersionVo.java @@ -11,6 +11,8 @@ package com.easysoftware.application.rpmpackage.vo; +import com.easysoftware.application.applicationpackage.vo.EulerVer; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -18,7 +20,7 @@ import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor -public class RPMPackageEulerVersionVo { +public class RPMPackageEulerVersionVo implements EulerVer { /** * OpenEuler versions of the package. */ diff --git a/src/main/java/com/easysoftware/common/utils/SortUtil.java b/src/main/java/com/easysoftware/common/utils/SortUtil.java index e910e55..d414dba 100644 --- a/src/main/java/com/easysoftware/common/utils/SortUtil.java +++ b/src/main/java/com/easysoftware/common/utils/SortUtil.java @@ -16,6 +16,10 @@ import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import com.easysoftware.application.applicationpackage.vo.EulerVer; public final class SortUtil { // Private constructor to prevent instantiation of the utility class @@ -46,4 +50,25 @@ public final class SortUtil { Collections.sort(list, listCompare); return list; } + + /** + * sort the eulerver by os. + * @param object which implements eulerver. + * @param list lsit of eulerver. + * @return lsit of eulerver. + */ + public static List sortEulerVer(List list) { + List sorted = list.stream().sorted( + Comparator.comparing(T::getOs, Comparator.reverseOrder()) + ).collect(Collectors.toList()); + + Map> map = sorted.stream().collect( + Collectors.partitioningBy(e -> e.getOs().contains("preview")) + ); + + List noPreview = map.get(false); + List preview = map.get(true); + noPreview.addAll(preview); + return noPreview; + } } diff --git a/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/converter/ApplicationPackageConverter.java b/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/converter/ApplicationPackageConverter.java index 3934546..d6396f0 100644 --- a/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/converter/ApplicationPackageConverter.java +++ b/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/converter/ApplicationPackageConverter.java @@ -16,6 +16,7 @@ import com.easysoftware.application.applicationpackage.vo.ApplicationPackageEule import com.easysoftware.application.applicationpackage.vo.ApplicationPackageMenuVo; import com.easysoftware.application.applicationpackage.vo.ApplicationPackageTagsVo; import com.easysoftware.common.entity.MessageCode; +import com.easysoftware.common.utils.SortUtil; import com.easysoftware.domain.applicationpackage.ApplicationPackage; import com.easysoftware.infrastructure.applicationpackage.gatewayimpl.dataobject.ApplicationPackageDO; import org.apache.commons.lang3.StringUtils; @@ -72,7 +73,8 @@ public final class ApplicationPackageConverter { version.setPkgId(appkg.getPkgId()); res.add(version); } - return res; + + return SortUtil.sortEulerVer(res); } /** diff --git a/src/main/java/com/easysoftware/infrastructure/epkgpackage/gatewayimpl/converter/EPKGPackageConverter.java b/src/main/java/com/easysoftware/infrastructure/epkgpackage/gatewayimpl/converter/EPKGPackageConverter.java index deee9a6..20c3ad7 100644 --- a/src/main/java/com/easysoftware/infrastructure/epkgpackage/gatewayimpl/converter/EPKGPackageConverter.java +++ b/src/main/java/com/easysoftware/infrastructure/epkgpackage/gatewayimpl/converter/EPKGPackageConverter.java @@ -15,6 +15,7 @@ import com.easysoftware.application.epkgpackage.vo.EPKGPackageDetailVo; import com.easysoftware.application.epkgpackage.vo.EPKGPackageEulerVersionVo; import com.easysoftware.application.epkgpackage.vo.EPKGPackageMenuVo; import com.easysoftware.common.entity.MessageCode; +import com.easysoftware.common.utils.SortUtil; import com.easysoftware.domain.epkgpackage.EPKGPackage; import com.easysoftware.infrastructure.epkgpackage.gatewayimpl.dataobject.EPKGPackageDO; import org.slf4j.Logger; @@ -84,7 +85,7 @@ public final class EPKGPackageConverter { version.setPkgId(epkg.getPkgId()); res.add(version); } - return res; + return SortUtil.sortEulerVer(res); } /** diff --git a/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/converter/RPMPackageConverter.java b/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/converter/RPMPackageConverter.java index 93d9e1e..83ce1cf 100644 --- a/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/converter/RPMPackageConverter.java +++ b/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/converter/RPMPackageConverter.java @@ -17,6 +17,7 @@ import com.easysoftware.application.rpmpackage.vo.RPMPackageEulerVersionVo; import com.easysoftware.application.rpmpackage.vo.RPMPackageMenuVo; import com.easysoftware.application.rpmpackage.vo.RPMPackageNewestVersionVo; import com.easysoftware.common.entity.MessageCode; +import com.easysoftware.common.utils.SortUtil; import com.easysoftware.domain.rpmpackage.RPMPackage; import com.easysoftware.infrastructure.rpmpackage.gatewayimpl.dataobject.RPMPackageDO; import org.slf4j.Logger; @@ -187,9 +188,10 @@ public final class RPMPackageConverter { version.setPkgId(rpm.getPkgId()); res.add(version); } - return res; + return SortUtil.sortEulerVer(res); } + /** * Converts a list of RPMPackageDO objects to a list of * RPMPackageNewestVersionVo -- Gitee