diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/dao/SaTokenDao.java b/sa-token-core/src/main/java/cn/dev33/satoken/dao/SaTokenDao.java index 09545e58..bc4264a8 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/dao/SaTokenDao.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/dao/SaTokenDao.java @@ -168,8 +168,8 @@ public interface SaTokenDao { * 搜索数据 * @param prefix 前缀 * @param keyword 关键字 - * @param start 开始处索引 (-1代表查询所有) - * @param size 获取数量 + * @param start 开始处索引 + * @param size 获取数量 (-1代表从start处一直取到末尾) * @param sortType 排序类型(true=正序,false=反序) * * @return 查询到的数据集合 diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java b/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java index a39331a0..a5ec689f 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java @@ -1596,8 +1596,8 @@ public class StpLogic { /** * 根据条件查询Token * @param keyword 关键字 - * @param start 开始处索引 (-1代表查询所有) - * @param size 获取数量 + * @param start 开始处索引 + * @param size 获取数量 (-1代表一直获取到末尾) * @param sortType 排序类型(true=正序,false=反序) * * @return token集合 @@ -1609,8 +1609,8 @@ public class StpLogic { /** * 根据条件查询SessionId * @param keyword 关键字 - * @param start 开始处索引 (-1代表查询所有) - * @param size 获取数量 + * @param start 开始处索引 + * @param size 获取数量 (-1代表一直获取到末尾) * @param sortType 排序类型(true=正序,false=反序) * * @return sessionId集合 @@ -1622,8 +1622,8 @@ public class StpLogic { /** * 根据条件查询Token专属Session的Id * @param keyword 关键字 - * @param start 开始处索引 (-1代表查询所有) - * @param size 获取数量 + * @param start 开始处索引 + * @param size 获取数量 (-1代表一直获取到末尾) * @param sortType 排序类型(true=正序,false=反序) * * @return sessionId集合 diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpUtil.java b/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpUtil.java index 60b0b4b2..d787b6d4 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpUtil.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpUtil.java @@ -730,8 +730,8 @@ public class StpUtil { /** * 根据条件查询Token * @param keyword 关键字 - * @param start 开始处索引 (-1代表查询所有) - * @param size 获取数量 + * @param start 开始处索引 + * @param size 获取数量 (-1代表一直获取到末尾) * @param sortType 排序类型(true=正序,false=反序) * * @return token集合 @@ -743,8 +743,8 @@ public class StpUtil { /** * 根据条件查询SessionId * @param keyword 关键字 - * @param start 开始处索引 (-1代表查询所有) - * @param size 获取数量 + * @param start 开始处索引 + * @param size 获取数量 (-1代表一直获取到末尾) * @param sortType 排序类型(true=正序,false=反序) * * @return sessionId集合 @@ -756,8 +756,8 @@ public class StpUtil { /** * 根据条件查询Token专属Session的Id * @param keyword 关键字 - * @param start 开始处索引 (-1代表查询所有) - * @param size 获取数量 + * @param start 开始处索引 + * @param size 获取数量 (-1代表一直获取到末尾) * @param sortType 排序类型(true=正序,false=反序) * * @return sessionId集合 diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/util/SaFoxUtil.java b/sa-token-core/src/main/java/cn/dev33/satoken/util/SaFoxUtil.java index c42be338..a0a3f66b 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/util/SaFoxUtil.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/util/SaFoxUtil.java @@ -157,8 +157,8 @@ public class SaFoxUtil { * 从集合里查询数据 * * @param list 数据集合 - * @param start 起始位置 (-1代表查询所有) - * @param size 获取条数 + * @param start 起始位置 + * @param size 获取条数 (-1代表从start处一直取到末尾) * @param sortType 排序类型(true=正序,false=反序) * * @return 符合条件的新数据集合 @@ -168,13 +168,21 @@ public class SaFoxUtil { if(sortType == false) { Collections.reverse(list); } - // 取指定段数据 + // start 至少为0 if (start < 0) { - return list; + start = 0; } - int end = start + size; + // size为-1时,代表一直取到末尾,否则取到 start + size + int end; + if(size == -1) { + end = list.size(); + } else { + end = start + size; + } + // 取出的数据放到新集合中 List list2 = new ArrayList(); for (int i = start; i < end; i++) { + // 如果已经取到list的末尾,则直接退出 if (i >= list.size()) { return list2; } diff --git a/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/satoken/StpUserUtil.java b/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/satoken/StpUserUtil.java index eb578ac9..752b0715 100644 --- a/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/satoken/StpUserUtil.java +++ b/sa-token-demo/sa-token-demo-case/src/main/java/com/pj/satoken/StpUserUtil.java @@ -727,8 +727,8 @@ public class StpUserUtil { /** * 根据条件查询Token * @param keyword 关键字 - * @param start 开始处索引 (-1代表查询所有) - * @param size 获取数量 + * @param start 开始处索引 + * @param size 获取数量 (-1代表一直获取到末尾) * @param sortType 排序类型(true=正序,false=反序) * * @return token集合 @@ -740,8 +740,8 @@ public class StpUserUtil { /** * 根据条件查询SessionId * @param keyword 关键字 - * @param start 开始处索引 (-1代表查询所有) - * @param size 获取数量 + * @param start 开始处索引 + * @param size 获取数量 (-1代表一直获取到末尾) * @param sortType 排序类型(true=正序,false=反序) * * @return sessionId集合 @@ -753,8 +753,8 @@ public class StpUserUtil { /** * 根据条件查询Token专属Session的Id * @param keyword 关键字 - * @param start 开始处索引 (-1代表查询所有) - * @param size 获取数量 + * @param start 开始处索引 + * @param size 获取数量 (-1代表一直获取到末尾) * @param sortType 排序类型(true=正序,false=反序) * * @return sessionId集合 diff --git a/sa-token-demo/sa-token-demo-test/src/main/java/com/pj/satoken/StpUserUtil.java b/sa-token-demo/sa-token-demo-test/src/main/java/com/pj/satoken/StpUserUtil.java index eb578ac9..752b0715 100644 --- a/sa-token-demo/sa-token-demo-test/src/main/java/com/pj/satoken/StpUserUtil.java +++ b/sa-token-demo/sa-token-demo-test/src/main/java/com/pj/satoken/StpUserUtil.java @@ -727,8 +727,8 @@ public class StpUserUtil { /** * 根据条件查询Token * @param keyword 关键字 - * @param start 开始处索引 (-1代表查询所有) - * @param size 获取数量 + * @param start 开始处索引 + * @param size 获取数量 (-1代表一直获取到末尾) * @param sortType 排序类型(true=正序,false=反序) * * @return token集合 @@ -740,8 +740,8 @@ public class StpUserUtil { /** * 根据条件查询SessionId * @param keyword 关键字 - * @param start 开始处索引 (-1代表查询所有) - * @param size 获取数量 + * @param start 开始处索引 + * @param size 获取数量 (-1代表一直获取到末尾) * @param sortType 排序类型(true=正序,false=反序) * * @return sessionId集合 @@ -753,8 +753,8 @@ public class StpUserUtil { /** * 根据条件查询Token专属Session的Id * @param keyword 关键字 - * @param start 开始处索引 (-1代表查询所有) - * @param size 获取数量 + * @param start 开始处索引 + * @param size 获取数量 (-1代表一直获取到末尾) * @param sortType 排序类型(true=正序,false=反序) * * @return sessionId集合 diff --git a/sa-token-doc/up/search-session.md b/sa-token-doc/up/search-session.md index 92e80885..954c1e1c 100644 --- a/sa-token-doc/up/search-session.md +++ b/sa-token-doc/up/search-session.md @@ -23,8 +23,8 @@ StpUtil.searchTokenSessionId(String keyword, int start, int size, boolean sortTy #### 参数详解: - `keyword`: 查询关键字,只有包括这个字符串的 token 值才会被查询出来。 -- `start`: 数据开始处索引, 值为-1时代表一次性取出所有数据。 -- `size`: 要获取的数据条数。 +- `start`: 数据开始处索引。 +- `size`: 要获取的数据条数 (值为-1代表一直获取到末尾)。 - `sortType`: 排序方式(true=正序:先登录的在前,false=反序:后登录的在前)。 简单样例: @@ -58,7 +58,7 @@ sa-token: 综上,若要遍历系统所有已登录的会话,代码将大致如下: ``` java // 获取所有已登录的会话id -List sessionIdList = StpUtil.searchSessionId("", -1, -1, false); +List sessionIdList = StpUtil.searchSessionId("", 0, -1, false); for (String sessionId : sessionIdList) {