From 231b8308c6bd76a0eb365c7afe3e901118676984 Mon Sep 17 00:00:00 2001 From: thinkgem Date: Wed, 27 Dec 2023 10:47:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=9C=A8=E7=BA=BF=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=88=97=E8=A1=A8=E6=95=B0=E5=80=BC=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E7=9A=84=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/sys/web/OnlineController.java | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/web/OnlineController.java b/modules/core/src/main/java/com/jeesite/modules/sys/web/OnlineController.java index c35300e3..6b7d1a3f 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/web/OnlineController.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/web/OnlineController.java @@ -97,6 +97,7 @@ public class OnlineController extends BaseController{ } map.put("startTimestamp", DateUtils.formatDateTime(session.getStartTimestamp())); map.put("lastAccessTime", DateUtils.formatDateTime(session.getLastAccessTime())); + map.put("timeoutLong", session.getTimeout()-(currentTime-session.getLastAccessTime().getTime())); map.put("timeout", TimeUtils.formatTime(session.getTimeout()-(currentTime-session.getLastAccessTime().getTime()))); map.put("userCode", session.getAttribute("userCode")); map.put("userName", session.getAttribute("userName")); @@ -109,18 +110,27 @@ public class OnlineController extends BaseController{ if (StringUtils.isBlank(orderBy)){ orderBy = "lastAccessTime desc"; } + orderBy = StringUtils.replace(orderBy, "timeout", "timeoutLong"); final String[] ss = orderBy.trim().split(" "); if (ss.length == 2){ list.sort((o1, o2) -> { - String s1 = (String) o1.get(ss[0]); - String s2 = (String) o2.get(ss[0]); + Object s1 = o1.get(ss[0]); + Object s2 = o2.get(ss[0]); if (s1 == null || s2 == null) { return -1; } - if ("asc".equals(ss[1])) { - return s1.compareTo(s2); - } else { - return s2.compareTo(s1); + if (StringUtils.endsWith(ss[0], "Long")) { + if ("asc".equals(ss[1])) { + return ((Long)s1).compareTo((Long)s2); + } else { + return ((Long)s2).compareTo((Long)s1); + } + }else{ + if ("asc".equals(ss[1])) { + return ((String)s1).compareTo((String)s2); + } else { + return ((String)s2).compareTo((String)s1); + } } }); }