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; + } + }