11
This commit is contained in:
1 parent
afe6a01a19
commit
f2e2469b61
5 files changed
+83
No files matched your search
@@ -3,11 +3,13 @@ package com.bx.implatform.controller.third;
|
||||
import com.bx.implatform.dto.third.user.ThirdCreateOrUpdateUserDTO;
|
||||
import com.bx.implatform.dto.third.user.ThirdGetUserByUserIdDTO;
|
||||
import com.bx.implatform.dto.third.user.ThirdLoginDTO;
|
||||
import com.bx.implatform.dto.third.user.ThirdUserOnLineStatusDto;
|
||||
import com.bx.implatform.result.Result;
|
||||
import com.bx.implatform.result.ResultUtils;
|
||||
import com.bx.implatform.service.third.ThirdUserService;
|
||||
import com.bx.implatform.vo.third.user.ThirdGetUserByUserIdVO;
|
||||
import com.bx.implatform.vo.third.user.ThirdLoginVO;
|
||||
import com.bx.implatform.vo.third.user.ThirdUserOnLineStatusVo;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.Valid;
|
||||
@@ -15,6 +17,8 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/third/user")
|
||||
@@ -44,4 +48,10 @@ public class ThirdUserController {
|
||||
return ResultUtils.success();
|
||||
}
|
||||
|
||||
@PostMapping("/getUserOnlineStatusById")
|
||||
@Operation(summary = "查询用户在线状态", description = "查询用户在线状态")
|
||||
public Result<List<ThirdUserOnLineStatusVo>> getUserOnlineStatusById(@Valid @RequestBody ThirdUserOnLineStatusDto dto) {
|
||||
return ResultUtils.success(thirdUserService.getUserOnlineStatusById(dto));
|
||||
}
|
||||
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.bx.implatform.dto.third.user;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 查询用户在线状态
|
||||
*/
|
||||
@Data
|
||||
public class ThirdUserOnLineStatusDto {
|
||||
|
||||
@Schema(description = "用户ids")
|
||||
private List<Long> userIdList;
|
||||
|
||||
}
|
||||
@@ -4,11 +4,15 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.bx.implatform.dto.third.user.ThirdCreateOrUpdateUserDTO;
|
||||
import com.bx.implatform.dto.third.user.ThirdGetUserByUserIdDTO;
|
||||
import com.bx.implatform.dto.third.user.ThirdLoginDTO;
|
||||
import com.bx.implatform.dto.third.user.ThirdUserOnLineStatusDto;
|
||||
import com.bx.implatform.entity.User;
|
||||
import com.bx.implatform.vo.third.user.ThirdGetUserByUserIdVO;
|
||||
import com.bx.implatform.vo.third.user.ThirdLoginVO;
|
||||
import com.bx.implatform.vo.third.user.ThirdUserOnLineStatusVo;
|
||||
import jakarta.validation.Valid;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ThirdUserService extends IService<User> {
|
||||
|
||||
/**
|
||||
@@ -25,4 +29,9 @@ public interface ThirdUserService extends IService<User> {
|
||||
* 根据userId查询用户详情
|
||||
*/
|
||||
ThirdGetUserByUserIdVO getUserByUserId(@Valid ThirdGetUserByUserIdDTO dto);
|
||||
|
||||
/**
|
||||
* 查询用户在线状态
|
||||
*/
|
||||
List<ThirdUserOnLineStatusVo> getUserOnlineStatusById(@Valid ThirdUserOnLineStatusDto dto);
|
||||
}
|
||||
+29
@@ -2,12 +2,15 @@ package com.bx.implatform.service.third.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.bx.imclient.IMClient;
|
||||
import com.bx.imcommon.util.JwtUtil;
|
||||
import com.bx.implatform.config.props.JwtProperties;
|
||||
import com.bx.implatform.dto.third.user.ThirdCreateOrUpdateUserDTO;
|
||||
import com.bx.implatform.dto.third.user.ThirdGetUserByUserIdDTO;
|
||||
import com.bx.implatform.dto.third.user.ThirdLoginDTO;
|
||||
import com.bx.implatform.dto.third.user.ThirdUserOnLineStatusDto;
|
||||
import com.bx.implatform.entity.User;
|
||||
import com.bx.implatform.exception.GlobalException;
|
||||
import com.bx.implatform.mapper.UserMapper;
|
||||
@@ -16,11 +19,15 @@ import com.bx.implatform.session.UserSession;
|
||||
import com.bx.implatform.util.BeanUtils;
|
||||
import com.bx.implatform.vo.third.user.ThirdGetUserByUserIdVO;
|
||||
import com.bx.implatform.vo.third.user.ThirdLoginVO;
|
||||
import com.bx.implatform.vo.third.user.ThirdUserOnLineStatusVo;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 第三方用户
|
||||
*/
|
||||
@@ -32,6 +39,8 @@ public class ThirdUserServiceImpl extends ServiceImpl<UserMapper, User> implemen
|
||||
private final PasswordEncoder passwordEncoder;
|
||||
private final JwtProperties jwtProperties;
|
||||
|
||||
private final IMClient imClient;
|
||||
|
||||
/**
|
||||
* 用户登录
|
||||
*/
|
||||
@@ -90,4 +99,24 @@ public class ThirdUserServiceImpl extends ServiceImpl<UserMapper, User> implemen
|
||||
return BeanUtils.copyProperties(user, ThirdGetUserByUserIdVO.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询用户在线状态
|
||||
*/
|
||||
@Override
|
||||
public List<ThirdUserOnLineStatusVo> getUserOnlineStatusById(ThirdUserOnLineStatusDto dto) {
|
||||
if (ObjectUtil.isEmpty(dto.getUserIdList())) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
List<User> userIdList = baseMapper.selectList(new LambdaQueryWrapper<User>()
|
||||
.select(User::getId)
|
||||
.in(User::getId, dto.getUserIdList())
|
||||
);
|
||||
return userIdList.stream().map(item -> {
|
||||
ThirdUserOnLineStatusVo entity = new ThirdUserOnLineStatusVo();
|
||||
entity.setId(item.getId());
|
||||
entity.setOnline(imClient.isOnline(item.getId()));
|
||||
return entity;
|
||||
}).toList();
|
||||
}
|
||||
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package com.bx.implatform.vo.third.user;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 查询用户在线状态
|
||||
*/
|
||||
@Data
|
||||
public class ThirdUserOnLineStatusVo {
|
||||
|
||||
@Schema(description = "用户id")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "是否在线")
|
||||
private Boolean online;
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user