Jelajahi Sumber

根据token获取请求信息

Signed-off-by: guoWenHao <2532478980@qq.com>
guoWenHao 6 bulan lalu
induk
melakukan
d29840562a

+ 31 - 0
teacher-pojo/src/main/java/com/example/vo/UserVO.java

@@ -0,0 +1,31 @@
+package com.example.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@Builder//可通过builder直接设置属性
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel(description = "老师登录返回的数据格式")
+public class UserVO implements Serializable {
+
+    @ApiModelProperty("主键值")
+    private Long id;
+
+    @ApiModelProperty("用户名")
+    private String userName;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("用户角色")
+    private String role;
+
+}

+ 2 - 1
teacher-serve/src/main/java/com/example/config/WebMvcConfiguration.java

@@ -43,7 +43,8 @@ public class WebMvcConfiguration extends WebMvcConfigurationSupport {
                 .addPathPatterns("/user/password")
                 .addPathPatterns("/resources/**")
                 .excludePathPatterns("/open/**")
-                .excludePathPatterns("/user/download");
+                .excludePathPatterns("/user/download")
+                .addPathPatterns("/user/me");
 
     }
 

+ 1 - 1
teacher-serve/src/main/java/com/example/controller/teacher/TeacherController.java

@@ -44,7 +44,7 @@ public class TeacherController {
     }
 
     @GetMapping("/{id}")
-    @ApiOperation(value = "根据id删除老师信息")
+    @ApiOperation(value = "根据id查询老师信息")
     public Result<TeacherVO> getById(@PathVariable Long id){
         log.info("查询老师详情:{}",id);
         TeacherVO TeacherVO=teacherService.getById(id);

+ 11 - 0
teacher-serve/src/main/java/com/example/controller/user/UserController.java

@@ -1,6 +1,7 @@
 package com.example.controller.user;
 
 import com.example.constant.JwtClaimsConstant;
+import com.example.context.BaseContext;
 import com.example.dto.PasswordDTO;
 import com.example.dto.UserDTO;
 import com.example.dto.UserLoginDTO;
@@ -9,7 +10,9 @@ import com.example.properties.JwtProperties;
 import com.example.result.Result;
 import com.example.service.UserService;
 import com.example.utils.JwtUtil;
+import com.example.vo.TeacherVO;
 import com.example.vo.UserLoginVO;
+import com.example.vo.UserVO;
 import io.jsonwebtoken.Claims;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -102,4 +105,12 @@ public class UserController {
         Long id = Long.valueOf(claims.get(JwtClaimsConstant.USER_ID).toString());
         return Result.success(userService.getRole(id));
     }
+    @GetMapping("/me")
+    @ApiOperation(value = "根据token查询当前用户信息")
+    public Result<UserVO> getById(){
+        Long id = BaseContext.getCurrentId();
+        log.info("查询用户详情:{}",id);
+        UserVO userVO=userService.getById(id);
+        return Result.success(userVO);
+    }
 }

+ 2 - 2
teacher-serve/src/main/java/com/example/interceptor/JwtTokenAdminInterceptor.java

@@ -36,10 +36,10 @@ public class JwtTokenAdminInterceptor implements HandlerInterceptor {
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
         //判断当前拦截到的是Controller的方法还是其他资源
         //同时放行get请求
-        String uri = request.getRequestURI();
+        String url = request.getRequestURI();
 
         String method = request.getMethod();
-        if (!(handler instanceof HandlerMethod) || "GET".equalsIgnoreCase(method)) {
+        if (!(handler instanceof HandlerMethod) || ("GET".equalsIgnoreCase(method) && !"/user/me".equals(url))) {
             //当前拦截到的不是动态方法,直接放行
             return true;
         }

+ 2 - 0
teacher-serve/src/main/java/com/example/mapper/UserMapper.java

@@ -40,4 +40,6 @@ public interface UserMapper {
     @Select("select role from teacherteam_system.user where id = #{id}")
     String getRole(@Param("id") Long id);
 
+    @Select("select * from teacherteam_system.user where id=#{id}")
+    User getById(Long id);
 }

+ 3 - 0
teacher-serve/src/main/java/com/example/service/UserService.java

@@ -4,6 +4,7 @@ import com.example.dto.PasswordDTO;
 import com.example.dto.UserDTO;
 import com.example.dto.UserLoginDTO;
 import com.example.entity.User;
+import com.example.vo.UserVO;
 
 public interface UserService {
     /**
@@ -32,4 +33,6 @@ public interface UserService {
     void forget(UserDTO userDTO);
 
     String getRole(Long id);
+
+    UserVO getById(Long id);
 }

+ 13 - 0
teacher-serve/src/main/java/com/example/service/impl/UserServiceImpl.java

@@ -12,6 +12,8 @@ import com.example.exception.PasswordErrorException;
 import com.example.mapper.UserMapper;
 import com.example.result.Result;
 import com.example.service.UserService;
+import com.example.vo.TeacherVO;
+import com.example.vo.UserVO;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.logging.Log;
 import org.springframework.beans.BeanUtils;
@@ -126,4 +128,15 @@ public class UserServiceImpl implements UserService {
     public String getRole(Long id) {
         return userMapper.getRole(id);
     }
+
+    @Override
+    public UserVO getById(Long id) {
+        User user=userMapper.getById(id);
+        UserVO userVO=new UserVO();
+        userVO.setUserName(user.getUserName());
+        userVO.setId(user.getId());
+        userVO.setName(user.getName());
+        userVO.setRole(user.getRole());
+        return userVO;
+    }
 }