|
|
@ -21,33 +21,52 @@ import lombok.AllArgsConstructor;
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
import com.yami.shop.common.response.ServerResponseEntity;
|
|
|
|
import com.yami.shop.common.response.ServerResponseEntity;
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 用户相关接口的控制器类
|
|
|
|
|
|
|
|
* 该类提供了与用户操作相关的几个接口,包括查看用户信息以及设置用户信息等功能,通过调用服务层的对应方法来实现业务逻辑,并借助`Swagger`注解对接口进行文档化描述,方便接口的查看与使用。
|
|
|
|
|
|
|
|
*
|
|
|
|
* @author lanhai
|
|
|
|
* @author lanhai
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@RestController
|
|
|
|
@RestController
|
|
|
|
@RequestMapping("/p/user")
|
|
|
|
@RequestMapping("/p/user")
|
|
|
|
@Tag(name = "用户接口")
|
|
|
|
@Tag(name = "用户接口")
|
|
|
|
|
|
|
|
// 使用 @AllArgsConstructor 注解,由 lombok 自动生成包含所有成员变量的构造函数,用于依赖注入
|
|
|
|
@AllArgsConstructor
|
|
|
|
@AllArgsConstructor
|
|
|
|
public class UserController {
|
|
|
|
public class UserController {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 通过构造函数注入UserService,用于调用业务层方法来处理用户相关的业务逻辑
|
|
|
|
private final UserService userService;
|
|
|
|
private final UserService userService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 查看用户接口
|
|
|
|
* 查看用户信息的接口方法
|
|
|
|
|
|
|
|
* 根据当前登录用户的ID,调用服务层方法获取对应的用户信息,再将其转换为对应的DTO(数据传输对象)后返回给前端。
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @return 返回一个ServerResponseEntity<UserDto>类型的响应,成功时包含当前登录用户信息对应的DTO对象数据,若获取数据出现异常则返回相应的错误信息。
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@GetMapping("/userInfo")
|
|
|
|
@GetMapping("/userInfo")
|
|
|
|
@Operation(summary = "查看用户信息" , description = "根据用户ID(userId)获取用户信息")
|
|
|
|
@Operation(summary = "查看用户信息", description = "根据用户ID(userId)获取用户信息")
|
|
|
|
public ServerResponseEntity<UserDto> userInfo() {
|
|
|
|
public ServerResponseEntity<UserDto> userInfo() {
|
|
|
|
|
|
|
|
// 获取当前登录用户的ID
|
|
|
|
String userId = SecurityUtils.getUser().getUserId();
|
|
|
|
String userId = SecurityUtils.getUser().getUserId();
|
|
|
|
|
|
|
|
// 调用服务层方法根据用户ID获取用户实体信息
|
|
|
|
User user = userService.getById(userId);
|
|
|
|
User user = userService.getById(userId);
|
|
|
|
|
|
|
|
// 使用 hutool 工具类的方法,将User对象转换为UserDto对象,用于传输给前端展示的数据格式转换
|
|
|
|
UserDto userDto = BeanUtil.copyProperties(user, UserDto.class);
|
|
|
|
UserDto userDto = BeanUtil.copyProperties(user, UserDto.class);
|
|
|
|
return ServerResponseEntity.success(userDto);
|
|
|
|
return ServerResponseEntity.success(userDto);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 设置用户信息的接口方法
|
|
|
|
|
|
|
|
* 根据传入的用户信息参数对象,构建用户实体对象,设置相关属性(如头像、昵称等)后,调用服务层方法更新数据库中对应的用户信息,并返回表示操作成功的响应给前端。
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param userInfoParam 包含用户信息相关内容的参数对象,用于构建要更新的用户实体对象,其属性涵盖了头像链接、昵称等信息,参数从请求体中获取。
|
|
|
|
|
|
|
|
* @return 返回一个ServerResponseEntity<Void>类型的响应,成功时表示用户信息更新操作成功,无具体返回数据,若更新过程出现异常则返回相应的错误信息。
|
|
|
|
|
|
|
|
*/
|
|
|
|
@PutMapping("/setUserInfo")
|
|
|
|
@PutMapping("/setUserInfo")
|
|
|
|
@Operation(summary = "设置用户信息" , description = "设置用户信息")
|
|
|
|
@Operation(summary = "设置用户信息", description = "设置用户信息")
|
|
|
|
public ServerResponseEntity<Void> setUserInfo(@RequestBody UserInfoParam userInfoParam) {
|
|
|
|
public ServerResponseEntity<Void> setUserInfo(@RequestBody UserInfoParam userInfoParam) {
|
|
|
|
|
|
|
|
// 获取当前登录用户的ID
|
|
|
|
String userId = SecurityUtils.getUser().getUserId();
|
|
|
|
String userId = SecurityUtils.getUser().getUserId();
|
|
|
|
User user = new User();
|
|
|
|
User user = new User();
|
|
|
|
user.setUserId(userId);
|
|
|
|
user.setUserId(userId);
|
|
|
|