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 fe12285551bd4c9211db92c6b4a5bfe71418765e..e4f18a543ff8abef759f1f1ff68dd05be6444d3b 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 0000000000000000000000000000000000000000..95540dbefb0e567eeb2d8f9b45e24c09d3839811 --- /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 3cf3dce0444eb78617aa61a9d4d79c0458d27b6a..879d65a30849b22f93957f3198a3753d397d5ccf 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 9fc6caa3910e29aa8ba7d93321b5148a67bf4eac..55d8bc5850b1f2727479d99a60fa92fdad626da8 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 e910e558666dac82ce86845c72459c49f0135956..d414dba98d0a4d1c2c4637d5c29d732d35ecf2cc 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 3934546cf625092ce23e1aae599204ade14da99f..d6396f0b83d65a4e6f858f4b10915c60edc6348c 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 deee9a6834f8d34d3d218db6b657b59747750de2..20c3ad742bb4ff85d52cb5f0d4cf21db90eae9e5 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 93d9e1eb8aa4415869ae39a25486ac2f1ad86f50..83ce1cfc4d1f82ff74b54261bba6d81b35703148 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