From 4670360495c80014345c715f6d85f43c186a7247 Mon Sep 17 00:00:00 2001 From: huangge1199 Date: Mon, 30 Jun 2025 15:50:18 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=A8=A1=E5=9D=97=EF=BC=9A?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=BD=93=E5=89=8D=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../picture/controller/UserController.java | 16 ++++++++++++---- .../picture/service/UserService.java | 8 ++++++++ .../picture/service/impl/UserServiceImpl.java | 17 +++++++++++++++++ 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/huangge1199/picture/controller/UserController.java b/src/main/java/com/huangge1199/picture/controller/UserController.java index ddb6291..5ea9e5d 100644 --- a/src/main/java/com/huangge1199/picture/controller/UserController.java +++ b/src/main/java/com/huangge1199/picture/controller/UserController.java @@ -5,12 +5,10 @@ import com.huangge1199.picture.exception.ErrorCode; import com.huangge1199.picture.exception.ThrowUtils; import com.huangge1199.picture.model.dto.user.UserLoginRequest; import com.huangge1199.picture.model.dto.user.UserRegisterRequest; +import com.huangge1199.picture.model.entity.User; import com.huangge1199.picture.model.vo.LoginUserVO; import com.huangge1199.picture.service.UserService; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -53,5 +51,15 @@ public class UserController { return R.ok(loginUserVO); } + /** + * 获取当前用户 + */ + @GetMapping("/get/login") + public R getLoginUser(HttpServletRequest request) { + User user = userService.getLoginUser(request); + return R.ok(userService.getLoginUserVO(user)); + } + + } diff --git a/src/main/java/com/huangge1199/picture/service/UserService.java b/src/main/java/com/huangge1199/picture/service/UserService.java index cca41ff..a90f24b 100644 --- a/src/main/java/com/huangge1199/picture/service/UserService.java +++ b/src/main/java/com/huangge1199/picture/service/UserService.java @@ -49,4 +49,12 @@ public interface UserService extends IService { */ LoginUserVO getLoginUserVO(User user); + /** + * 获取当前登录用户 + * + * @param request 请求 + * @return 当前登录用户信息 + */ + User getLoginUser(HttpServletRequest request); + } diff --git a/src/main/java/com/huangge1199/picture/service/impl/UserServiceImpl.java b/src/main/java/com/huangge1199/picture/service/impl/UserServiceImpl.java index cc4a538..ab4c99f 100644 --- a/src/main/java/com/huangge1199/picture/service/impl/UserServiceImpl.java +++ b/src/main/java/com/huangge1199/picture/service/impl/UserServiceImpl.java @@ -116,6 +116,23 @@ public class UserServiceImpl extends ServiceImpl return loginUserVO; } + @Override + public User getLoginUser(HttpServletRequest request) { + // 先判断是否已登录 + Object userObj = request.getSession().getAttribute(UserConstant.USER_LOGIN_STATE); + User currentUser = (User) userObj; + if (currentUser == null || currentUser.getId() == null) { + throw new MyException(ErrorCode.NOT_LOGIN_ERROR); + } + // 从数据库查询(追求性能的话可以注释,直接返回上述结果) + long userId = currentUser.getId(); + currentUser = this.getById(userId); + if (currentUser == null) { + throw new MyException(ErrorCode.NOT_LOGIN_ERROR); + } + return currentUser; + } + }