UserController.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package space.anyi.BI.controller;
  2. import org.slf4j.Logger;
  3. import org.slf4j.LoggerFactory;
  4. import org.springframework.security.access.prepost.PreAuthorize;
  5. import org.springframework.security.crypto.password.PasswordEncoder;
  6. import org.springframework.util.StringUtils;
  7. import org.springframework.web.bind.annotation.*;
  8. import space.anyi.BI.entity.LoginUserDetails;
  9. import space.anyi.BI.entity.ResponseResult;
  10. import space.anyi.BI.entity.User;
  11. import space.anyi.BI.entity.dto.UserDTO;
  12. import space.anyi.BI.entity.vo.PageVO;
  13. import space.anyi.BI.entity.vo.UserVO;
  14. import space.anyi.BI.service.UserService;
  15. import space.anyi.BI.util.BeanCopyUtil;
  16. import space.anyi.BI.util.SecurityUtils;
  17. import javax.annotation.Resource;
  18. import java.util.List;
  19. import java.util.Objects;
  20. /**
  21. * @ProjectName: BI
  22. * @FileName: UserController
  23. * @Author: 杨逸
  24. * @Data:2024/11/28 19:52
  25. * @Description:
  26. */
  27. @RequestMapping("/user")
  28. @RestController
  29. public class UserController {
  30. private final static Logger log = LoggerFactory.getLogger(UserController.class);
  31. @Resource
  32. private UserService userService;
  33. @Resource
  34. private PasswordEncoder passwordEncoder;
  35. @PostMapping("/login")
  36. public ResponseResult login(@RequestBody User user){
  37. return userService.login(user);
  38. }
  39. @PostMapping("/register")
  40. public ResponseResult resister(@RequestBody User user){
  41. return userService.register(user);
  42. }
  43. @PreAuthorize("@ps.hasRole('用户')")
  44. @GetMapping("/getUserInfo")
  45. public ResponseResult getUserInfo(){
  46. LoginUserDetails loginUser = SecurityUtils.getLoginUser();
  47. if (Objects.isNull(loginUser)){
  48. return ResponseResult.errorResult(ResponseResult.AppHttpCodeEnum.NEED_LOGIN);
  49. }
  50. User user = loginUser.getUser();
  51. user.setUserPassword("");
  52. System.out.println("user = " + user);
  53. return ResponseResult.okResult(user);
  54. }
  55. @PreAuthorize("@ps.hasRole('管理员')")
  56. @GetMapping("/page")
  57. @ResponseBody
  58. public ResponseResult page(Integer currentPage,Integer pageSize,String userName,String userAccount,String userRole){
  59. log.info("currentPage:{},pageSize:{},userName:{},userAccount:{}",currentPage,pageSize,userName,userAccount);
  60. PageVO page = userService.pageByUsernameAndUseraccount(currentPage, pageSize, userName, userAccount,userRole);
  61. return ResponseResult.okResult(page);
  62. }
  63. @PreAuthorize("@ps.hasRole('用户')")
  64. @GetMapping("/{id}")
  65. @ResponseBody
  66. public ResponseResult getUserById(@PathVariable Long id){
  67. User user = userService.getById(id);
  68. UserVO userVO = BeanCopyUtil.copyBean(user, UserVO.class);
  69. userVO.setId(user.getId().toString());
  70. return ResponseResult.okResult(userVO);
  71. }
  72. @PreAuthorize("@ps.hasRole('管理员')")
  73. @DeleteMapping("/{ids}")
  74. @ResponseBody
  75. public ResponseResult deleteUserById(@PathVariable List<Long> ids){
  76. userService.removeByIds(ids);
  77. return ResponseResult.okResult();
  78. }
  79. @PreAuthorize("@ps.hasRole('管理员')")
  80. @PutMapping
  81. @ResponseBody
  82. public ResponseResult updateUser(@RequestBody UserDTO userDTO){
  83. User user = BeanCopyUtil.copyBean(userDTO, User.class);
  84. if (StringUtils.hasText(user.getUserPassword())) {
  85. user.setUserPassword(passwordEncoder.encode(user.getUserPassword()));
  86. }else{
  87. user.setUserPassword(passwordEncoder.encode("password"));
  88. }
  89. userService.updateById(user);
  90. return ResponseResult.okResult();
  91. }
  92. @PreAuthorize("@ps.hasRole('管理员')")
  93. @PostMapping
  94. @ResponseBody
  95. public ResponseResult addUser(@RequestBody UserDTO userDTO){
  96. userService.addUser(userDTO);
  97. return ResponseResult.okResult();
  98. }
  99. }