UserController.java 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package com.example.controller.user;
  2. import com.example.constant.JwtClaimsConstant;
  3. import com.example.dto.PasswordDTO;
  4. import com.example.dto.UserDTO;
  5. import com.example.dto.UserLoginDTO;
  6. import com.example.entity.User;
  7. import com.example.properties.JwtProperties;
  8. import com.example.result.Result;
  9. import com.example.service.UserService;
  10. import com.example.utils.JwtUtil;
  11. import com.example.vo.UserLoginVO;
  12. import io.swagger.annotations.Api;
  13. import io.swagger.annotations.ApiOperation;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.web.bind.annotation.PostMapping;
  17. import org.springframework.web.bind.annotation.RequestBody;
  18. import org.springframework.web.bind.annotation.RequestMapping;
  19. import org.springframework.web.bind.annotation.RestController;
  20. import java.util.HashMap;
  21. import java.util.Map;
  22. /**
  23. * 账户管理
  24. */
  25. @RestController
  26. @Slf4j
  27. @Api(tags = "账户相关接口")
  28. @RequestMapping("/user")
  29. public class UserController {
  30. @Autowired
  31. private UserService userService;
  32. @Autowired
  33. private JwtProperties jwtProperties;
  34. /**
  35. * 老师登录
  36. *
  37. * @param userLoginDTO
  38. * @return
  39. */
  40. @PostMapping("/login")
  41. @ApiOperation(value = "老师登录")
  42. public Result<UserLoginVO> login(@RequestBody UserLoginDTO userLoginDTO) {
  43. log.info("老师登录:{}", userLoginDTO);
  44. User user = userService.login(userLoginDTO);
  45. //登录成功后,生成jwt令牌
  46. Map<String, Object> claims = new HashMap<>();
  47. claims.put(JwtClaimsConstant.USER_ID, user.getId());
  48. String token = JwtUtil.createJWT(
  49. jwtProperties.getAdminSecretKey(),
  50. jwtProperties.getAdminTtl(),
  51. claims);
  52. UserLoginVO userLoginVO = UserLoginVO.builder()
  53. .id(user.getId())
  54. .userName(user.getUserName())
  55. .name(user.getName())
  56. .token(token).build();
  57. return Result.success(userLoginVO);
  58. }
  59. /**
  60. * 退出
  61. *
  62. * @return
  63. */
  64. @PostMapping("/logout")
  65. @ApiOperation("老师退出")
  66. public Result<String> logout() {
  67. return Result.success();
  68. }
  69. @PostMapping("/register")
  70. @ApiOperation("老师注册")
  71. private Result register(@RequestBody UserDTO userDTO) {
  72. log.info("老师注册:{}", userDTO);
  73. userService.register(userDTO);
  74. return Result.success();
  75. }
  76. @PostMapping("/password")
  77. @ApiOperation(value = "修改密码")
  78. public Result update(@RequestBody PasswordDTO passwordDTO) {
  79. log.info("修改密码:{}", passwordDTO.getId());
  80. userService.update(passwordDTO);
  81. return Result.success();
  82. }
  83. @PostMapping("/forget")
  84. @ApiOperation(value = "忘记密码")
  85. public Result forget(@RequestBody UserDTO userDTO) {
  86. log.info("修改密码:{}", userDTO.getUserName());
  87. userService.forget(userDTO);
  88. return Result.success();
  89. }
  90. }