|
|
|
@ -6,8 +6,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
|
import com.bx.imclient.IMClient; |
|
|
|
import com.bx.imcommon.util.JwtUtil; |
|
|
|
import com.bx.implatform.config.JwtProperties; |
|
|
|
import com.bx.implatform.dto.LoginDTO; |
|
|
|
import com.bx.implatform.dto.ModifyPwdDTO; |
|
|
|
import com.bx.implatform.dto.RegisterDTO; |
|
|
|
import com.bx.implatform.entity.Friend; |
|
|
|
import com.bx.implatform.entity.GroupMember; |
|
|
|
import com.bx.implatform.entity.User; |
|
|
|
@ -20,9 +23,6 @@ import com.bx.implatform.service.IUserService; |
|
|
|
import com.bx.implatform.session.SessionContext; |
|
|
|
import com.bx.implatform.session.UserSession; |
|
|
|
import com.bx.implatform.util.BeanUtils; |
|
|
|
import com.bx.imcommon.util.JwtUtil; |
|
|
|
import com.bx.implatform.dto.LoginDTO; |
|
|
|
import com.bx.implatform.dto.RegisterDTO; |
|
|
|
import com.bx.implatform.vo.LoginVO; |
|
|
|
import com.bx.implatform.vo.UserVO; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
@ -32,7 +32,7 @@ import org.springframework.security.crypto.password.PasswordEncoder; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
import java.util.LinkedList; |
|
|
|
import java.util.Arrays; |
|
|
|
import java.util.List; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
@ -62,7 +62,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU |
|
|
|
* 用户登录 |
|
|
|
* |
|
|
|
* @param dto 登录dto |
|
|
|
* @return |
|
|
|
* @return 登录token |
|
|
|
*/ |
|
|
|
|
|
|
|
@Override |
|
|
|
@ -96,7 +96,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU |
|
|
|
* 用refreshToken换取新 token |
|
|
|
* |
|
|
|
* @param refreshToken |
|
|
|
* @return |
|
|
|
* @return 登录token |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public LoginVO refreshToken(String refreshToken) { |
|
|
|
@ -206,24 +206,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 根据用户昵称查询用户,最多返回20条数据 |
|
|
|
* |
|
|
|
* @param nickname 用户昵称 |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public List<UserVO> findUserByNickName(String nickname) { |
|
|
|
LambdaQueryWrapper<User> queryWrapper = Wrappers.lambdaQuery(); |
|
|
|
queryWrapper.like(User::getNickName,nickname).last("limit 20"); |
|
|
|
List<User> users = this.list(queryWrapper); |
|
|
|
return users.stream().map(u-> { |
|
|
|
UserVO vo = BeanUtils.copyProperties(u,UserVO.class); |
|
|
|
vo.setOnline(imClient.isOnline(u.getId())); |
|
|
|
return vo; |
|
|
|
}).collect(Collectors.toList()); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 根据用户昵称查询用户,最多返回20条数据 |
|
|
|
* |
|
|
|
@ -238,9 +220,11 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU |
|
|
|
.like(User::getNickName,name) |
|
|
|
.last("limit 20"); |
|
|
|
List<User> users = this.list(queryWrapper); |
|
|
|
List<Long> userIds = users.stream().map(User::getId).collect(Collectors.toList()); |
|
|
|
List<Long> onlineUserIds = imClient.isOnline(userIds); |
|
|
|
return users.stream().map(u-> { |
|
|
|
UserVO vo = BeanUtils.copyProperties(u,UserVO.class); |
|
|
|
vo.setOnline(imClient.isOnline(u.getId())); |
|
|
|
vo.setOnline(onlineUserIds.contains(u.getId())); |
|
|
|
return vo; |
|
|
|
}).collect(Collectors.toList()); |
|
|
|
} |
|
|
|
@ -249,19 +233,13 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU |
|
|
|
* 判断用户是否在线,返回在线的用户id列表 |
|
|
|
* |
|
|
|
* @param userIds 用户id,多个用‘,’分割 |
|
|
|
* @return |
|
|
|
* @return 在线用户id列表 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public List<Long> checkOnline(String userIds) { |
|
|
|
String[] idArr = userIds.split(","); |
|
|
|
List<Long> onlineIds = new LinkedList<>(); |
|
|
|
for(String userId:idArr){ |
|
|
|
if(imClient.isOnline(Long.parseLong(userId))){ |
|
|
|
onlineIds.add(Long.parseLong(userId)); |
|
|
|
} |
|
|
|
} |
|
|
|
return onlineIds; |
|
|
|
List<Long> userIdList = Arrays.stream(userIds.split(",")) |
|
|
|
.map(Long::parseLong).collect(Collectors.toList()); |
|
|
|
return imClient.isOnline(userIdList); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|