feat(user): 新增根据用户ID查询用户信息接口
- 新增 FindUserByIdReqDTO 请求参数类 - 新增 FindUserByIdRspDTO 响应结果类 - 在 UserController 中添加 findById 接口 - 在 UserService 中定义 findById 方法 - 在 UserServiceImpl 中实现 findById 逻辑 - 支持根据用户 ID 查询用户昵称和头像信息 - 添加用户不存在时的异常处理逻辑
This commit is contained in:
@@ -0,0 +1,21 @@
|
|||||||
|
package com.hanserwei.hannote.user.dto.req;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Builder
|
||||||
|
public class FindUserByIdReqDTO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户ID
|
||||||
|
*/
|
||||||
|
@NotNull(message = "用户 ID 不能为空")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package com.hanserwei.hannote.user.dto.resp;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Builder
|
||||||
|
public class FindUserByIdRspDTO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户 ID
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 昵称
|
||||||
|
*/
|
||||||
|
private String nickName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 头像
|
||||||
|
*/
|
||||||
|
private String avatar;
|
||||||
|
}
|
||||||
@@ -5,9 +5,11 @@ import com.hanserwei.framework.common.response.Response;
|
|||||||
import com.hanserwei.hannote.user.biz.model.vo.UpdateUserInfoReqVO;
|
import com.hanserwei.hannote.user.biz.model.vo.UpdateUserInfoReqVO;
|
||||||
import com.hanserwei.hannote.user.biz.service.UserService;
|
import com.hanserwei.hannote.user.biz.service.UserService;
|
||||||
import com.hanserwei.hannote.user.dto.req.FindUserByEmailReqDTO;
|
import com.hanserwei.hannote.user.dto.req.FindUserByEmailReqDTO;
|
||||||
|
import com.hanserwei.hannote.user.dto.req.FindUserByIdReqDTO;
|
||||||
import com.hanserwei.hannote.user.dto.req.RegisterUserReqDTO;
|
import com.hanserwei.hannote.user.dto.req.RegisterUserReqDTO;
|
||||||
import com.hanserwei.hannote.user.dto.req.UpdateUserPasswordReqDTO;
|
import com.hanserwei.hannote.user.dto.req.UpdateUserPasswordReqDTO;
|
||||||
import com.hanserwei.hannote.user.dto.resp.FindUserByEmailRspDTO;
|
import com.hanserwei.hannote.user.dto.resp.FindUserByEmailRspDTO;
|
||||||
|
import com.hanserwei.hannote.user.dto.resp.FindUserByIdRspDTO;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
@@ -27,7 +29,7 @@ public class UserController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户信息修改
|
* 用户信息修改
|
||||||
*
|
*
|
||||||
* @param updateUserInfoReqVO 修改信息请求
|
* @param updateUserInfoReqVO 修改信息请求
|
||||||
* @return 响应
|
* @return 响应
|
||||||
*/
|
*/
|
||||||
@@ -55,4 +57,10 @@ public class UserController {
|
|||||||
return userService.updatePassword(updateUserPasswordReqDTO);
|
return userService.updatePassword(updateUserPasswordReqDTO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/findById")
|
||||||
|
@ApiOperationLog(description = "查询用户信息")
|
||||||
|
public Response<FindUserByIdRspDTO> findById(@Validated @RequestBody FindUserByIdReqDTO findUserByIdReqDTO) {
|
||||||
|
return userService.findById(findUserByIdReqDTO);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -5,9 +5,11 @@ import com.hanserwei.framework.common.response.Response;
|
|||||||
import com.hanserwei.hannote.user.biz.domain.dataobject.UserDO;
|
import com.hanserwei.hannote.user.biz.domain.dataobject.UserDO;
|
||||||
import com.hanserwei.hannote.user.biz.model.vo.UpdateUserInfoReqVO;
|
import com.hanserwei.hannote.user.biz.model.vo.UpdateUserInfoReqVO;
|
||||||
import com.hanserwei.hannote.user.dto.req.FindUserByEmailReqDTO;
|
import com.hanserwei.hannote.user.dto.req.FindUserByEmailReqDTO;
|
||||||
|
import com.hanserwei.hannote.user.dto.req.FindUserByIdReqDTO;
|
||||||
import com.hanserwei.hannote.user.dto.req.RegisterUserReqDTO;
|
import com.hanserwei.hannote.user.dto.req.RegisterUserReqDTO;
|
||||||
import com.hanserwei.hannote.user.dto.req.UpdateUserPasswordReqDTO;
|
import com.hanserwei.hannote.user.dto.req.UpdateUserPasswordReqDTO;
|
||||||
import com.hanserwei.hannote.user.dto.resp.FindUserByEmailRspDTO;
|
import com.hanserwei.hannote.user.dto.resp.FindUserByEmailRspDTO;
|
||||||
|
import com.hanserwei.hannote.user.dto.resp.FindUserByIdRspDTO;
|
||||||
|
|
||||||
public interface UserService extends IService<UserDO> {
|
public interface UserService extends IService<UserDO> {
|
||||||
|
|
||||||
@@ -42,4 +44,12 @@ public interface UserService extends IService<UserDO> {
|
|||||||
* @return 响应结果
|
* @return 响应结果
|
||||||
*/
|
*/
|
||||||
Response<?> updatePassword(UpdateUserPasswordReqDTO updateUserPasswordReqDTO);
|
Response<?> updatePassword(UpdateUserPasswordReqDTO updateUserPasswordReqDTO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据用户 ID 查询用户信息
|
||||||
|
*
|
||||||
|
* @param findUserByIdReqDTO 查询用户信息请求参数
|
||||||
|
* @return 响应结果
|
||||||
|
*/
|
||||||
|
Response<FindUserByIdRspDTO> findById(FindUserByIdReqDTO findUserByIdReqDTO);
|
||||||
}
|
}
|
||||||
@@ -25,9 +25,11 @@ import com.hanserwei.hannote.user.biz.rpc.DistributedIdGeneratorRpcService;
|
|||||||
import com.hanserwei.hannote.user.biz.rpc.OssRpcService;
|
import com.hanserwei.hannote.user.biz.rpc.OssRpcService;
|
||||||
import com.hanserwei.hannote.user.biz.service.UserService;
|
import com.hanserwei.hannote.user.biz.service.UserService;
|
||||||
import com.hanserwei.hannote.user.dto.req.FindUserByEmailReqDTO;
|
import com.hanserwei.hannote.user.dto.req.FindUserByEmailReqDTO;
|
||||||
|
import com.hanserwei.hannote.user.dto.req.FindUserByIdReqDTO;
|
||||||
import com.hanserwei.hannote.user.dto.req.RegisterUserReqDTO;
|
import com.hanserwei.hannote.user.dto.req.RegisterUserReqDTO;
|
||||||
import com.hanserwei.hannote.user.dto.req.UpdateUserPasswordReqDTO;
|
import com.hanserwei.hannote.user.dto.req.UpdateUserPasswordReqDTO;
|
||||||
import com.hanserwei.hannote.user.dto.resp.FindUserByEmailRspDTO;
|
import com.hanserwei.hannote.user.dto.resp.FindUserByEmailRspDTO;
|
||||||
|
import com.hanserwei.hannote.user.dto.resp.FindUserByIdRspDTO;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@@ -204,7 +206,7 @@ public class UserServiceImpl extends ServiceImpl<UserDOMapper, UserDO> implement
|
|||||||
public Response<FindUserByEmailRspDTO> findByEmail(FindUserByEmailReqDTO findUserByEmailReqDTO) {
|
public Response<FindUserByEmailRspDTO> findByEmail(FindUserByEmailReqDTO findUserByEmailReqDTO) {
|
||||||
String email = findUserByEmailReqDTO.getEmail();
|
String email = findUserByEmailReqDTO.getEmail();
|
||||||
UserDO userDO = this.getOne(new QueryWrapper<UserDO>().eq("email", email));
|
UserDO userDO = this.getOne(new QueryWrapper<UserDO>().eq("email", email));
|
||||||
if (Objects.isNull(userDO)){
|
if (Objects.isNull(userDO)) {
|
||||||
throw new ApiException(ResponseCodeEnum.USER_NOT_FOUND);
|
throw new ApiException(ResponseCodeEnum.USER_NOT_FOUND);
|
||||||
}
|
}
|
||||||
// 构建返参
|
// 构建返参
|
||||||
@@ -229,5 +231,23 @@ public class UserServiceImpl extends ServiceImpl<UserDOMapper, UserDO> implement
|
|||||||
// 更新用户密码
|
// 更新用户密码
|
||||||
return updateById(userDO) ? Response.success() : Response.fail();
|
return updateById(userDO) ? Response.success() : Response.fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Response<FindUserByIdRspDTO> findById(FindUserByIdReqDTO findUserByIdReqDTO) {
|
||||||
|
Long userId = findUserByIdReqDTO.getId();
|
||||||
|
UserDO userDO = this.getOne(new QueryWrapper<UserDO>().eq("id", userId));
|
||||||
|
|
||||||
|
// 判空
|
||||||
|
if (Objects.isNull(userDO)) {
|
||||||
|
throw new ApiException(ResponseCodeEnum.USER_NOT_FOUND);
|
||||||
|
}
|
||||||
|
// 构建返参
|
||||||
|
FindUserByIdRspDTO findUserByIdRspDTO = FindUserByIdRspDTO.builder()
|
||||||
|
.id(userDO.getId())
|
||||||
|
.nickName(userDO.getNickname())
|
||||||
|
.avatar(userDO.getAvatar())
|
||||||
|
.build();
|
||||||
|
return Response.success(findUserByIdRspDTO);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user