UserController.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. package com.gihon.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.gihon.common.web.response.PageBean;
  4. import com.gihon.common.web.response.PageResponse;
  5. import com.gihon.common.web.response.Response;
  6. import com.gihon.common.web.response.ResponseStatus;
  7. import com.gihon.configSecurity.encoder.MyPasswordEncoder;
  8. import com.gihon.entity.User;
  9. import com.gihon.service.UserService;
  10. import io.swagger.annotations.Api;
  11. import io.swagger.annotations.ApiOperation;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.transaction.annotation.Transactional;
  14. import org.springframework.web.bind.annotation.*;
  15. import java.util.List;
  16. /**
  17. * 用户控制器
  18. *
  19. */
  20. @RestController
  21. @RequestMapping("/user")
  22. @Api(value = "用户接口", tags = "用户接口")
  23. public class UserController {
  24. @Autowired
  25. private UserService userService;
  26. /**
  27. * 主要功能:分页查询用户列表
  28. * @data 2021/2/19 9:45
  29. * @author: dl
  30. * @description 分页查看用户
  31. * @param page 页数
  32. * @param rows 页小大
  33. * @return com.gihon.common.http.Response
  34. */
  35. //@Secured(value = {"ROLE_管理员", "ROLE_超级管理员"})
  36. @ApiOperation("分页查询用户列表")
  37. @GetMapping("/getUsersByPage")
  38. public PageResponse<PageBean<User>> getUsersByPage(
  39. @RequestParam(required = false,defaultValue = "1") int page,
  40. @RequestParam(required = false, defaultValue = "10") int rows) {
  41. PageResponse byPage = userService.getByPage(page, rows);
  42. return byPage;
  43. }
  44. /**
  45. * 主要功能:查询 用户信息by用户ID
  46. * @data 2021/2/19 10:05
  47. * @author: dl
  48. * @description 根据用户主键
  49. * 查找用户信息
  50. * @param id
  51. * @return com.gihon.common.http.Response
  52. *
  53. */
  54. @ApiOperation("查询 用户信息by用户ID")
  55. @GetMapping("/userByID")
  56. public Response userFindOne(@RequestParam Long id){
  57. User userInfo = userService.getById(id);
  58. return Response.ok(userInfo);
  59. }
  60. /**
  61. * 主要功能:
  62. * @description 根据用户id 查找对应权限
  63. * @author: dl
  64. * @data 2021/2/20 14:24
  65. * @param id 用户id
  66. * @return com.gihon.common.http.Response<java.util.List<java.lang.String>>
  67. */
  68. @ApiOperation("根据用户id 查找对应权限")
  69. @GetMapping("/getPermissionsByUserId")
  70. public Response<List<String>> getPermissionsByUserId(Long id){
  71. List<String> permissions = userService.findPermissionsByUserId(id);
  72. return Response.ok(permissions);
  73. }
  74. /**
  75. * 主要功能:增加用户
  76. * @data 2021/2/19 9:48
  77. * @author: dl
  78. * @description 根据输入用户信息 增加数据
  79. * 不允许增加重复用户
  80. * 使用自定义加密器加密用户输入密码后 存储
  81. *
  82. * @param user
  83. * @return com.gihon.common.http.Response
  84. *
  85. */
  86. //@Secured(value = {"addUser"})
  87. @ApiOperation("增加用户")
  88. @PostMapping("/addUser")
  89. public Response<User> addUser(@RequestBody User user) {
  90. Response<User> addUser = userService.addUser(user);
  91. return Response.ok();
  92. }
  93. //增加用户角色
  94. /**
  95. * 主要功能:
  96. * @description 用户ById 增加 角色ById
  97. * @author: dl
  98. * @data 2021/2/23 15:12
  99. * @param user
  100. * @param RoleIds
  101. * @return com.gihon.common.web.response.Response
  102. */
  103. @ApiOperation("用户ById")
  104. @PostMapping("/addRole4User")
  105. @ResponseBody
  106. public Response addRole4User(@RequestBody User user,@RequestParam("RoleIds") Long[] RoleIds){
  107. Response response = userService.addRole4User(user,RoleIds);
  108. return Response.ok();
  109. }
  110. /**
  111. * 主要功能:删除用户
  112. * @data 2021/2/19 9:50
  113. * @author: dl
  114. * @description 根据用户主键
  115. * 删除用户信息
  116. * @param id
  117. * @return com.gihon.common.http.Response
  118. */
  119. @ApiOperation("删除用户")
  120. @Transactional(rollbackFor = Exception.class)
  121. @GetMapping(value = "/deleteUser")
  122. public Response deleteUser(@RequestParam Long id) {
  123. boolean b = userService.removeById(id);
  124. //添加数据失败
  125. if (!b) {
  126. return Response.error(ResponseStatus.MAPPER_ERROR,"删除用户失败");
  127. }
  128. return Response.ok();
  129. }
  130. //@PreAuthorize("hasAuthority('updateUser')")
  131. @ApiOperation("修改密码")
  132. @Transactional(rollbackFor = Exception.class)
  133. @PostMapping(value = "/setUser")
  134. /**
  135. * 主要功能:修改密码
  136. * @data 2021/2/19 9:51
  137. * @author: dl
  138. * @description 根据 用户名密码
  139. * 修改用户密码
  140. * @param username
  141. * @param password
  142. * @return com.gihon.common.http.Response<com.gihon.user.entity.User>
  143. *
  144. */
  145. public Response<User> modifyUser(String username, String password) {
  146. //修改新密码
  147. MyPasswordEncoder encoder = new MyPasswordEncoder();
  148. User user = User.builder().username(username).build();
  149. user.setPassword(encoder.encode(password));
  150. //根据用户名
  151. boolean update = userService.update(user, new QueryWrapper<User>()
  152. .eq("username", user.getUsername())
  153. );
  154. //修改结果
  155. if (!update) {
  156. return Response.error(ResponseStatus.MAPPER_ERROR,"修改密码访问数据库失败");
  157. }
  158. return Response.ok();
  159. }
  160. }