UserController.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. package com.lstznkj.groundstation.controller;
  2. import com.fasterxml.jackson.databind.ObjectMapper;
  3. import com.lstznkj.groundstation.model.Result;
  4. import com.lstznkj.groundstation.model.User;
  5. import com.lstznkj.groundstation.security.jwt.JWTUtils;
  6. import com.lstznkj.groundstation.service.UserService;
  7. import io.swagger.annotations.Api;
  8. import io.swagger.annotations.ApiOperation;
  9. import org.slf4j.Logger;
  10. import org.slf4j.LoggerFactory;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
  13. import org.springframework.web.bind.annotation.*;
  14. import javax.servlet.http.HttpServletRequest;
  15. @Api("用户")
  16. @RestController
  17. public class UserController {
  18. @Autowired
  19. private JWTUtils jwtUtils;
  20. @Autowired
  21. private UserService userService;
  22. @Autowired
  23. private ObjectMapper objectMapper;
  24. @Autowired
  25. private BCryptPasswordEncoder passwordEncoder;
  26. private Logger logger= LoggerFactory.getLogger(getClass());
  27. @ApiOperation("获取用户信息")
  28. @GetMapping("/users/{username}")
  29. public Object getUser(HttpServletRequest request, @PathVariable String username)
  30. {
  31. Result<User> result=new Result<>();
  32. String token = request.getHeader("Authorization");
  33. String realUsername=jwtUtils.getUsername(token);
  34. if(realUsername!= username)
  35. {
  36. result.setSuccess(false);
  37. result.setInfo("非法请求!");
  38. }
  39. return userService.findUserByAccount(realUsername);
  40. }
  41. @DeleteMapping("/users/{username}")
  42. public Object deleteUser(HttpServletRequest request,@PathVariable String username)
  43. {
  44. String token = request.getHeader("Authorization");
  45. String realUsername=jwtUtils.getUsername(token);
  46. Result<User> result=new Result<>();
  47. logger.info(realUsername+" start to delete user:"+username);
  48. result=userService.deleteUser(username);
  49. return result;
  50. }
  51. @PutMapping("/users/{username}")
  52. public Object updateUser(HttpServletRequest request,@PathVariable String username,@RequestBody User user){
  53. String token = request.getHeader("Authorization");
  54. String realUsername=jwtUtils.getUsername(token);
  55. Result<User> result=new Result<>();
  56. try {
  57. logger.info(jwtUtils.getUsername(token)+" update user:"+objectMapper.writeValueAsString(user));
  58. result=userService.updateUser(user);
  59. }catch (Exception ex){
  60. ex.printStackTrace();
  61. result.setSuccess(false);
  62. result.setInfo("修改用户信息失败!!!");
  63. }
  64. return result;
  65. }
  66. @PutMapping("/users/{username}/password")
  67. public Object updateUserPassword(HttpServletRequest request,@PathVariable String username,@RequestBody User user)
  68. {
  69. String token = request.getHeader("Authorization");
  70. try {
  71. logger.info(jwtUtils.getUsername(token)+" change user:"+user.getUsername()+"'s password"+objectMapper.writeValueAsString(user));
  72. return userService.adminUpdateUserPassword(user);
  73. }catch (Exception ex){
  74. ex.printStackTrace();
  75. }
  76. return null;
  77. }
  78. @ApiOperation("获取所有用户信息")
  79. @GetMapping("/users")
  80. // @PreAuthorize("hasRole('ROLE_ADMIN')")
  81. public Object getAllUser(HttpServletRequest request)
  82. {
  83. return userService.findAllUsers();
  84. }
  85. @ApiOperation("用户注册")
  86. @PutMapping("/users/register")
  87. public Object addUser(HttpServletRequest request, @RequestBody User user) {
  88. // String token = request.getHeader("Authorization");
  89. // String realUsername=jwtUtils.getUsername(token);
  90. try {
  91. logger.info(" start to add user");
  92. }
  93. catch (Exception ex){
  94. ex.printStackTrace();
  95. }
  96. return userService.adduser(user);
  97. }
  98. @RequestMapping(value = "/users",method = RequestMethod.POST)
  99. public Object createUser(HttpServletRequest request, @RequestBody User user)
  100. {
  101. Result<User> result=new Result<>();
  102. String token = request.getHeader("Authorization");
  103. try {
  104. logger.info(jwtUtils.getUsername(token)+" create user:"+objectMapper.writeValueAsString(user));
  105. user.setPassword(passwordEncoder.encode(user.getPassword()));
  106. result=userService.createUser(user,user.getSysRoles());
  107. }catch (Exception ex){
  108. ex.printStackTrace();
  109. result.setSuccess(false);
  110. result.setInfo("创建用户失败!!!");
  111. }
  112. return result;
  113. }
  114. /***
  115. * 退出业务逻辑未完成
  116. * @param request
  117. * @return
  118. */
  119. @ApiOperation("用户退出登录")
  120. @PostMapping("/user/logout")
  121. public Object logout(HttpServletRequest request)
  122. {
  123. String token = request.getHeader("Authorization");
  124. if(token!=null)
  125. {
  126. String realUsername=jwtUtils.getUsername(token);
  127. logger.info(realUsername+" logout!");
  128. }
  129. return null;
  130. }
  131. }