From d5deb38769d34d2efb1a02ce14faa27d1fd12432 Mon Sep 17 00:00:00 2001 From: thinkgem Date: Wed, 27 Dec 2023 10:47:44 +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 | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 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 14e16d96..c7db4555 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 @@ -67,7 +67,7 @@ public class OnlineController extends BaseController{ public String list(Model model) { return "modules/sys/onlineList"; } - + /** * 在线用户列表数据 * @author ThinkGem @@ -75,12 +75,12 @@ public class OnlineController extends BaseController{ @RequiresPermissions("sys:online:view") @RequestMapping(value = "listData") @ResponseBody - public List> listData(String isAllOnline, String isVisitor, String sessionId, + public List> listData(String isAllOnline, String isVisitor, String sessionId, String userCode, String userName, String userType, String orderBy) { List> list = ListUtils.newArrayList(); boolean excludeLeave = !Global.YES.equals(isAllOnline); boolean excludeVisitor = !Global.YES.equals(isVisitor); - Collection sessions = sessionDAO.getActiveSessions(excludeLeave, + Collection sessions = sessionDAO.getActiveSessions(excludeLeave, excludeVisitor, null, sessionId, userCode); long currentTime = System.currentTimeMillis(); for (Session session : sessions){ @@ -93,10 +93,11 @@ public class OnlineController extends BaseController{ Map map = MapUtils.newLinkedHashMap(); // 为了安全性,需要有权限的人才能看 if (UserUtils.getSubject().isPermitted("sys:online:edit")){ - map.put("id", session.getId().toString()); + map.put("id", session.getId().toString()); } 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); + } } }); }