|
|
@@ -20,6 +20,7 @@ import com.corundumstudio.socketio.SocketIOClient;
|
|
|
import com.google.gson.JsonObject;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import me.zhengjie.security.config.bean.SecurityProperties;
|
|
|
+import me.zhengjie.security.domain.OnlineUserConstant;
|
|
|
import me.zhengjie.security.service.dto.OnlineUserDto;
|
|
|
import me.zhengjie.utils.*;
|
|
|
import org.springframework.data.domain.Pageable;
|
|
|
@@ -93,27 +94,32 @@ public class OnlineUserService {
|
|
|
* @return /
|
|
|
*/
|
|
|
public Map<String, Object> getAll(String filter, Pageable pageable) {
|
|
|
- List<OnlineUserDto> onlineUserDtos = getAll(filter);
|
|
|
+ List<OnlineUserDto> onlineUserDtos = getAll(filter,OnlineUserConstant.SEARCH_USER_WITH_KEWORD);
|
|
|
return PageUtil.toPage(PageUtil.toPage(pageable.getPageNumber(), pageable.getPageSize(), onlineUserDtos),
|
|
|
onlineUserDtos.size());
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询全部数据,不分页
|
|
|
- *
|
|
|
- * @param filter /
|
|
|
- * @return /
|
|
|
+ * @param filterKeyword
|
|
|
+ * @param type
|
|
|
+ * @return
|
|
|
*/
|
|
|
- public List<OnlineUserDto> getAll(String filter) {
|
|
|
+ public List<OnlineUserDto> getAll(String filterKeyword, String type) {
|
|
|
List<String> keys = redisUtils.scan(properties.getOnlineKey() + "*");
|
|
|
Collections.reverse(keys);
|
|
|
List<OnlineUserDto> onlineUserList = new ArrayList<>();
|
|
|
for (String key : keys) {
|
|
|
OnlineUserDto onlineUserDto = JSON.parseObject((String) redisUtils.get(key), OnlineUserDto.class);
|
|
|
- // onlineUserDto.setToken(key);
|
|
|
- if (StringUtils.isNotBlank(filter)) {
|
|
|
- if (onlineUserDto.toString().contains(filter)) {
|
|
|
- onlineUserList.add(onlineUserDto);
|
|
|
+ if (StringUtils.isNotBlank(filterKeyword)) {
|
|
|
+ if (OnlineUserConstant.SEARCH_USER_WITH_USERNAME.equals(type)) {
|
|
|
+ if (StringUtils.isNotBlank(onlineUserDto.getUsername()) && onlineUserDto.getUsername().equals(filterKeyword)) {
|
|
|
+ onlineUserList.add(onlineUserDto);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (onlineUserDto.toString().contains(filterKeyword)) {
|
|
|
+ onlineUserList.add(onlineUserDto);
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
onlineUserList.add(onlineUserDto);
|
|
|
@@ -196,7 +202,7 @@ public class OnlineUserService {
|
|
|
* @param userName 用户名
|
|
|
*/
|
|
|
public void checkLoginOnUser(String userName, String igoreToken) {
|
|
|
- List<OnlineUserDto> onlineUserDtos = getAll(userName);
|
|
|
+ List<OnlineUserDto> onlineUserDtos = getAll(userName, OnlineUserConstant.SEARCH_USER_WITH_USERNAME);
|
|
|
if (onlineUserDtos == null || onlineUserDtos.isEmpty()) {
|
|
|
return;
|
|
|
}
|
|
|
@@ -221,7 +227,7 @@ public class OnlineUserService {
|
|
|
*/
|
|
|
@Async
|
|
|
public void kickOutForUsername(String username) throws Exception {
|
|
|
- List<OnlineUserDto> onlineUsers = getAll(username);
|
|
|
+ List<OnlineUserDto> onlineUsers = getAll(username, OnlineUserConstant.SEARCH_USER_WITH_USERNAME);
|
|
|
for (OnlineUserDto onlineUser : onlineUsers) {
|
|
|
if (onlineUser.getUsername().equals(username)) {
|
|
|
String token = EncryptUtils.desDecrypt(onlineUser.getKey());
|