From 3ca691a28e3f455cf51b8c835f544e8684e4250d Mon Sep 17 00:00:00 2001 From: gi1tee Date: Mon, 8 Jul 2024 16:50:37 +0800 Subject: [PATCH] os-order --- .../common/utils/QueryWrapperUtil.java | 3 ++- .../archnum/converter/ArchNumConverter.java | 15 +++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/easysoftware/common/utils/QueryWrapperUtil.java b/src/main/java/com/easysoftware/common/utils/QueryWrapperUtil.java index 1fd1998..0ecd3a4 100644 --- a/src/main/java/com/easysoftware/common/utils/QueryWrapperUtil.java +++ b/src/main/java/com/easysoftware/common/utils/QueryWrapperUtil.java @@ -22,6 +22,7 @@ import org.slf4j.LoggerFactory; import java.lang.reflect.Field; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; @@ -157,7 +158,7 @@ public final class QueryWrapperUtil { * @param colList The list of strings representing operating systems to be sorted * @return A sorted list of strings representing operating systems in ascending order */ - public static List sortOsColumn(List colList) { + public static List sortOsColumn(Collection colList) { Map> partMap = colList.stream() .collect(Collectors.partitioningBy(e -> !e.contains("preview"))); List con = partMap.get(true); diff --git a/src/main/java/com/easysoftware/infrastructure/archnum/converter/ArchNumConverter.java b/src/main/java/com/easysoftware/infrastructure/archnum/converter/ArchNumConverter.java index f865d53..dfdac6e 100644 --- a/src/main/java/com/easysoftware/infrastructure/archnum/converter/ArchNumConverter.java +++ b/src/main/java/com/easysoftware/infrastructure/archnum/converter/ArchNumConverter.java @@ -12,13 +12,14 @@ package com.easysoftware.infrastructure.archnum.converter; import java.util.Collections; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import org.springframework.stereotype.Component; +import com.easysoftware.common.utils.QueryWrapperUtil; import com.easysoftware.common.utils.SortUtil; import com.easysoftware.infrastructure.archnum.dataobject.ArchNumDO; @@ -35,10 +36,12 @@ public class ArchNumConverter { } Map> osMap = list.stream().collect(Collectors.groupingBy(ArchNumDO::getOs)); - Map>> res = new HashMap<>(); - for (Map.Entry> entry : osMap.entrySet()) { - Map> typeMap = toMapPerOs(entry.getValue()); - res.put(entry.getKey(), typeMap); + List orderedOses = QueryWrapperUtil.sortOsColumn(osMap.keySet()); + Map>> res = new LinkedHashMap<>(); + for (String orderedOs: orderedOses) { + List aList = osMap.get(orderedOs); + Map> typeMap = toMapPerOs(aList); + res.put(orderedOs, typeMap); } return res; } @@ -55,7 +58,7 @@ public class ArchNumConverter { Map> typeMap = list.stream().collect(Collectors.groupingBy(ArchNumDO::getType)); List orderedTypes = SortUtil.sortTags(typeMap.keySet()); - Map> res = new HashMap<>(); + Map> res = new LinkedHashMap<>(); for (String orderedType : orderedTypes) { List aList = typeMap.get(orderedType); Map aMap = aList.stream().collect( -- Gitee