From 479a23949c28ae93a15e3f2f5aba655662f6c0c8 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期一, 07 八月 2023 14:00:39 +0800
Subject: [PATCH] 增加在线用户开启登录地点获取 minio事件类型修改

---
 ard-work/src/main/java/com/ruoyi/storage/minio/service/impl/StorageMinioEventServiceImpl.java |   52 ++++++++++++++-----------
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java       |    9 ++--
 2 files changed, 34 insertions(+), 27 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/storage/minio/service/impl/StorageMinioEventServiceImpl.java b/ard-work/src/main/java/com/ruoyi/storage/minio/service/impl/StorageMinioEventServiceImpl.java
index ce70fdf..5e16aca 100644
--- a/ard-work/src/main/java/com/ruoyi/storage/minio/service/impl/StorageMinioEventServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/service/impl/StorageMinioEventServiceImpl.java
@@ -106,31 +106,37 @@
     @Async
     @Override
     public void parseStorageMinioEvent(String message) {
-        JsonsRootBean jsonsRootBean = JSONObject.parseObject(message, JsonsRootBean.class);
-        if (jsonsRootBean != null) {
-            Records records = jsonsRootBean.getRecords().get(0);
-            StorageMinioEvent storageMinioEvent = new StorageMinioEvent();
-            storageMinioEvent.setEventTime(records.getEventTime());
-            storageMinioEvent.setEventType(records.getEventName());
-            storageMinioEvent.setBucketName(records.getS3().getBucket().getName());
-            String encode = null;
-            try {
-                encode = URLDecoder.decode(records.getS3().getMObject().getKey(), "UTF-8");
-            } catch (UnsupportedEncodingException e) {
-                e.printStackTrace();
-            }
-            storageMinioEvent.setObjectName(encode);
-            storageMinioEvent.setObjectSize(records.getS3().getMObject().getSize());
-            storageMinioEvent.setObjectType(records.getS3().getMObject().getContentType());
-            storageMinioEvent.setHost(records.getSource().getHost());
-            storageMinioEvent.setEndpoint(records.getResponseElements().getXMinioOriginEndpoint());
-            storageMinioEvent.setUserName(records.getRequestParameters().getPrincipalid());
+        try {
+            JsonsRootBean jsonsRootBean = JSONObject.parseObject(message, JsonsRootBean.class);
+            if (jsonsRootBean != null) {
+                Records records = jsonsRootBean.getRecords().get(0);
+                StorageMinioEvent storageMinioEvent = new StorageMinioEvent();
+                storageMinioEvent.setEventTime(records.getEventTime());
+                String eventType = records.getEventName().substring(0, records.getEventName().indexOf(":", records.getEventName().indexOf(":") + 1));//涓嶅寘鍚湰韬綅缃�
+                storageMinioEvent.setEventType(eventType);
+                storageMinioEvent.setBucketName(records.getS3().getBucket().getName());
+                String encode = null;
+                try {
+                    encode = URLDecoder.decode(records.getS3().getMObject().getKey(), "UTF-8");
+                } catch (UnsupportedEncodingException e) {
+                    e.printStackTrace();
+                }
+                storageMinioEvent.setObjectName(encode);
+                storageMinioEvent.setObjectSize(records.getS3().getMObject().getSize());
+                storageMinioEvent.setObjectType(records.getS3().getMObject().getContentType());
+                storageMinioEvent.setHost(records.getSource().getHost());
+                storageMinioEvent.setEndpoint(records.getResponseElements().getXMinioOriginEndpoint());
+                storageMinioEvent.setUserName(records.getRequestParameters().getPrincipalid());
 
-            int i = insertStorageMinioEvent(storageMinioEvent);
-            if(i>0)
-            {
-                log.debug("minio鎿嶄綔鏃ュ織鍏ュ簱鎴愬姛!銆�"+storageMinioEvent.getEventType()+"銆�");
+                int i = insertStorageMinioEvent(storageMinioEvent);
+                if (i > 0) {
+                    log.debug("minio鎿嶄綔鏃ュ織鍏ュ簱鎴愬姛!銆�" + storageMinioEvent.getEventType() + "銆�");
+                }
             }
         }
+        catch (Exception ex)
+        {
+            log.error("minio浜嬩欢鏍煎紡鍖栧紓甯�:"+ex.getMessage());
+        }
     }
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java
index f539fce..e3fed44 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java
@@ -1,9 +1,7 @@
 package com.ruoyi.web.controller.monitor;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.DeleteMapping;
@@ -75,6 +73,9 @@
         }
         Collections.reverse(userOnlineList);
         userOnlineList.removeAll(Collections.singleton(null));
+        //鍦ㄧ嚎鐢ㄦ埛鎸夌櫥褰曟椂闂撮�嗗簭鎺掑簭
+        Comparator<SysUserOnline> comparator = Comparator.comparingLong(sysUserOnline -> sysUserOnline.getLoginTime()); // 浣跨敤Collections.sort鏂规硶杩涜鎺掑簭 Collections.sort(personList, comparator);
+        Collections.sort(userOnlineList, comparator.reversed());
         return getDataTable(userOnlineList);
     }
 

--
Gitblit v1.9.3