|
|
|
@ -27,6 +27,7 @@ import java.net.URLEncoder;
|
|
|
|
|
import java.text.ParseException; |
|
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.Comparator; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Map; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
@ -204,30 +205,25 @@ public class PluginSearchManager implements AlphaFineSearchProvider {
|
|
|
|
|
if (!Collections.isEmpty(jsonObjects)) { |
|
|
|
|
jsonObjects = jsonObjects.stream() |
|
|
|
|
.filter(o -> ((Integer) o.get(version)) == 1) |
|
|
|
|
.sorted(PluginSearchManager::sortPluginByUploadTime) |
|
|
|
|
.sorted(Comparator.comparingLong(PluginSearchManager::parseTime).reversed()) |
|
|
|
|
.limit(DEFAULT_LIST_SIZE) |
|
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
int size = Math.min(DEFAULT_LIST_SIZE, jsonObjects.size()); |
|
|
|
|
for (int i = 0; i < size; i++) { |
|
|
|
|
pluginModels.add(getPluginModel(new JSONObject(jsonObjects.get(i)), false)); |
|
|
|
|
for (Map jsonObject : jsonObjects) { |
|
|
|
|
pluginModels.add(getPluginModel(new JSONObject(jsonObject), false)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return pluginModels; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static int sortPluginByUploadTime(Map v1, Map v2) { |
|
|
|
|
private static long parseTime(Map value) { |
|
|
|
|
SimpleDateFormat format = new SimpleDateFormat(TIME_FORMAT); |
|
|
|
|
long t1 = 0L, t2 = 0L; |
|
|
|
|
long t = 0L; |
|
|
|
|
try { |
|
|
|
|
t1 = format.parse((String) v1.get(UPLOAD_TIME)).getTime(); |
|
|
|
|
t = format.parse((String) value.get(UPLOAD_TIME)).getTime(); |
|
|
|
|
} catch (ParseException e) { |
|
|
|
|
FineLoggerFactory.getLogger().error(e, e.getMessage()); |
|
|
|
|
} |
|
|
|
|
try { |
|
|
|
|
t2 = format.parse((String) v2.get(UPLOAD_TIME)).getTime(); |
|
|
|
|
} catch (ParseException e) { |
|
|
|
|
FineLoggerFactory.getLogger().error(e, e.getMessage()); |
|
|
|
|
} |
|
|
|
|
return Long.compare(t2, t1); |
|
|
|
|
return t; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|