From 0d4380dcabbe8c64770a0d940d2dd45abbb3b53b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?= Date: Thu, 20 Feb 2025 14:37:59 +0800 Subject: [PATCH] =?UTF-8?q?feat:user=20service=E4=B8=AD=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=BD=93=E5=89=8D=E7=99=BB=E5=BD=95=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../qyft/gd/system/controller/UserController.java | 27 ++++++-------------- .../com/qyft/gd/system/service/UserService.java | 1 + .../gd/system/service/impl/UserServiceImpl.java | 29 +++++++++++++++++++++- 3 files changed, 36 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/qyft/gd/system/controller/UserController.java b/src/main/java/com/qyft/gd/system/controller/UserController.java index a8e5977..ce3f3d2 100644 --- a/src/main/java/com/qyft/gd/system/controller/UserController.java +++ b/src/main/java/com/qyft/gd/system/controller/UserController.java @@ -6,14 +6,11 @@ import com.qyft.gd.system.common.base.BasePageQuery; import com.qyft.gd.system.common.result.PageResult; import com.qyft.gd.system.common.result.Result; import com.qyft.gd.system.common.result.ResultCode; -import com.qyft.gd.system.common.utils.JwtUtil; import com.qyft.gd.system.model.entity.User; import com.qyft.gd.system.service.UserService; -import io.jsonwebtoken.Claims; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; @@ -37,12 +34,12 @@ public class UserController { @PostMapping("/") public Result addUser(@RequestBody User user) { User existingUser = userService.findByUsername(user.getUsername()); - if(existingUser == null) { + if (existingUser == null) { boolean isSuccess = userService.addUser(user); if (isSuccess) { return Result.success(); } - }else{ + } else { return Result.failed(ResultCode.USERNAME_ALREADY_EXISTS); } return Result.failed(); @@ -50,22 +47,12 @@ public class UserController { @Operation(summary = "当前用户信息") @GetMapping("/current") - public Result currentUser(HttpServletRequest request) { - String token = (String) request.getAttribute("token"); - if (token == null || token.isEmpty()) { - return Result.failed(ResultCode.ACCESS_TOKEN_INVALID); - } - try { - Claims claims = JwtUtil.parseJWE(token); - String username = claims.getSubject(); - User user = userService.findByUsername(username); - if (user == null) { - return Result.failed(ResultCode.ACCESS_TOKEN_INVALID); - } - return Result.success(user); - } catch (Exception e) { + public Result currentUser() { + User user = userService.currentUser(); + if (user == null) { return Result.failed(ResultCode.ACCESS_TOKEN_INVALID); } + return Result.success(user); } @Operation(summary = "更新用户信息") @@ -81,7 +68,7 @@ public class UserController { @Operation(summary = "删除用户") @DeleteMapping("/{ids}") - public Result deleteUser( @Parameter(description = "用户ID,多个以英文逗号(,)分割") @PathVariable String ids) { + public Result deleteUser(@Parameter(description = "用户ID,多个以英文逗号(,)分割") @PathVariable String ids) { boolean isSuccess = userService.deleteUser(ids); if (isSuccess) { return Result.success(); diff --git a/src/main/java/com/qyft/gd/system/service/UserService.java b/src/main/java/com/qyft/gd/system/service/UserService.java index d3a18b1..fce1111 100644 --- a/src/main/java/com/qyft/gd/system/service/UserService.java +++ b/src/main/java/com/qyft/gd/system/service/UserService.java @@ -16,5 +16,6 @@ public interface UserService extends IService { boolean deleteUser(String idsStr); + User currentUser(); } diff --git a/src/main/java/com/qyft/gd/system/service/impl/UserServiceImpl.java b/src/main/java/com/qyft/gd/system/service/impl/UserServiceImpl.java index 5305403..017f58c 100644 --- a/src/main/java/com/qyft/gd/system/service/impl/UserServiceImpl.java +++ b/src/main/java/com/qyft/gd/system/service/impl/UserServiceImpl.java @@ -1,10 +1,12 @@ package com.qyft.gd.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.qyft.gd.system.common.enums.DeletedEnum; +import com.qyft.gd.system.common.utils.JwtUtil; import com.qyft.gd.system.mapper.UserMapper; import com.qyft.gd.system.model.entity.User; import com.qyft.gd.system.service.UserService; +import io.jsonwebtoken.Claims; +import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -19,6 +21,8 @@ import java.util.stream.Collectors; @RequiredArgsConstructor public class UserServiceImpl extends ServiceImpl implements UserService { + private final HttpServletRequest request; + @Override public User findByUsername(String username) { return this.baseMapper.findByUsername(username); @@ -42,4 +46,27 @@ public class UserServiceImpl extends ServiceImpl implements Us return this.removeByIds(ids); } + /** + * 获取当前登录用户 + */ + @Override + public User currentUser() { + try { + String token = (String) request.getAttribute("token"); + if (token == null || token.isEmpty()) { + return null; + } + Claims claims = JwtUtil.parseJWE(token); + String username = claims.getSubject(); + User user = findByUsername(username); + if (user == null) { + return null; + } + return user; + } catch (Exception e) { + log.error("获取当前登录用户错误", e); + return null; + } + } + }