xgb 1 неделя назад
Родитель
Сommit
226285fc18

+ 38 - 36
fs-admin-saas/src/main/java/com/fs/web/controller/monitor/SysUserOnlineController.java

@@ -4,6 +4,8 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
+
+import com.fs.common.core.domain.model.LoginUser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.DeleteMapping;
@@ -24,7 +26,7 @@ import com.fs.system.service.ISysUserOnlineService;
 
 /**
  * 在线用户监控
- * 
+ *
 
  */
 @RestController
@@ -41,41 +43,41 @@ public class SysUserOnlineController extends BaseController
     @GetMapping("/list")
     public TableDataInfo list(String ipaddr, String userName)
     {
-//        Collection<String> keys = redisCache.keys(Constants.LOGIN_TOKEN_KEY + "*");
-//        List<SysUserOnline> userOnlineList = new ArrayList<SysUserOnline>();
-//        for (String key : keys)
-//        {
-//            LoginUser user = (LoginUser) redisCache.getCacheObject(key);
-//            if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName))
-//            {
-//                if (StringUtils.equals(ipaddr, user.getIpaddr()) && StringUtils.equals(userName, user.getUsername()))
-//                {
-//                    userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user));
-//                }
-//            }
-//            else if (StringUtils.isNotEmpty(ipaddr))
-//            {
-//                if (StringUtils.equals(ipaddr, user.getIpaddr()))
-//                {
-//                    userOnlineList.add(userOnlineService.selectOnlineByIpaddr(ipaddr, user));
-//                }
-//            }
-//            else if (StringUtils.isNotEmpty(userName) && StringUtils.isNotNull(user.getUser()))
-//            {
-//                if (StringUtils.equals(userName, user.getUsername()))
-//                {
-//                    userOnlineList.add(userOnlineService.selectOnlineByUserName(userName, user));
-//                }
-//            }
-//            else
-//            {
-//                userOnlineList.add(userOnlineService.loginUserToUserOnline(user));
-//            }
-//        }
-//        Collections.reverse(userOnlineList);
-//        userOnlineList.removeAll(Collections.singleton(null));
-//        return getDataTable(userOnlineList);
-        throw new RuntimeException("未实现");
+        Collection<String> keys = redisCache.keys(Constants.LOGIN_TOKEN_KEY + "*");
+        List<SysUserOnline> userOnlineList = new ArrayList<SysUserOnline>();
+        for (String key : keys)
+        {
+            LoginUser user =redisCache.getCacheObject(key);
+            if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName))
+            {
+                if (StringUtils.equals(ipaddr, user.getIpaddr()) && StringUtils.equals(userName, user.getUsername()))
+                {
+                    userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user));
+                }
+            }
+            else if (StringUtils.isNotEmpty(ipaddr))
+            {
+                if (StringUtils.equals(ipaddr, user.getIpaddr()))
+                {
+                    userOnlineList.add(userOnlineService.selectOnlineByIpaddr(ipaddr, user));
+                }
+            }
+            else if (StringUtils.isNotEmpty(userName) && StringUtils.isNotNull(user.getUser()))
+            {
+                if (StringUtils.equals(userName, user.getUsername()))
+                {
+                    userOnlineList.add(userOnlineService.selectOnlineByUserName(userName, user));
+                }
+            }
+            else
+            {
+                userOnlineList.add(userOnlineService.loginUserToUserOnline(user));
+            }
+        }
+        Collections.reverse(userOnlineList);
+        userOnlineList.removeAll(Collections.singleton(null));
+        return getDataTable(userOnlineList);
+
     }
 
     /**