From 004421575aa71e581e4d80831b536925cbce9f40 Mon Sep 17 00:00:00 2001 From: pbvfus8to <480171784@qq.com> Date: Wed, 18 Dec 2024 10:54:57 +0800 Subject: [PATCH] Update UserController.java --- .../shop/api/controller/UserController.java | 69 ++++++++++++------- 1 file changed, 44 insertions(+), 25 deletions(-) diff --git a/yami-shop-api/src/main/java/com/yami/shop/api/controller/UserController.java b/yami-shop-api/src/main/java/com/yami/shop/api/controller/UserController.java index 1d8843f..fb6aeb1 100644 --- a/yami-shop-api/src/main/java/com/yami/shop/api/controller/UserController.java +++ b/yami-shop-api/src/main/java/com/yami/shop/api/controller/UserController.java @@ -21,39 +21,58 @@ import lombok.AllArgsConstructor; import cn.hutool.core.bean.BeanUtil; import com.yami.shop.common.response.ServerResponseEntity; import org.springframework.web.bind.annotation.*; + /** + * 用户相关接口的控制器类 + * 该类提供了与用户操作相关的几个接口,包括查看用户信息以及设置用户信息等功能,通过调用服务层的对应方法来实现业务逻辑,并借助`Swagger`注解对接口进行文档化描述,方便接口的查看与使用。 + * * @author lanhai */ @RestController @RequestMapping("/p/user") @Tag(name = "用户接口") +// 使用 @AllArgsConstructor 注解,由 lombok 自动生成包含所有成员变量的构造函数,用于依赖注入 @AllArgsConstructor public class UserController { - private final UserService userService; + // 通过构造函数注入UserService,用于调用业务层方法来处理用户相关的业务逻辑 + private final UserService userService; - - /** - * 查看用户接口 - */ - @GetMapping("/userInfo") - @Operation(summary = "查看用户信息" , description = "根据用户ID(userId)获取用户信息") - public ServerResponseEntity userInfo() { - String userId = SecurityUtils.getUser().getUserId(); - User user = userService.getById(userId); - UserDto userDto = BeanUtil.copyProperties(user, UserDto.class); - return ServerResponseEntity.success(userDto); - } + /** + * 查看用户信息的接口方法 + * 根据当前登录用户的ID,调用服务层方法获取对应的用户信息,再将其转换为对应的DTO(数据传输对象)后返回给前端。 + * + * @return 返回一个ServerResponseEntity类型的响应,成功时包含当前登录用户信息对应的DTO对象数据,若获取数据出现异常则返回相应的错误信息。 + */ + @GetMapping("/userInfo") + @Operation(summary = "查看用户信息", description = "根据用户ID(userId)获取用户信息") + public ServerResponseEntity userInfo() { + // 获取当前登录用户的ID + String userId = SecurityUtils.getUser().getUserId(); + // 调用服务层方法根据用户ID获取用户实体信息 + User user = userService.getById(userId); + // 使用 hutool 工具类的方法,将User对象转换为UserDto对象,用于传输给前端展示的数据格式转换 + UserDto userDto = BeanUtil.copyProperties(user, UserDto.class); + return ServerResponseEntity.success(userDto); + } - @PutMapping("/setUserInfo") - @Operation(summary = "设置用户信息" , description = "设置用户信息") - public ServerResponseEntity setUserInfo(@RequestBody UserInfoParam userInfoParam) { - String userId = SecurityUtils.getUser().getUserId(); - User user = new User(); - user.setUserId(userId); - user.setPic(userInfoParam.getAvatarUrl()); - user.setNickName(userInfoParam.getNickName()); - userService.updateById(user); - return ServerResponseEntity.success(); - } -} + /** + * 设置用户信息的接口方法 + * 根据传入的用户信息参数对象,构建用户实体对象,设置相关属性(如头像、昵称等)后,调用服务层方法更新数据库中对应的用户信息,并返回表示操作成功的响应给前端。 + * + * @param userInfoParam 包含用户信息相关内容的参数对象,用于构建要更新的用户实体对象,其属性涵盖了头像链接、昵称等信息,参数从请求体中获取。 + * @return 返回一个ServerResponseEntity类型的响应,成功时表示用户信息更新操作成功,无具体返回数据,若更新过程出现异常则返回相应的错误信息。 + */ + @PutMapping("/setUserInfo") + @Operation(summary = "设置用户信息", description = "设置用户信息") + public ServerResponseEntity setUserInfo(@RequestBody UserInfoParam userInfoParam) { + // 获取当前登录用户的ID + String userId = SecurityUtils.getUser().getUserId(); + User user = new User(); + user.setUserId(userId); + user.setPic(userInfoParam.getAvatarUrl()); + user.setNickName(userInfoParam.getNickName()); + userService.updateById(user); + return ServerResponseEntity.success(); + } +} \ No newline at end of file